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 doCompletion(form) {
      if (document.getElementById(form +':destinos').value == "") {
           clearTable();
       } else {
           var url = "/hoteles.sandoshotels?destino=" + escape(document.getElementById(form +':destinos').value);
           var req = initRequest();
           req.onreadystatechange = function() {
               if (req.readyState == 4) {
                   if (req.status == 200) {
                       idHotel = parseMessages(req.responseXML, form +':hoteles');
                       if (window.ActiveXObject) hotel_fix(form, idHotel);
                   } else if (req.status == 204){
                       clearTable();
                   }
               }
           };
           req.open("GET", url, true);
           req.send(null);
       }
   }

   function doCompletionOffers() {
	      if (document.getElementById('form2:odestinos').value == "") {
	           clearTable();
	       } else {
	           var url = "/hoteles.sandoshotels?oferta=" + escape(document.getElementById('form1:cargar').value) + "&destino=" + escape(document.getElementById('form2:odestinos').value);
	           var req = initRequest();
	           req.onreadystatechange = function() {
	               if (req.readyState == 4) {
	                   if (req.status == 200) {
	                       parseMessages(req.responseXML, 'form2:ohoteles');
	                   } 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 (sel == '--') sel = "";
			   if (sel=="selected") idHotel = id;
			   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;
			}
		}
	}
   
   function parseMessagesFile(responseXML,tagName) {
		var existe = responseXML.getElementsByTagName(tagName)[0];
		if (existe!=null && existe.childNodes[0].nodeValue=='true'){
			return true;
		} else {
			return false;
		}
	}
   
   function exportCheckFile(customerId,fileName){
	   var url = "/checkfile?customerId=" + escape(customerId) + "&file=" + escape(fileName);
       var req = initRequest();
       req.onreadystatechange = function() {
           if (req.readyState == 4) {
               if (req.status == 200) {
                   if (parseMessagesFile(req.responseXML,'existe')==true){
                	   clearInterval(exportIntervalId);
                	   document.getElementById('exportLoading').style.display='none';
                	   document.getElementById('exportFile').style.display='block';
                   } else {
                	   document.getElementById('exportLoading').style.display='block';
					   document.getElementById('exportFile').style.display='none';
                   }
            	 } else if (req.status == 204){
            	   clearTable();
               }
           }
       };
       req.open("GET", url, true);
       req.send(null);
     }
   
