  function updateModel(formName, elementName, responseText, selectGroup) {
    var tmpArray = Array();
    var oSelect = eval('document.' + formName + '.' + elementName);
    if (responseText == undefined){
        oSelect.innerHTML = "<option value=\"0\">" + oSelect.options[0].text + "</option>";
        return false;
    }
    tmpArray = responseText.split(";;;");
    //var selectedItem = tmpArray[0];
    oSelect.innerHTML = "";
    for(i = 0; i < tmpArray.length; i++) {
      var item = Array();
      item = tmpArray[i].split(";");
      if(item[0]=='O') {
        var oOption = document.createElement('option');
        oOption.value = item[1];
        oOption.text = item[2];
        oOption.label = item[2];
        oOption.innerText = item[2];
        if(oOption.value==selectedItem) {
          oOption.selected = true;
        }
        oSelect.appendChild(oOption);
      }
      if(item[0]=='G') {
         var groupItems = Array();
         var tab = '';
         if(selectGroup) {
           tab = html_entity_decode('&nbsp;&nbsp;&nbsp;&nbsp;');
         }
         groupItems = tmpArray[i].split("|");
         var label = groupItems[0].split(";");
         if(!selectGroup) {
           var oGroup = document.createElement('optgroup');
           oGroup.label = label[2];
           oGroup.text = label[2];
         }
         else {
           var oOption = document.createElement('option');
           oOption.value = label[1];
           oOption.text = label[2];
           oOption.label = label[2];
           oOption.innerText = label[2];  
           if(oOption.value==selectedItem) {
             oOption.selected = true;
           }
           oSelect.appendChild(oOption);        
         }         
         for(j = 1; j < groupItems.length; j++) {
           var oOption = document.createElement('option');
           tmp = groupItems[j].split(";");
           oOption.value = tmp[0];
           oOption.text = tab + tmp[1];
           oOption.label = tab + tmp[1];
           oOption.innerText = tab + tmp[1];
           if(oOption.value==selectedItem) {
             oOption.selected = true;
           }
           if(!selectGroup) {
             oGroup.appendChild(oOption);
           }
           else {
             oSelect.appendChild(oOption);
           }
         }
         if(!selectGroup) {
          oSelect.appendChild(oGroup);
         }
      }
    }
  }

  function html_entity_decode(str) {
    var ta=document.createElement("textarea");
    ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
    return ta.value;
  }


  function makeReload(formName, elementName1, elementName2, selectGroup) {
    var index = eval('document.' + formName + '.' + elementName1 + '.selectedIndex');
    var makeId = eval('document.' + formName + '.' + elementName1 + '[index].value');
    updateModel(formName, elementName2, make_models[makeId], selectGroup);
  }

  function setSelectedIndex(formName, elementName, makeId, selectGroup) {
    if(makeId>-1)
      updateModel(formName, elementName, make_models[makeId], selectGroup);
  }
