function changeCombo(combo, fieldList, url){
  if (typeof window.ActiveXObject != 'undefined' ) {
    xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
    xmlDoc.onreadystatechange = getOnLoad(combo, xmlDoc) ;
  }
  else {
    xmlDoc = new XMLHttpRequest();
    xmlDoc.onload = getOnLoad(combo, xmlDoc) ;
  }

  url = createVocabularyQueryURL(combo, fieldList, url);

  xmlDoc.open( "GET", url, true );
  xmlDoc.send( null );
}

function createVocabularyQueryURL(combo, fieldList, url){
  url += "/querySubordinateVocabulary?subordinate=" + combo;
  for (i=0;i<fieldList.length;i++) {
    fieldName = fieldList[i];
//    url += "&" + fieldName + "=" + document.edit_form[fieldName].value;
    url += "&" + encodeURIComponent(fieldName) + "=" + encodeURIComponent(document.edit_form[fieldName].value);
  }
  return url;
}

function getOnLoad(combo, xmlDoc){
  var onLoad = function(){
    if ( xmlDoc.readyState != 4 ) return ;
    parse(combo, xmlDoc);
  }
  return onLoad;
}
	  
function parse(combo, xmlDoc){
  var response  = xmlDoc.responseText ;
  var selbox = document.edit_form[combo];
  selbox.options.length = 0;
  selbox.disabled = 1;
  reg = /u\'/g;
  selbox.disabled = 1;
  response = response.replace(reg, "'");
  options = eval(response);
  for(i=0;i<options.length;i++){
     option = options[i];
     selbox.options[selbox.options.length] = new Option(option[1], option[0]);
  }
    selbox.disabled = 0;
}