function replaceSelectCallback(id, http_request) {

  if (http_request.readyState == 4) {
    if (http_request.status == 200 && document.getElementById(id)) {
      var xmldoc = http_request.responseXML;
      var no = xmldoc.getElementsByTagName('option');
      var sel = document.getElementById(id);

      while (sel.length > 0) {
        sel.remove(sel.length - 1);
      }

      for (i = 0; i < no.length; i++) {
        n = no[i].firstChild;
        opt = document.createElement('option');
        opt.text = n.nodeValue;
        opt.value = n.nodeValue;
        sel.options[i] = opt;
      }

      //document.getElementById(id).innerHTML = http_request.responseText;

    } else {
      alert('There was a problem with the request. status is' + http_request.status + " id is " + id);
    }
  }
}

function getSelect(url, params, id) {

  http_request = false;

  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType)
      http_request.overrideMimeType('text/xml');
  } else if (window.ActiveXObject) { // IE
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }

  if (! http_request) {
    alert('Cannot create an XMLHTTP instance');
    return false;
  }

  var newcallback = function() { return replaceSelectCallback(id, http_request); }

  http_request.open('GET', url, true);
  http_request.onreadystatechange = newcallback;
  http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  http_request.send(params);
}

function changeSelect(q, id) {
  var index = document.getElementById(q).selectedIndex;
  var resort = document.getElementById(q).options[index].id;

  getSelect("/holiday_quote/xmlhttprequest/hotel_listing?resort=" + resort, "", id);
}


