var requestPath = '/configurator/_index.php';
var xmlHttp;
var cfg = 0;

function GetXmlHttpObject() {
  try {
    return new XMLHttpRequest();
  } catch (e) {
    try {
     return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      return new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  alert("Browser does not support AJAX HTTP Request");
  return null;
}

<!-- AJAX request dispatch function -->
function sendAjaxRequest(cmd,str,dom,cat,callback) {
  xmlHttp=null;
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp != null) {
    var url;
    str = str.replace(new RegExp("\\+","g"),"%2B");
    url=requestPath+"?"+cmd+"="+str+"&rd="+dom+"&cfg="+cfg+"&sid="+Math.random();
    xmlHttp.onreadystatechange=callback;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
  }
}

<!-- State change handler for AJAX Model query -->
function modelReqStateChange() {
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    setModelSelectContent(xmlHttp.responseText);
}

<!-- State change handler for AJAX PartNo query -->
function partNoReqStateChange() {
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    setPartNoSelectContent(xmlHttp.responseText);
}

<!-- onChange handler for Brand drop down list -->
function showAllBrandModels(str,dom,cat) {
  resetConfigurator(true);
  if (str != '0')
    sendAjaxRequest("q",str,dom,cat,modelReqStateChange);
}

<!-- onChange handler for Model drop down list -->
function showAllModels(str,dom,cat) {
  resetConfigurator(false);
  if (str != '0')
    sendAjaxRequest("m",str,dom,cat,partNoReqStateChange);
}

<!-- onChange handler for PartNo drop down list -->
function showProductDetail(str,dom,cat) {
  if (str != '0') {
    setDigitekItemNoContent('Digitek Part No: <b>' + str + '</b>');
  } else {
    setDigitekItemNoContent('');
  }
}

<!-- Configurator state reset function -->
function resetConfigurator(clearModel) {
  if (clearModel == true)
    setModelSelectContent('');
  setPartNoSelectContent('');
  setDigitekItemNoContent('');
}

<!-- Model selector content update function -->
function setModelSelectContent(content) {
  if (content != '')
    content=content.replace("Select Model","Select Model&nbsp;");
  document.getElementById('selModel').innerHTML=content;
  document.getElementById('divModel').style.display = (content==''?'none':'');
}

<!-- PartNo selector content update function -->
function setPartNoSelectContent(content) {
  if (content != '')
    content=content.replace("Available Part Numbers","Available Part Numbers&nbsp;");
  document.getElementById('selPartNo').innerHTML=content;
  document.getElementById('divPartNo').style.display = (content==''?'none':'');
}

<!-- Digitek Item No content update function -->
function setDigitekItemNoContent(content) {
  document.getElementById('txtDigitekItem').innerHTML=content;
  document.getElementById('divDigitekItem').style.display = (content==''?'none':'');
}

