function select_innerHTML(objeto,innerHTML){
/******
* select_innerHTML - corrige o bug do InnerHTML em selects no IE
* Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
* Versio: 2.1 - 04/09/2007
* Autor: Micox - Niron Jos C. Guimares - micoxjcg@yahoo.com.br
* @objeto(tipo HTMLobject): o select a ser alterado
* @innerHTML(tipo string): o novo valor do innerHTML
*******/
    objeto.innerHTML = ""
    var selTemp = document.createElement("micoxselect")
    var opt;
    selTemp.id="micoxselect1"
    document.body.appendChild(selTemp)
    selTemp = document.getElementById("micoxselect1")
    selTemp.style.display="none"
    if(innerHTML.toLowerCase().indexOf("<option")<0){
      innerHTML = "<option>" + innerHTML + "</option>"
    }
    innerHTML = innerHTML.toLowerCase().replace(/<option/g,"<span").replace(/<\/option/g,"</span")

	selTemp.innerHTML = innerHTML


    for(var i=0;i<selTemp.childNodes.length;i++){
  var spantemp = selTemp.childNodes[i];

        if(spantemp.tagName){
            opt = document.createElement("OPTION")

   if(document.all){ //IE
    objeto.add(opt)
   }else{
    objeto.appendChild(opt)
   }

   //getting attributes
   for(var j=0; j<spantemp.attributes.length ; j++){
    var attrName = spantemp.attributes[j].nodeName;
    var attrVal = spantemp.attributes[j].nodeValue;
    if(attrVal){
     try{
      opt.setAttribute(attrName,attrVal);
      opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
     }catch(e){}
    }
   }
   //getting styles
   if(spantemp.style){
    for(var y in spantemp.style){
     try{opt.style[y] = spantemp.style[y];}catch(e){}
    }
   }
   //value and text
   opt.value = spantemp.getAttribute("value").toUpperCase();
   if (opt.value!='--'){
	opt.text = spantemp.innerHTML.toUpperCase();
   }else{
    opt.text = spantemp.innerHTML;
   }
   //IE
   opt.selected = spantemp.getAttribute('selected');
   opt.className = spantemp.className;
  }
 }
 document.body.removeChild(selTemp)
 selTemp = null
}

function initRequest() {
       if (window.XMLHttpRequest) {
           return new XMLHttpRequest();
       } else if (window.ActiveXObject) {
           isIE = true;
           return new ActiveXObject("Microsoft.XMLHTTP");
       }
   }


   function doCompletionOffers(form,hotel) {
	      if (document.getElementById('form2:currentDestino').value == "") {
	           clearTable();
	       } else {
	    	   var hot="";
	    	   if (hotel!=null && hotel!=0){
	    		   hot = "&hotel="+hotel;
	    	   }
	    	   var url = "/hoteles.luabay?oferta=" + escape(document.getElementById(form+':cargar').value) + "&destino=" + escape(document.getElementById(form+':currentDestino').value)+hot
	           var req = initRequest();
	           req.onreadystatechange = function() {
	               if (req.readyState == 4) {
	                   if (req.status == 200) {
	                       parseMessages(req.responseXML, form+':currentHotel');
	                   } else if (req.status == 204){
	                       clearTable();
	                   }
	               }
	           };
	           req.open("GET", url, true);
	           req.send(null);
	       }
	   }

   function doCompletion(form) {
	      if (document.getElementById(form+':destinos').value == "") {
	           clearTable();
	       } else {
	           var url = "/hoteles.luabay?destino=" + escape(document.getElementById(form+':destinos').value);
	           var req = initRequest();
	           req.onreadystatechange = function() {
	               if (req.readyState == 4) {
	                   if (req.status == 200) {
	                       parseMessages(req.responseXML, form+':hoteles');
	                   } else if (req.status == 204){
	                       clearTable();
	                   }
	               }
	           };
	           req.open("GET", url, true);
	           req.send(null);
	       }
	   }
   
   function parseMessages(responseXML, field) {
	   	var idHotel = 0;
		var hoteles = responseXML.getElementsByTagName("hoteles")[0];
		if (hoteles!=null){
	   	document.getElementById(field).innerHTML = '';
	    var inner='';
	      for (loop = 0; hoteles.childNodes.length > loop; loop++) {
				var opcion = hoteles.childNodes[loop];
				var id = opcion.getElementsByTagName("id")[0].childNodes[0].nodeValue;
				if (id=='0'){
					id='';
				}
				var value = opcion.getElementsByTagName("value")[0].childNodes[0].nodeValue;
				var sel = opcion.getElementsByTagName("sel")[0].childNodes[0].nodeValue;
				if(loop == 0){
					escondeNinos(id);
				}
			   if (sel == '--') sel = "";
			   if (sel=="selected"){
				   idHotel = id;
				   escondeNinos(idHotel);
			   }
			   if (window.ActiveXObject) {
					inner=inner+"<option value='"+id+"' "+sel+">"+value+"</option>";
				} else {
	         	document.getElementById(field).innerHTML = document.getElementById(field).innerHTML+ '<option value="'+id+'" '+sel+'>'+value+'</option>';
	         }
			}
			if (window.ActiveXObject) {
				select_innerHTML(document.getElementById(field),inner);
			}
		}
		return idHotel;
   }
   
   function hotel_fix(form, id){
		var select = document.getElementById(form+':hoteles');
		for(i=0;i<select.options.length;i++){
			if(select.options[i].value==id){
				select.options[i].selected=true;
				select.selectedIndex=i;
			}else{
				select.options[i].selected=false;
			}
		}
	}
   
   
   
