function addLoadEvent(funct) {
  var oldOnLoad = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = funct;
  } else {
    window.onload = function() {
      oldOnLoad();
      funct();
    }
  }
}

function prepareHotelSearch() {
  var regions = $("form_search_regions_key");
  var hotels = $("form_search_hotels_key");
  
  if(regions != null && hotels != null) {
    regions.onchange = function() { checkRegions(); }
    hotels.onchange = function() { checkHotels(); }
    checkHotels();
    if(regions.value != '') checkRegions();
  }
  
  var default_text = "Stichwort";
  var search_text = $("form_search_text");
  if(search_text != null) {
    if(search_text.value == "") {
      search_text.style.color = "#BBB";
      search_text.value = default_text;
      search_text.onclick = function() {
        if(search_text.value == default_text) {
          search_text.value = "";
          search_text.style.color = "black";
        }
      }
    }
    var frm = $("search_form");
    if(frm != null) {
      frm.onsubmit = function() {
        if(search_text.value == default_text) {
          search_text.value = "";
        }
        return true;
      }
    }
  }
}

function clearHotels(hotels) {
  while(hotels.hasChildNodes()) {
		hotels.removeChild(hotels.firstChild);
	}
}

function checkRegions() {
  var regions = $("form_search_regions_key");
  var hotels = $("form_search_hotels_key");
  
  var url = '/module/hotel_search/getajaxhotels.php';
  var pars;
  if(regions.value != '') {
    // Region ausgewählt
    pars = 'regions_key=' + regions.value;
  } else {
    // Keine Region ausgewählt
    pars = '';
  }
  //hotels.innerHTML = '<option>Lade Hotels...</option>';
  clearHotels(hotels);
  var opt = document.createElement("option");
  opt.appendChild(document.createTextNode("Lade Hotels..."));
  hotels.appendChild(opt);
  hotels.setAttribute('disabled', 'disabled');
  var myAjax = new Ajax.Request(
  		url, 
  		{
  			method: 'get', 
  			parameters: pars, 
  			onComplete: showResponse
  		});
}


function checkHotels() {
  var regions = $("form_search_regions_key");
  var hotels = $("form_search_hotels_key");
  
  if(hotels.value != '') {
    // Hotel ausgewählt
    regions.setAttribute('disabled', 'disabled');
  } else{
    // Kein Hotel ausgewählt
    regions.removeAttribute('disabled');
  }
}

function showResponse(originalRequest)
{
	var hotels = $('form_search_hotels_key');
	hotels.removeAttribute('disabled');

	// Muss mit korrektem Javascript gemacht werden, weil der IE mit innerHTML und SELECTs nicht funktioniert
	clearHotels(hotels);
	var xml = originalRequest.responseXML;
	var newhotels = xml.getElementsByTagName("hotel");
  
	var opt = document.createElement("option");
	opt.appendChild(document.createTextNode("Alle Hotels"));
	opt.setAttribute("value", "");
	hotels.appendChild(opt);
	
	for(var i=0; i<newhotels.length; i++) {
	  var opt = document.createElement("option");
	  opt.setAttribute("value", newhotels[i].getAttribute('key'));
	  opt.appendChild(document.createTextNode(newhotels[i].childNodes[0].nodeValue));
	  hotels.appendChild(opt);
	}
	//hotels.innerHTML = '<option value="">Alle Hotels</option>' + originalRequest.responseText;
}


addLoadEvent(prepareHotelSearch);