        function populateSelectSynch(populatorID, populateeID, dbKey, defaultValue) {
        
          if(populatorID == null || populateeID == null || dbKey == null || populatorID == "" || populateeID == "" || dbKey == "") {
            alert("populateSelect(): missing parameters");
            return;
          }
          
          var passedData = new Object();
	  var dataline = "";
          
          passedData[dbKey] = $("#" + populatorID).val();
	  var p = document.getElementById("sprod_key");
          if(p)
            passedData["prod_key"] = p.value;
        
	  for(var key in passedData) {
            dataline += "&" + key + "=" + passedData[key];
          }

	  $.ajax({
            type: "POST",
            url: "simple_ajax_calls.php",
            data: dataline,
	    async: false,
            success: 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(";;");
              //alert(populateeID);
	      var selectObj = document.getElementById(populateeID);
	      selectObj.options.length = 0;
	      
              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;
                }
                
		selectObj.options[selectObj.options.length] = new Option(key, val);
              }
              $("#" + populateeID).attr("disabled", "");
              selectObj = document.getElementById(populateeID);
              if(selectObj != null) {
                if(defaultValue == null)
                  selectObj.selectedIndex = 0;
                else {
                  var defValIdx = 0;
                  for(var x = 0; x < selectObj.options.length; x++) {
                    if(selectObj.options[x].value == defaultValue) {
                      defValIdx = x;
                    }
                  }
                  selectObj.selectedIndex = defValIdx;
                }
              }
            }
          });
	}
        
        function populateModels(setNumber, defVal) {
        	
        	
          $("#lr_car_year" + setNumber).html("<option value=\"\">Year</option>");
          $("#lr_car_year" + setNumber).attr("disabled", "disabled");          
          $("#lr_car_motor_key" + setNumber).html("<option value=\"\">Engine</option>");
          $("#lr_car_motor_key" + setNumber).attr("disabled", "disabled");
          populateSelectSynch("lr_car_make_key" + setNumber, "lr_car_model_key" + setNumber, "car_make_key", defVal);
        }
        
        function populateModelsPK(setNumber, defVal) {
        	
        	var hiddenObj = document.getElementById("nc_cmk_pk" + setNumber);

          if(hiddenObj)
          {
            hiddenObj.value = document.getElementById("lr_car_make_key" + setNumber).value + "::" + document.getElementById("nc_pk" + setNumber).value;
            
          }else {
            alert("not selected");
            return;
          }
        	
          $("#lr_car_year" + setNumber).html("<option value=\"\">Year</option>");
          $("#lr_car_year" + setNumber).attr("disabled", "disabled");          
          $("#lr_car_motor_key" + setNumber).html("<option value=\"\">Engine</option>");
          $("#lr_car_motor_key" + setNumber).attr("disabled", "disabled");
          populateSelectSynch("nc_cmk_pk" + setNumber, "lr_car_model_key" + setNumber, "nc_cmk_pk", defVal);
        }
        
        function populateYears2(setNumber, defVal) {
        var hiddenObj = document.getElementById("nc_model_motor" + setNumber);

        if(hiddenObj)
            hiddenObj.value = document.getElementById("lr_car_model_key" + setNumber).value + "::" + document.getElementById("lr_car_motor_key" + setNumber).value;
          else {
            alert("Model and motor not selected");
            return;
          }
        	
          
          populateSelectSynch("nc_model_motor" + setNumber, "lr_car_year" + setNumber, "nc_model_motor2", defVal);          
        }

        
        function populateYears(setNumber, defVal) {
        var hiddenObj = document.getElementById("nc_model_motor" + setNumber);

          if(hiddenObj)
            hiddenObj.value = document.getElementById("lr_car_model_key" + setNumber).value + "::" + document.getElementById("lr_car_motor_key" + setNumber).value;
          else {
            alert("Model and motor not selected");
            return;
          }
        	
          
          populateSelectSynch("nc_model_motor" + setNumber, "lr_car_year" + setNumber, "nc_model_motor", defVal);          
        }
        
        
        
        function populateYearsPK(setNumber, defVal) {
        var hiddenObj = document.getElementById("nc_make_model" + setNumber);

          if(hiddenObj)
            hiddenObj.value = document.getElementById("lr_car_make_key" + setNumber).value + "::" + document.getElementById("lr_car_model_key" + setNumber).value +"::" + document.getElementById("nc_pk" + setNumber).value;
          else {
            alert("Make and Model not selected");
            return;
          }
        	
          //alert(hiddenObj.value);
          populateSelectSynch("nc_make_model" + setNumber, "lr_car_year" + setNumber, "nc_make_model", defVal);          
        }

        function populateYearsNOPK(setNumber, defVal) {
        var hiddenObj = document.getElementById("nc_make_model" + setNumber);

          if(hiddenObj)
            hiddenObj.value = document.getElementById("lr_car_make_key" + setNumber).value + "::" + document.getElementById("lr_car_model_key" + setNumber).value;
          else {
            alert("Make and Model not selected");
            return;
          }
        	
          //alert(hiddenObj.value);
          populateSelectSynch("nc_make_model" + setNumber, "lr_car_year" + setNumber, "nc_make_model", defVal);          
        }
        
        
        
        function populateMotors(setNumber, defVal) { 
        	  	
          var hiddenObj = document.getElementById("nc_make_model" + setNumber);

          if(hiddenObj)
            hiddenObj.value = document.getElementById("lr_car_make_key" + setNumber).value + "::" + document.getElementById("lr_car_model_key" + setNumber).value;
          else {
            alert("Make and model not selected");
            return;
          }
  		  $("#lr_car_year" + setNumber).html("<option value=\"\">Year</option>");
          $("#lr_car_year" + setNumber).attr("disabled", "disabled");
         populateSelectSynch("nc_make_model" + setNumber, "lr_car_motor_key" + setNumber, "car_model_key", defVal);          
        }


        function populateMotorsPK(setNumber, defVal) { 
        	  	
          var hiddenObj = document.getElementById("nc_model_year" + setNumber);
          /*alert(document.getElementById("nc_make_model" + setNumber).value);*/

          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+ "::" + document.getElementById("nc_pk" + setNumber).value;
            
          }
          else {
            alert("Model and Year not selected");
            return;
          }
  		  
          populateSelectSynch("nc_model_year" + setNumber, "lr_car_motor_key" + setNumber, "nc_model_year", defVal);          
        }