function general() {

    /***********/
    /* Init
    /***********/
    this.init = function () {
         this.setVars();
         this.jsonCargar();
    };

    /***********/
    /* Ordenar
    /***********/
    this.setVars = function () {
         this._doc  = document;
    };

    /***********/
    /* jsonCargar
    /***********/
    this.jsonCargar = function () {
         var url = _http+'/home.json.js';
         var ajax = new AjaxCall(url, null, this.jsonCargarCall );
         ajax.doGET();
    };

    /***********/
    /* jsonCargarCall
    /***********/
    this.jsonCargarCall = function (txt) {
         _general._json = eval("["+txt+"]");
    };

    /***********/
    /* destinosVer
    /***********/
    this.destinosVer = function (obj) {

         if ( !this._json[0]['destinos'] ) return;

         var destinos = this._json[0]['destinos'];
         if ( !this.fl_destinos ) {

              var str = '';
              for( var i in destinos ) {
                   var r = destinos[i];
                   str += '<li>'+
                            '<a href="'+_http+r['destino_url']+'" title="'+r['destino_titulo']+'">'+
                              r['destino_titulo']+
                            '</a>'+
                          '</li>';
              }

              var vars = { resize:         false,
                           close:          false,
                           move:           false,
                           blur:           true,
                           shadow:         false,
                           transparency:   false,
                           id:             'divDestinos',
                           width:          '178px',
                           height:         '230px',
                           overflow:       'hidden',
                           bgcolor:        '',
                           font_family:    'Arial',
                           font_color:     '#966F47',
                           border:         '0px solid #869DB7',
                           padding:        '0px 10px 10px 10px'
                         };

              this.fl_destinos = new floatCall(vars);
              this.fl_destinos.floatInit();
              this.fl_destinos.floatSetText({content:str});
         }

         this.fl_destinos.floatPositionObject(obj,'right',false,-6,-3);
    };


    /***********/
    /* Ver mapa
    /***********/
    this.verMapa = function (provider,id) {

         var str = '<table id="mapa" width="900" height="500" border="0" cellspacing="0" cellpadding="0">'+
                      '<tr>'+
                        '<td>'+
                          '<table width="100%" border="0" cellspacing="0" cellpadding="0">'+
                             '<tr>'+
                               '<td nowrap><div id="titulo1"></div></td>'+
                               '<td nowrap><div id="titulo2"></div></td>'+
                               '<td width="100%" align="right">'+
                                  '<div onClick="_general.commentHide()" id="close"></div>'+
                               '</td>'+
                             '</tr>'+
                          '</table>'+
                        '</td>'+
                      '<tr>'+
                        '<td height="100%">'+
                          '<div id="map_canvas"></div>'+
                        '</td>'+
                      '</tr>'+
                   '</table>';

         this.backFadeShow(90);
         this.commentDraw(null,null,str);


         var url = _http+'/ajaxMapa/';

         //alert(url);

         var query = 'destino='+consulta['destino']+
                     ( provider ? '&provider='+provider : '' )+
                     ( id       ? '&id='+id : '' );

         //this._doc.location = url+"?"+query;

         var ajax = new AjaxCall(url, query, this.verMapaCall );
         ajax.doGET();
    };

    /***********/
    /* Ver MapaCall
    /***********/
    this.verMapaCall = function (txt) {
         var j = eval("["+txt+"]");
         _general.hotel = j[0]['hotel'];
         _general.items = j[0]['items'];
         _general.verMapaGmap();
    };

    /***********/
    /* verMapaGmap
    /***********/
    this.verMapaGmap = function () {

         if ( this.hotel ) {
              this._doc.getElementById('titulo1').innerHTML = this.hotel['titulo1'];
              this._doc.getElementById('titulo2').innerHTML = this.hotel['titulo2'];
         }

         var _gMap = new gMap({ "canva": "map_canvas",
                                "items": this.items,
                                "hotel": this.hotel,
                                 "zoom": ( this.hotel && this.hotel['id'] ? 10 : 10 ),
                                 //"zoom": null,
                                 "tipo": 1,
                               "tamano": 1
                             });
         _gMap.init();
    };

    /***********/
    /* Mensaje
    /***********/
    this.viewMsg = function (mEvent,obj,msg,vista) {

         if ( !(_msg = _jsonMsgs[msg] )) return;

         if (this._objActive!=obj) {
             this.addEvent(obj,'mouseout',this.commentHide);

             var str = '<table id="msgbox" width="300" border="0" cellspacing="0" cellpadding="5">'+
                          '<tr>'+
                             '<td id="titulo">'+
                                _msg['titulo']+
                             '</td>'+
                          '</tr>'+
                          '<tr>'+
                             '<td id="texto">'+
                               _msg['texto']+
                             '</td>'+
                          '</tr>'+
                       '</table>';

             this.commentDraw(mEvent,obj,str);
             this._objActive = obj;

         } else {
           this.commentShow(mEvent,obj);
         }
    };

    /***********/
    /* Loading msg
    /***********/
    this.loadingMsg = function () {
         var str = '<div style="font-size:11px;padding:20px;" align="center">'+
                     '<img src="'+_http+'/images/loadingg.gif" width="45" height="45"/>'+
                     '<br><br><b>Cargando..</b><br>Por favor espere'+
                   '</div>';
         this.backFadeShow(90);
         this.commentDraw(null,null,str);
    };

    /***********/
    /* commentDraw
    /***********/
    this.commentDraw = function (mEvent,obj,str) {
         this._body = this._doc.getElementsByTagName("body")[0];
         this.commentCreateDiv();
         var str = '<table border="0" cellspacing="0" cellpadding="0">'+
                        '<tr>'+
                           '<td id="top-left">&nbsp;</td>'+
                           '<td id="top-middle">&nbsp;</td>'+
                           '<td id="top-right">&nbsp;</td>'+
                        '</tr>'+
                        '<tr>'+
                           '<td id="center-left">&nbsp;</td>'+
                           '<td id="center-middle">'+str+'</td>'+
                           '<td id="center-right">&nbsp;</td>'+
                        '</tr>'+
                        '<tr>'+
                           '<td id="bottom-left">&nbsp;</td>'+
                           '<td>'+
                              '<div id="bottom-middle">&nbsp;</div>'+
                           '</td>'+
                           '<td id="bottom-right">&nbsp;</td>'+
                        '</tr>'+
                     '</table>';

         divComment.innerHTML = str;
         this.commentShow(mEvent,obj);
    };

    /***********/
    /* commentCreateDiv
    /***********/
    this.commentCreateDiv = function() {
         if ( this._doc.getElementById('comment') ) return;
         divComment = this._doc.createElement("DIV");
         divComment.id = 'comment';
         this._body.appendChild(divComment);
    };

    /***********/
    /* commentShow
    /***********/
    this.commentShow = function (mEvent,obj) {

              if(mEvent) this.commentPosEvent(mEvent);
         else if ( obj ) this.commentPosObject(obj);
                    else this.commentPosCenter();
    };

    /***********/
    /* commentPosEvent
    /***********/
    this.commentPosEvent = function (mEvent) {

         divComment.style.position = 'absolute';

         var div_width  = divComment.offsetWidth;
         var div_height = divComment.offsetHeight;
         var pos_x      = mEvent.clientX+15+( this._doc.documentElement.scrollLeft ? this._doc.documentElement.scrollLeft : this._doc.body.scrollLeft );
         var pos_y      = mEvent.clientY-div_height-20+( this._doc.documentElement.scrollTop ? this._doc.documentElement.scrollTop : this._doc.body.scrollTop );

         this.commentPosComment(pos_x,pos_y,mEvent,false);

         var obj = this.commentGetObject(mEvent);
    };

    /***********/
    /* commentPosObject
    /***********/
    this.commentPosObject = function (obj) {

         divComment.style.position = 'absolute';

         var div_width  = divComment.offsetWidth;
         var div_height = divComment.offsetHeight;
         var obj_width  = obj.offsetWidth;
         var obj_height = obj.offsetHeight;

         var pos_x  = this.getRealCoords(obj,'x');
         var pos_y  = this.getRealCoords(obj,'y')-div_height+(obj_height/2)-15;

         this.commentPosComment(pos_x,pos_y,false,obj);
    };



    /***********/
    /* commentPosCenter
    /***********/
    this.commentPosCenter = function () {

         divComment.style.position = 'fixed';

         var _ww = this.getWindowWidth();
         var _wh = this.getWindowHeight();
         var _x = (_ww/2)-(divComment.offsetWidth/2);
         var _y = (_wh/2)-(divComment.offsetHeight/2);

         this.commentPosComment(_x,_y,false,false);
    };

    /***********/
    /* commentPosComment
    /***********/
    this.commentPosComment = function (pos_x,pos_y,mEvent,obj) {

         if ( pos_y < 0 ) {
              if ( mEvent ) pos_y = mEvent.clientY+5;
                       else pos_y = this.getRealCoords(obj,'y')+5;
         }

         divComment.style.left = pos_x+'px';
         divComment.style.top  = pos_y+'px';
    };

    /***********/
    /* commentGetObject
    /***********/
    this.commentGetObject = function (mEvent) {
         if (mEvent.srcElement)  var obj = mEvent.srcElement;
         else if (mEvent.target) var obj = mEvent.target;
         return obj;
    };


    /***********/
    /* commentHide
    /***********/
    this.commentHide = function () {
         try{ divComment.style.left = '-1500px';
              this.backFadeHidde();
         } catch(e) {}
    };

    /***********/
    /* backFade
    /***********/
    this.backFadeShow = function(alpha) {

         this._body = this._doc.getElementsByTagName("body")[0];
         if ( !alpha ) alpha = '80';

         if ( !this._backDiv ) {
               this._backDiv = this._doc.createElement("DIV");
               this._body.appendChild(this._backDiv);
               this._backDiv.style.cssText = 'position:absolute;'+
                                             'position:fixed!;'+
                                             'display:none;'+
                                             'top:0px;'+
                                             'left:0px;'+
                                             'background-color:#FFF;'+
                                             'filter:alpha(Opacity='+alpha+');'+
                                             'opacity: 0.'+alpha+';'+
                                             '-moz-opacity: 0.'+alpha+';';
         }

         var _width  = this._body.offsetWidth+( this._doc.documentElement.scrollLeft ? this._doc.documentElement.scrollLeft : this._doc.body.scrollLeft );
         var _height = this._doc.getElementById('pagina').offsetHeight;
         this._backDiv.style.width  = _width+'px';
         this._backDiv.style.height = _height+'px';
         /*
         this._backDiv.style.width  = '100%';
         this._backDiv.style.height = '100%';
         */
         this._backDiv.style.display = "block";

    }

    /***********/
    /* backFadeIn
    /***********/
    this.backFadeHidde = function () {
         this._backDiv.style.display = 'none';
    }

    /***********/
    /* getRealCoords
    /***********/
    this.getRealCoords = function (obj,axis) {
         var curleft = curtop = 0;
         if (obj.offsetParent) {
             do {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop;
             } while (obj = obj.offsetParent);
         }
         return axis == 'x' ? curleft : curtop;
    };

    /***********/
    /* Add event
    /***********/
    this.addEvent = function (elm, evType, fn, useCapture) {
         if (elm.addEventListener) {
             elm.addEventListener(evType, fn, useCapture);
         } else if (elm.attachEvent) {
             elm.attachEvent('on' + evType, fn);
         } else {

             elm['on' + evType] = fn;
         }
    };

    /***********/
    /* floatGetWindowWidth
    /***********/
    this.getWindowWidth = function () {
         var windowWidth = 0;
         if (typeof(window.innerWidth) == 'number') {
             windowWidth = window.innerWidth;
         }else {
             if (document.documentElement && document.documentElement.clientWidth) {
                 windowWidth = document.documentElement.clientWidth;
             } else {
                 if (document.body && document.body.clientWidth) {
                     windowWidth = document.body.clientWidth;
                 }
             }
         }
         return windowWidth;
    }

    /***********/
    /* floatGetWindowHeight
    /***********/
    this.getWindowHeight = function () {
         var windowHeight = 0;
         if (typeof(window.innerHeight) == 'number') {
             windowHeight = window.innerHeight;
         }else {
             if (document.documentElement && document.documentElement.clientHeight) {
                 windowHeight = document.documentElement.clientHeight;
             } else {
                 if (document.body && document.body.clientHeight) {
                     windowHeight = document.body.clientHeight;
                 }
             }
         }
         return windowHeight;
    }
}

_general = new general();
_general.init();
function home() {

    /***********/
    /* Init
    /***********/
    this.init = function () {
         this.setVars();
    };

    /***********/
    /* Ordenar
    /***********/
    this.setVars = function () {
         this._doc  = document;
         this._body = this._doc.getElementsByTagName("body")[0];
         this._sliceSelI = 0;
    };

    /***********/
    /* sliceRun
    /***********/
    this.sliceRun = function(i) {

         var r = _sliceJson[i];

         this._doc.getElementById('view_sel_foto_img').onload = function() {

                        _home._doc.getElementById('view_sel_url').href = r['destino_url'];
                        _home._doc.getElementById('view_sel_url').title = r['destino_nombre'];
                        _home._doc.getElementById('view_sel_nombre').innerHTML = r['destino_nombre'];
                        _home._doc.getElementById('view_sel_tarifa_monto').innerHTML = r['destino_tarifa'];
                        _home._doc.getElementById('view_sel_foto_img').alt = r['destino_nombre'];
                        _home._doc.getElementById('sliceItem'+_home._sliceSelI).className = 'item';
                        _home._doc.getElementById('sliceItemArrow'+_home._sliceSelI).className = '';
                        _home._doc.getElementById('sliceItem'+i).className = 'itemsel';
                        _home._doc.getElementById('sliceItemArrow'+i).className = 'arrow';
                        _home._sliceSelI = i;


                        window.clearTimeout ( _home.sliceTime );
                        _home.sliceTime = window.setTimeout ( function() {
                                                                   var i = _home._sliceSelI+1;
                                                                   if ( i > _sliceJson.length-1 ) i = 0;
                                                                   _home.sliceRun(i);
                                                              },5000);
         }

         this._doc.getElementById('view_sel_foto_img').src = r['destino_imagen'];

    };
}

_home = new home();
_home.init();
function buscarCiudad(params) {

    /**********/
    /* Globals
    /********/
    var _this  = this;

    /***********/
    /* Init
    /***********/
    this.init = function () {
         this.setVars();
         this.addEvents();
    };

    /***********/
    /* Ordenar
    /***********/
    this.setVars = function () {
         this._doc  = document;
         this._body = this._doc.getElementsByTagName("body")[0];
         this._selOpcion = -1;
    };

    /***********/
    /* addEvents
    /***********/
    this.addEvents = function () {
         this.addEvent(this._body,'click',this.ocultarDiv);
    };

    /***********/
    /* Type
    /***********/
    this.type = function (mEvent) {

              if ( mEvent.keyCode == 38 ) { this.moverTecla(1);return false; }
         else if ( mEvent.keyCode == 40 ) { this.moverTecla(2);return false; }
         else if ( mEvent.keyCode == 27 || mEvent.keyCode == 13 ) { this.ocultarDiv();return true; }

         this._objSel = null;
         var chr_key = params['objInput'].value;
		
		 if ( chr_key == '' ) {
		 	  this.limpiarCampo();
		 	  return;
		 }

         if ( chr_key.length < params['keys'] ) {
              this.ocultarDiv();
              return;
         }
         var parameters = (typeof params['parameters'] != 'undefined' ? params['parameters']+'&' : '')+'chr_key='+chr_key+'&d='+new Date();
         var ajax = new AjaxCall(params['url'], parameters , this.typeCall );
         ajax.doGET();
    };

    /***********/
    /* typeCall
    /***********/
    this.typeCall = function (txt) {
         if ( !_this._div ) {
               _this._div = _this._doc.createElement("DIV");
               _this._body.appendChild(_this._div);
               _this._div.id = 'comboBusqueda';
               _this._div.style.cssText = 'position:absolute;'+
               				'z-index:99999;';

               _this._div.onmouseover = function(e) {
                                              if (typeof event !== 'undefined') {el=event.srcElement;} else {el=e.target;}
                                              _this.overOpcion(el);
                                        }

               _this._div.onclick = function(e) { _this.selOpcion(e); }
         }

		 _this.mostrarDiv();
         _this._div.innerHTML = _this.formatResults(txt);

    };

    /***********/
    /* formatResults
    /***********/
     this.formatResults = function(txt) {
         var result,hoteles,ciudades,json;
          result ='';
          hoteles = '';
          ciudades = '';
          json = eval(txt);
          for(i in json){
              res = json[i];
              //htmlres = '<li  id="op_'+ i +'" title="'+res.n+'"><input type="hidden" value="'+res.m+'" />'+res.n+'</li>';
              htmlres = '<li  id="op_'+ i +'" title="'+res.n+'"><input type="hidden" value="'+res.m+'" /><span>'+res.h+'</span></li>';
              if(res.c == 'h'){
               //   hoteles += htmlres;
              }else if(res.c == 'c'){
                  ciudades += htmlres;
              }

          }
          if(ciudades != ''){
              //result += '<div class="ciudades"><b>'+ params['ciudades'] +'</b>' + ciudades + '</div>';
              result += '<div class="ciudades">' + ciudades + '</div>';
          }
          if(hoteles != ''){
              result += '<div class="hoteles"><b>'+ params['hoteles'] +'</b>' + hoteles + '</div>';
          }
          if(result == ''){
              result = "<i>"+ params['noresultados'] +"</i>";
          }

          return result;
    };

    /***********/
    /* checkKey
    /***********/
    this.checkKey = function (mEvent) {
         if ( mEvent.keyCode == 13 ) {
              if ( this._objSel == null ) {
                   this._objSel = this._doc.getElementById('op_0');
              }
              this.selOpcion();
              return false
         }
         return true;
    };

    /***********/
    /* limpiarCampo
    /***********/
    this.limpiarCampo = function () {

         params['objInput'].style.cssText = '';
         this._doc.getElementById('destino').value = '';
    };


    /***********/
    /* mostrarDiv
    /***********/
    this.mostrarDiv = function () {

         if ( this._div.innerHTML != "" ) return;

         var pos_x_div = this.getRealCoords(params['objInput'],'x');
         var pos_y_div = this.getRealCoords(params['objInput'],'y')+params['objInput'].offsetHeight;

         this._div.style.left = pos_x_div + "px";
         this._div.style.top  = pos_y_div +"px";

         return false;
    };


    /***********/
    /* ocultarDiv
    /***********/
    this.ocultarDiv = function () {
         if ( !_this._div ) return;
         _this._div.style.left = '-500px';
         _this._div.innerHTML = "";
    };

    /***********/
    /* moverTecla
    /***********/
    this.moverTecla = function (accion) {
         var obj = document.getElementById('op_'+this._selOpcion);

         if ( obj != null )
              obj.className = '';

         this._selOpcion = accion == 2 ? this._selOpcion += 1 : this._selOpcion -= 1;
         if ( document.getElementById('op_'+this._selOpcion) == null ) this._selOpcion = 0;
         this._objSel = document.getElementById('op_'+this._selOpcion);
         if ( this._objSel != null ) {
              this._objSel.className = 'selOpcion';
         }
    };

    /***********/
    /* overOpcion
    /***********/
    this.overOpcion = function (obj) {
         if ( !obj.id )   obj = obj.parentNode;
         if ( this._objSel != null ) this._objSel.className = '';
         this._objSel = obj;
         this._objSel.className = 'selOpcion';
         this._selOpcion = parseFloat(this._objSel.id);
    };

    /***********/
    /* selOpcion
    /***********/
    this.selOpcion = function() {
         eval(params['func']);
    };

    /***********/
    /* seleccionarCiudad
    /***********/
   this.seleccionarCiudad = function() {
       var codigo, nombre;
         /*if ( !this._objSel ) {
               this._doc.getElementById('destino').value = this._doc.getElementById('txt_destino').value;
               return false;
         }*/
         if(this._objSel.getElementsByTagName('input').length < 1){
                 this._objSel = this._objSel.parentNode;
         }
         codigo = this._objSel.getElementsByTagName('input')[0].value;
         nombre = this._objSel.title;

         if(isNaN(codigo)){
             document.getElementById('destino').value = codigo;
             document.getElementById('id').value = '';
         }else{
             document.getElementById('id').value = codigo;
             document.getElementById('destino').value = '';
         }

         document.getElementById('txt_destino').value = nombre;
         params['objInput'].focus();
         this.ocultarDiv();
         return false;
    };

    /***********/
    /* submitForm
    /***********/
    this.submitForm = function(f) {
         if ( !validarBusqueda(f) ) return false;
         f.submit(); 
    };

    /***********/
    /* activarEscribir
    /***********/
    this.activarEscribir = function() {
         if ( params['objInput'] == null ) return;
         params['objInput'].style.color = objColor;
         params['objInput'].value = objValue;
    };

    /***********/
    /* getRealCoords
    /***********/
    this.getRealCoords = function (obj,axis) {
         var curleft = curtop = 0;
         if (obj.offsetParent) {
             do { curleft += obj.offsetLeft;
                  curtop += obj.offsetTop;
            } while (obj = obj.offsetParent);
         }
         return axis == 'x' ? curleft : curtop;
    };

    /***********/
    /* Add event
    /***********/
    this.addEvent = function (elm, evType, fn, useCapture) {
         if (elm.addEventListener) {
             elm.addEventListener(evType, fn, useCapture);
         } else if (elm.attachEvent) {
             elm.attachEvent('on' + evType, fn);
         } else {
             elm['on' + evType] = fn;
         }
    };

}
function validarBusqueda(form) {

      if ( document.getElementById('destino') && document.getElementById('destino').value == "" ) {
           alert('VocÃª deve definir um destino para pesquisa');
           document.getElementById('txt_destino').focus();
           return false; 
      }

      if ( form.arrDate_dia.value == '' || form.arrDate_mes.value == '' || form.arrDate_ano.value == '' ) {
           alert('VocÃª deve selecionar uma data de entrada');
           return false;
      }

      if ( form.deptDate_dia.value == '' || form.deptDate_mes.value == '' || form.deptDate_ano.value == '' ) {
           alert('VocÃª deve selecionar uma data de saída');
           return false;
      }

      return true;
}

//**********************************
//**** Iniciar combo
//**********************************

function initComboHabitaciones(view) {
      var obj = document.getElementById('divHabitacionesDetalle');

      var str = '<table width="100%" style="border-collapse:collapse" border="1" cellspacing="0" cellpadding="6" align="center" bordercolor="#D7B08A">'+
                   '<tr>'+
                      '<td bgcolor="#FFFFFF">'+
                         '<table style="margin-top:5px" width="100%" border="0" cellspacing="0" cellpadding="3">'+
                            '<tr style="font-size:11px">'+
                              '<td>&nbsp;</td>'+
                              '<td width=50 nowrap><b><font color="#BF975B">Adultos</font></b><br>+ 11 anos</td>'+
                              '<td><b><font color="#BF975B">Crian&ccedil;as</font></b><br>- 11 anos </td>'+
                            '</tr>';

      var color = "#FFFFFF";
      for( var i=0 ; i<=consulta['paxs'].length-1 ; i++ ) {
            color = color == '#FFFFFF' ? '#F8F8F8' : '#FFFFFF';
            str +=         '<tr bgcolor="'+color+'" style="padding-top:5px;font-size:11px">'+
                              '<td width=80 valign="top" nowrap><b>Quarto '+(i+1)+'</b></td>'+
                              '<td valign="top">'+
                                '<select name="paxs['+i+'][adultos]" onChange="actualizarPasajeros()" class="campo">'+
                                   dibComboAdultos(i)+
                                '</select>'+
                              '</td>'+
                              '<td valign="top" nowrap>'+
                                '<select name="paxs['+i+'][ninos]" onChange="actNinos('+i+');actualizarPasajeros()" class="campo" style="margin-bottom:5px;">'+
                                   dibComboNinos(i)+
                                '</select>'+
                                '<div id="div_ninos_'+i+'" style="font-size:1px;">'+
                                   dibNinos(i)+
                                '</div>'+
                              '</td>'+
                            '</tr>';
      }

      str +=             '</table>'+
                       '</td>'+
                      '</tr>'+
                      '<tr>'+
                        '<td height=35 align=center nowrap>'+
                          '<input type="button" onClick="cerrarHabitaciones();" class="formActualizar" style="width:80px" name="Submit2" value="ACEPTAR">'+
                        '</td>'+
                      '</tr>'+
                    '</table>';

      obj.innerHTML = str;
      actualizarPasajeros();
      obj.style.display = view ? 'block' : 'none';
      //cerrarCalendario();
}

function setHabitaciones() {
      var obj_habitaciones = document.getElementById('habitaciones');
      if ( obj_habitaciones.value > consulta['paxs'].length ) {
           var desde = consulta['paxs'].length;
           var hasta = obj_habitaciones.value-1;
           for( var i=desde; i<=hasta ; i++ ) {
                consulta['paxs'].push({"adultos":"2","ninos":"0"});
           }

      } else if ( obj_habitaciones.value < consulta['paxs'].length ) {
           var desde = obj_habitaciones.value;
           var hasta = consulta['paxs'].length-1;
           for( var i=desde; i<=hasta ; i++ ) {
                consulta['paxs'].pop();
           }
      }

      initComboHabitaciones();
}

function actualizarPasajeros() {
      var totalAdultos = 0 ;
      var totalNinos = 0 ;
      var obj_habitaciones = document.getElementById('habitaciones');
      for( var i=0 ; i<=consulta['paxs'].length-1 ; i++ ) {

                if ( document.search['paxs['+i+'][adultos]'] != null ) var adultos = parseFloat(document.search['paxs['+i+'][adultos]'].value);
           else if ( consulta['paxs'][i]['adultos'] != null )     var adultos = parseFloat(consulta['paxs'][i]['adultos']);

           if ( document.search['paxs['+i+'][ninos]'] != null )  var ninos = parseFloat(document.search['paxs['+i+'][ninos]'].value);
           else if ( consulta['paxs'][i]['ninos'] != null ) var ninos = parseFloat(consulta['paxs'][i]['ninos']);

           totalAdultos += adultos;
           totalNinos   += ninos;
      }
      document.getElementById('adultos').innerHTML = totalAdultos;
      document.getElementById('ninos').innerHTML   = totalNinos;
}

function dibComboAdultos(i) {
      val = document.search['paxs['+i+'][adultos]'] ? document.search['paxs['+i+'][adultos]'].value : consulta['paxs'][i]['adultos'];
      var str = "";
      for ( var i=1 ; i <= 4 ; i++ ) {
            var sel = i == val ? "selected" : "";
            str += '<option value="'+i+'" '+sel+'>'+i+'</option>';
      }
      return str;
}

function dibComboNinos(i) {

      val = document.search['paxs['+i+'][ninos]'] ? document.search['paxs['+i+'][ninos]'].value : consulta['paxs'][i]['ninos'];
      var adultos = document.search['paxs['+i+'][adultos]'] ? document.search['paxs['+i+'][adultos]'].value : consulta['paxs'][i]['adultos'];
      var hasta = 4 - parseFloat(adultos);

      var str = "";
      for ( var i=0 ; i <= 2 ; i++ ) {
            var sel = i == val ? "selected" : "";
            str += '<option value="'+i+'" '+sel+'>'+i+'</option>';
      }
      return str;
}

function dibNinos(i) {
      var str = "";
      var hasta = document.search['paxs['+i+'][ninos]'] ? document.search['paxs['+i+'][ninos]'].value : consulta['paxs'][i]['ninos'];
      for ( var n=0 ; n <= hasta-1 ; n++ ) {
            str += '<div style="font-size:11px">'+
                     '<img src="'+_http+'/images/206.gif" width="25" height="17" align=middle>Idade crian&ccedil;a '+( n + 1 )+':'+
                     '<select name="paxs['+i+'][edades]['+n+']" class="campo" >'+
                       dibComboEdades(i,n)+
                     '</select>'+
                   '</div>';
      }
      return str;
}

function dibComboEdades(i,n) {

           if ( document.search['paxs['+i+'][edades]['+n+']'] )             val = document.search['paxs['+i+'][edades]['+n+']'].value;
      else if ( typeof(consulta['paxs'][i]['edades']) != 'undefined' ) val = consulta['paxs'][i]['edades'][n];

      var str = '<option value="">--</option>'+
                '<option '+( i == 0 ? "selected" : "" )+' value="0"><1</option>';
      for ( var i=1 ; i <= 11 ; i++ ) {
            var sel = i == val ? "selected" : "";
            str += '<option value="'+i+'" '+sel+'>'+i+'</option>';
      }
      return str;
}

function actNinos(i) {
     var str = dibNinos(i);
     inner('div_ninos_'+i,str);
}



function cerrarHabitaciones() {
      var obj = document.getElementById('divHabitacionesDetalle');
      obj.style.display = 'none';
}

function setCookie(name,value,days) {
      if (days) {
              var date = new Date();
              date.setTime(date.getTime()+(days*24*60*60*1000));
              var expires = "; expires="+date.toGMTString();
      } else expires = "";
      if ( getCookie(name) ) deleteCookie(name);
      document.cookie = name+"="+value+expires+"; path=/";
}

function getCookie(name) {
      var nameEQ = name + "=";
      var ca = document.cookie.split(';');
      for(var i=0;i<ca.length;i++) {
              var c = ca[i];
              while (c.charAt(0)==' ') c = c.substring(1,c.length);
              if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
      }
      return null;
}

function inner(id,str) {
     if ( str == 'undefined' || typeof(str) == 'undefined' ) return;
     var obj = document.getElementById(id);
     if ( obj == null ) return;

     obj.innerHTML = str;
}function Campos(params) {

      var campoObj;

      var _langWeekDays = new Array ();
      _langWeekDays[1]  = new Array ("Do","Se","Te","Qu","Qu","Se","Sa");

      var _langMonths = new Array ();
      _langMonths[1]  = new Array ("","Janeiro","Fevereiro","MarÃ§o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro");

      this.crear = function() {
                              campoObj = this;

                              this._doc  = params['doc'] ? params['doc'] : document;
                              this._body = this._doc.getElementsByTagName('body')[0];

                              this.getCookieValue();

                              switch(params['type']) {

                                  case 'text':       var str = this.campoText();break;
                                  case 'innertext':  var str = this.campoInnerText();break;
                                  case 'select':     var str = this.campoSelect();break;
                                  case 'calendar':   var str = this.campoCalendar();break;
                              }

                              if ( params['inner'] ) {
                                   if ( typeof params['inner'] == 'object' ) var obj = params['inner'];
                                                                        else var obj = this._doc.getElementById(params['inner']);

                                   obj.innerHTML = str;
                              } else this._doc.write(str);

                              if ( params['type'] == 'select' ) {
                                   this.campoSelectOptions();
                                   this.campoSelectOptionsSeleccionar();

                              } else if ( params['type'] == 'calendar' ) {
                                   this.calendarHiddens();
                                   this.calendarText(params['id']);
                                   this.calendarAddEvents();
                              }

                              this.addEvents();
      }


      this.getCookieValue = function () {
                              if ( !params['cookie'] || params['value'] ) return;
                              var value = this.getCookie(params['cookie']+"["+params['name']+"]");
                              if (value != null ) params['value'] = value;

      }

      this.addEvents = function() {
                              switch(params['type']) {
                                  case 'calendar': var id = params['id']+'_sel';break;
                                          default: var id = params['id'];break;

                              }

                              var obj = document.getElementById(id);
                              this._campo = obj;
                              if ( ( events = params['events']) ) {
                                   for ( key in events ) {
                                         this.addEvent (obj,events[key]['type'],events[key]['func']);
                                   }
                              }
      }

      //*******************************************************************
      //**************        TEXT          *******************************
      //*******************************************************************

      this.campoText = function() {

                              var str = '<table class="campo-text" border="0" cellspacing="0" cellpadding="0" style="'+( params['float'] ? 'float:'+params['float']+';' : '' )+'width:'+params['width']+'">'+
                                           '<tr>'+
                                             '<td class="campo-text-img-left"></td>'+
                                             '<td class="campo-text-middle">'+
                                               '<input style="width:100%;" type="text" '+( params['autocomplete'] ? 'autocomplete="'+params['autocomplete']+'"' : '' )+' id="'+params['id']+'" '+( params['name'] ? 'name="'+params['name']+'"' : '' )+' value="'+params['value']+'">'+
                                             '</td>'+
                                             '<td class="campo-text-img-right"></td>'+
                                           '</tr>'+
                                        '</table>';

                              return str;
      }

      //*******************************************************************
      //**************        INNER TEXT          *******************************
      //*******************************************************************

      this.campoInnerText = function() {
                              var str = '<table class="campo-text" border="0" cellspacing="0" cellpadding="0" style="width:'+params['width']+'">'+
                                           '<tr>'+
                                             '<td class="campo-text-img-left"></td>'+
                                             '<td class="campo-text-middle" id="'+params['id']+'">'+
                                               ( params['value'] ? params['value'] : '&nbsp;' )+
                                             '</td>'+
                                             '<td class="campo-text-img-right"></td>'+
                                           '</tr>'+
                                        '</table>'+
                                        '<input type="hidden"  name="'+params['name']+'" value="'+params['value']+'">';

                              return str;
      }

      //*******************************************************************
      //**************        SELECT        *******************************
      //*******************************************************************


      this.campoSelect = function() {

                              var str = '<div class="campo-select" id="'+params['id']+'_sel" style="'+( params['float'] ? 'float:'+params['float']+';' : '' )+'width:'+params['width']+'">'+
                                           '<table width="100%" border="0" cellspacing="0" cellpadding="0" >'+
                                            '<tr>'+
                                              '<td class="campo-select-img-left"></td>'+
                                              '<td class="campo-select-middle" nowrap>'+
                                               '<div class="campo-select-middle-inner" nowrap id="'+params['id']+'_val"></div>'+
                                              '</td>'+
                                              '<td class="campo-select-img-right"></td>'+
                                            '</tr>'+
                                          '</table>'+
                                          '<div class="campo-select-options" id="'+params['id']+'_sec"></div>'+
                                        '</div>';


                              return str;
      }

      this.campoSelectOptions = function() {

                              var sel = document.getElementById(params['id']+'_sel');
                              sel.onmouseup = function() {
                                                     campoObj.campoSelectOptionsMostrar();
                                              }

                              var sec = document.getElementById(params['id']+'_sec');

                              eleSelect = document.createElement("SELECT");
                              eleSelect.setAttribute("size", params['size'] ? params['size'] : 8 );
                              eleSelect.setAttribute("name", params['name']);
                              eleSelect.setAttribute("id", params['id']);

                              if ( params['onchange'] ) {
                                   eleSelect.onchange = function() {eval(params['onchange']);}
                              }

                              eleSelect.className = 'campo-select-options';
                              eleSelect.style.width = params['width'];

                              eleSelect.onclick = function () {
                                                        campoObj.campoSelectOptionsSeleccionar();
                                                  }

                              eleSelect.onblur  = function () {
                                                        campoObj.campoSelectOptionsSeleccionar();
                                                  }

                              eleSelect.onkeyup = function(e) {
                                                        if (typeof event !== 'undefined') {ev=event;} else {ev=e;}
                                                        if ( ev.keyCode == 13 ) {
                                                             campoObj.campoSelectOptionsSeleccionar();
                                                        }
                                                    }

                              sec.appendChild(eleSelect);
                              var options = params['options'];
                              var oOptGroup = "";
                              for ( key in options ) {

                                    if ( options[key]['group'] ) {

                                         oOptGroup = document.createElement("OPTGROUP");
                                         oOptGroup.label = options[key]['text'];
                                         eleSelect.appendChild(oOptGroup);

                                    } else {

                                         var oOption = document.createElement("OPTION");
                                         oOption.value = options[key]['value'];
                                         eleSelect.options.add(oOption);
                                         oOption.innerHTML = options[key]['text'];

                                         if ( oOptGroup ) oOptGroup.appendChild(oOption);
                                         if ( options[key]['value'] == params['value'] || options[key]['selected'] ) {
                                              oOption.selected = true;
                                         }
                                    }
                              }

      }

      this.campoSelectOptionsMostrar = function() {

                              var ops = document.getElementById(params['id']);
                              ops.style.visibility = 'visible';
                              ops.style.display = '';
                              ops.focus();
      }

      this.campoSelectOptionsSeleccionar = function() {
                              var ops = document.getElementById(params['id']);
                              var val = document.getElementById(params['id']+'_val');
                              if (ops.selectedIndex == -1 ) return;
                              var valor = ops.options[ops.selectedIndex].text;
                              val.innerHTML = valor ? valor : '&nbsp;';
                              ops.style.visibility = 'hidden';
      }

      //*******************************************************************
      //**************        CALENDAR      *******************************
      //*******************************************************************

      this.campoCalendar = function() {

                              var str = '<table '+( params['disabled'] ? 'disabled' : '' )+' class="campo-calendar" id="'+params['id']+'_sel" border="0" cellspacing="0" cellpadding="0" style="'+( params['float'] ? "float:"+params['float']+";" : "" )+'width:'+params['width']+'">'+
                                           '<tr>'+
                                             '<td class="campo-calendar-img-left"></td>'+
                                             '<td class="campo-calendar-middle">'+
                                               '<div class="campo-calendar-middle-inner" id="'+params['id']+'_val" >Seleccionar</div>'+
                                             '</td>'+
                                             '<td class="campo-calendar-img-right"></td>'+
                                           '</tr>'+
                                        '</table>';


                              return str;

      }

      this.calendarHiddens = function() {

                              if ( !params['hiddens'][0] ) return;

                              var sel = document.getElementById(params['id']+'_sel');
                              var hiddens = params['hiddens'][0];
                              for ( key in hiddens ) {

                                    if ( params['cookie'] && !hiddens[key]['value'] ) {
                                         var value = this.getCookie(params['cookie']+"["+hiddens[key]['name']+"]");
                                         if (value != null ) hiddens[key]['value'] = value;
                                    }

                                    var hidden = document.createElement("INPUT");
                                    hidden.type  = 'hidden';
                                    hidden.name  = hiddens[key]['name'];
                                    hidden.value = hiddens[key]['value'];
                                    hidden.setAttribute("id", params['id']+'_'+key );
                                    sel.appendChild(hidden);
                              }
      }



      this.calendarAddEvents = function() {

                              var sel = document.getElementById(params['id']+'_sel');
                              sel.onclick = function() {
                                                  campoObj.calendarInit();
                                            }
      }



      this.calendarInit = function() {
                              this.calendarSetVars();
                              this.calendarSetDateVals();
                              this.calendarFloat();
                              this.calendarDraw();
      }


      this.calendarSetVars = function() {
                              this._calendarObjSel = document.getElementById(params['id']+'_sel');
      }


      this.calendarSetDateVals = function () {

                              var today = new Date();

                              var obj_dia = document.getElementById(params['id']+'_dia');
                              var obj_mes = document.getElementById(params['id']+'_mes');
                              var obj_ano = document.getElementById(params['id']+'_ano');

                              this._calendarDay   = obj_dia.value > 0 ? obj_dia.value : null;
                              this._calendarMonth = obj_mes.value > 0 ? obj_mes.value : today.getMonth()+1;
                              this._calendarYear  = obj_ano.value > 0 ? obj_ano.value : today.getFullYear();

                              this._calendarDatPoint = (new Date(this._calendarYear,this._calendarMonth-1,this._calendarDay)/1000);
      }

      this.calendarFloat = function() {

                              if ( this.fl_calendar ) {
                                   return;
                              }

                              var vars = { resize:         false,
                                           close:          false,
                                           move:           false,
                                           blur:           true,
                                           id:             params['id']+'_cal',
                                           classname:      'calendar',
                                           width:          '203px',
                                           height:         '188px',
                                           overflow:       'hidden',
                                           bgcolor:        '#FFFFFF',
                                           transparency:   false,
                                           font_family:    'Arial',
                                           font_color:     '#966F47',
                                           header_bgcolor: '#FFF',
                                           border:         '1px solid #869DB7',
                                           padding:        '3px'
                                         };

                              this.fl_calendar = new floatCall(vars);
                              this.fl_calendar.floatInit();
      }


      this.calendarDraw = function() {


                              var str = '<table width="100%" height="180" cellspacing="0" cellpadding="0">'+
                                           '<tr>'+
                                             '<td height="25">'+
                                               '<table width="100%" height="100%" cellspacing="0" cellpadding="0">'+
                                                 '<tr>'+
                                                   '<td width=10>'+
                                                     '<div class="arrow_left" id="'+params['id']+'_prev"></div>'+
                                                   '</td>'+
                                                   '<td valign="top" nowrap align="center" id="'+params['id']+'_cbos"></td>'+
                                                   '<td width=10>'+
                                                     '<div class="arrow_right" id="'+params['id']+'_next"></div>'+
                                                   '</td>'+
                                                 '</tr>'+
                                               '</table>'+
                                             '</td>'+
                                           '</tr>'+
                                           '<tr>'+
                                             '<td align="center" id="'+params['id']+'_days" height="157" valign="top">'+
                                                this.calendarDrawPanelDays()+
                                             '</td>'+
                                           '</tr>'+
                                        '</table>';

                              this.fl_calendar.floatSetText({content:str});
                              this.fl_calendar.floatPositionObject(this._calendarObjSel);

                              this.calendarDrawCbos();
                              this.calendarSetEvents();
         }

         this.calendarDrawCbos = function() {

                              this.calendarDrawCboYears(this._calendarYear);
                              this.calendarDrawCboMonths(this._calendarMonth);
         }


         this.calendarDrawCboYears = function (val) {

                              var sec = document.getElementById(params['id']+'_cbos');

                              var eleSelect = document.createElement("SELECT");
                              eleSelect.className = 'calCboYears';
                              eleSelect.setAttribute("id", params['id']+'_ano');
                              sec.appendChild(eleSelect);

                              var year = (new Date).getFullYear();
                              for(i=2008;i<=year+2;i++) {
                                  var eleOption = document.createElement("OPTION");
                                  eleOption.selected = i == val ? true : false;
                                  eleSelect.appendChild(eleOption);
                                  eleOption.value = i;
                                  eleOption.text = i;
                              }

                              eleSelect.onchange = function() {
                                                         campoObj.calendarReloadYear(this);
                                                   }
         }

         this.calendarDrawCboMonths = function (val) {

                              var sec = document.getElementById(params['id']+'_cbos');

                              var eleSelect = document.createElement("SELECT");
                              eleSelect.className = 'calCboMonths';
                              eleSelect.setAttribute("id", params['id']+'_mes');
                              sec.appendChild(eleSelect);

                              var year = (new Date).getFullYear();
                              for(i=1;i<=12;i++) {
                                  var eleOption = document.createElement("OPTION");
                                  eleOption.selected = i == val ? true : false;
                                  eleSelect.appendChild(eleOption);
                                  eleOption.value = i;
                                  eleOption.text = _langMonths[1][i];
                              }

                              eleSelect.onchange = function() {
                                                         campoObj.calendarReloadMonth(this);
                                                   }
         }

         this.calendarDrawPanelDays = function (reload) {

                              var str = '<table width="100%" height="100%" cellspacing="0" cellpadding="3">'+
                                          '<tr height="10">'+this.calendarDrawWeekDays()+'</tr>'+
                                          '<tr class="dp">'+this.calendarDrawDays(this._calendarYear,this._calendarMonth)+'</tr>'+
                                        '</table>';

                              if ( !reload ) return str;
                              document.getElementById(params['id']+'_days').innerHTML = str;
         }

         this.calendarSetEvents = function () {

                              var obj = document.getElementById(params['id']+'_days');
                              obj.onclick = function(e) {
                                                  if (typeof event !== 'undefined') {ev=event;} else {ev=e;}
                                                  campoObj.calendarSetDay(ev);
                                            }

                              var obj = document.getElementById(params['id']+'_prev');
                              obj.onclick = function() {
                                                  campoObj.calendarChange(1);
                                            }

                              var obj = document.getElementById(params['id']+'_next');
                              obj.onclick = function() {
                                                  campoObj.calendarChange(2);
                                            }


         }

         this.addEvent = function (elm, evType, fn, useCapture) {

                              if (typeof elm.addEventListener != 'undefined' ) {
                                  elm.addEventListener(evType, fn, useCapture);
                                  return true;
                              } else if (elm.attachEvent) {
                                  var r = elm.attachEvent('on' + evType, fn);
                                  return r;
                              } else {
                                  elm['on' + evType] = fn;
                              }
         };

         this.calendarChange = function (d) {


                              if ( d == 1 ) this._calendarMonth = parseFloat(this._calendarMonth)-1;
                                       else this._calendarMonth = parseFloat(this._calendarMonth)+1;


                              if ( this._calendarMonth < 1 ) {
                                   this._calendarMonth = 12 ;
                                   this._calendarYear  = parseFloat(this._calendarYear)-1;

                              } else if ( this._calendarMonth > 12  ) {
                                   this._calendarMonth = 1 ;
                                   this._calendarYear  = parseFloat(this._calendarYear)+1;
                              }

                              this.calendarDraw();
         }



         this.calendarReloadYear = function (obj) {
                             this._calendarYear = obj.value;
                             this.calendarDraw();
         }

         this.calendarReloadMonth = function (obj) {
                             this._calendarMonth = obj.value;
                             this.calendarDraw();
         }

         this.calendarDrawWeekDays = function () {

                             var str = '<td class="wd" width=14.2%>'+_langWeekDays[1][0]+'</td>'+
                                       '<td class="wd" width=14.2%>'+_langWeekDays[1][1]+'</td>'+
                                       '<td class="wd" width=14.2%>'+_langWeekDays[1][2]+'</td>'+
                                       '<td class="wd" width=14.2%>'+_langWeekDays[1][3]+'</td>'+
                                       '<td class="wd" width=14.2%>'+_langWeekDays[1][4]+'</td>'+
                                       '<td class="wd" width=14.2%>'+_langWeekDays[1][5]+'</td>'+
                                       '<td class="wd nb" width=14.2%>'+_langWeekDays[1][6]+'</td>';

                             return str;
         }

         this.calendarDrawDays = function (year,month) {

                             var str = "";
                             var c = 0;

                             var totalDays = this.calendarGetNumDaysMonthTime(year,month,1);
                             var dayBeginWeek = new Date(year,month-1,1).getDay()
                             var toDay = Math.ceil((totalDays+dayBeginWeek)/7)*7;

                             var from = this.calendarGetDateFrom();
                             for ( var i=1;i<=toDay;i++) {

                                       day = i-dayBeginWeek;
                                       c++;
                                       if (c==8) {str += '</tr><tr>';c=1;}

                                       if (day >= 1 && i <= (totalDays+dayBeginWeek) ) {
                                           date = (new Date(year,month-1,day)/1000);
                                           var clase = date == this._calendarDatPoint ? "m" : "";

                                           if ( date < from ) {
                                                str += '<td class="'+(clase?clase:'dp')+(c==7?' nb':'')+'" id="'+date+'">'+day+'</td>';

                                           } else {
                                                str += '<td class="'+(clase?clase:'n')+(c==7?' nb':'')+'"  id="'+date+'">'+day+'</td>';
                                           }

                                       } else {
                                           str += '<td class="v'+( c==7?' nb':'')+'">&nbsp;</td>';

                                       }
                             }

                             return str;
         }




         this.calendarSetDay = function(mEvent) {

                            if (mEvent.srcElement) var obj = mEvent.srcElement;
                            else if (mEvent.target) var obj = mEvent.target;

                            if (!obj.id) return;

                            var selDate = parseFloat(obj.id);

                            if ( selDate < this.calendarGetDateFrom() ) return;

                            var dat = new Date(selDate*1000);

                            document.getElementById(params['id']+'_dia').value = dat.getDate();
                            document.getElementById(params['id']+'_mes').value = dat.getMonth()+1;
                            document.getElementById(params['id']+'_ano').value = dat.getFullYear();

                            this._calendarDatPoint = selDate;

                            this.calendarDrawPanelDays(true);
                            this.calendarText(params['id']);

                            if ( params['to'] ) {

                                 var dia = document.getElementById(params['to']+'_dia').value;
                                 var mes = document.getElementById(params['to']+'_mes').value-1;
                                 var ano = document.getElementById(params['to']+'_ano').value;
                                 var to = new Date(ano,mes,dia)/1000;
                                 if ( to <= selDate || document.getElementById(params['to']+'_dia').value == 'undefined' ) {
                                      todat = new Date((selDate+86400)*1000);
                                      document.getElementById(params['to']+'_dia').value = todat.getDate();
                                      document.getElementById(params['to']+'_mes').value = todat.getMonth()+1;
                                      document.getElementById(params['to']+'_ano').value = todat.getFullYear();
                                 }
                                 this.calendarText(params['to']);
                            }

                            window.setTimeout(function() {campoObj.fl_calendar.floatClose();},150);

         }

         this.calendarText = function(cual) {

                            if ( !document.getElementById(cual+'_dia') || !document.getElementById(cual+'_dia') || !document.getElementById(cual+'_dia') ) return;

                            var obj = document.getElementById(cual+'_val');

                            var dia = document.getElementById(cual+'_dia').value;
                            var mes = document.getElementById(cual+'_mes').value-1;
                            var ano = document.getElementById(cual+'_ano').value;

                            if ( dia < 1 || mes < 0 || ano < 1 ) return;

                            var d = new Date(ano,mes,dia);
                            var str = (_langMonths[1][d.getMonth()+1])+' '+(d.getDate())+', '+(d.getFullYear());
                            obj.innerHTML = str;
         }


         this.calendarGetDateFrom = function() {

                             if ( params['from'] ) {
                                  var dia = document.getElementById(params['from']+'_dia').value;
                                  var mes = document.getElementById(params['from']+'_mes').value-1;
                                  var ano = document.getElementById(params['from']+'_ano').value;
                                  return (new Date(ano,mes,dia)/1000)+86400;

                             } else {
                                  var d = new Date();
                                  var dia = d.getDate();
                                  var mes = d.getMonth();
                                  var ano = d.getFullYear();
                                  return new Date(ano,mes,dia)/1000;
                             }
         }


         this.calendarGetNumDaysMonthTime = function (ano,mes,dia) {
                           var timeA = new Date(ano,mes,dia);
                           timeDifference = timeA - 86400000
                           timeB = new Date(timeDifference);
                           return timeB.getDate();
         }

         this.getCookie = function (name) {
                           var nameEQ = name + "=";
                           var ca = document.cookie.split(';');
                           for(var i=0;i<ca.length;i++) {
                                   var c = ca[i];
                                   while (c.charAt(0)==' ') c = c.substring(1,c.length);
                                   if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
                           }
                           return null;
         };
}function floatCall(params) {

         var _floatObj;

         this.floatInit = function (vars) {

                               this.floatSetVars();
                               this.floatSetDefaultParams();
                               this.floatSetCustomParams(vars);
                               this.floatCreateFloat();
         }

         this.floatSetVars = function () {

                               _floatObj = this;

                               this._floatDoc = document;
                               this._floatBody = this._floatDoc.getElementsByTagName("body")[0];

                               this.floatAddEvent(this._floatBody,'mouseup', function() {_floatObj.floatMouseUp();});
                               this.floatAddEvent(this._floatBody,'mousemove', function(e) {
                                                                                   if (typeof event !== 'undefined') {ev=event;el=event.srcElement;} else {ev=e;el=e.target;}
                                                                                   _floatObj.floatMouseMove(ev);
                                                                               }
                                                );

                               this._floatDocWidth  = this.floatGetWindowWidth();
                               this._floatDocHeight = this.floatGetWindowHeight();

         }

         this.floatSetDefaultParams = function() {

                               if ( typeof params['resize'] == 'undefined' )         this.floatSetParam('resize',          false );
                               if ( typeof params['close'] == 'undefined' )          this.floatSetParam('close',           false );
                               if ( typeof params['shadow'] == 'undefined' )         this.floatSetParam('shadow',          {size:'5px',color:'#000',alpha:20} );
                               if ( typeof params['width'] == 'undefined' )          this.floatSetParam('width',           '300px' );
                               if ( typeof params['left'] == 'undefined' )           this.floatSetParam('left',            '550px' );
                               if ( typeof params['top'] == 'undefined' )            this.floatSetParam('top',             '210px' );
                               if ( typeof params['bgcolor'] == 'undefined' )        this.floatSetParam('bgcolor',         'CCCCCC' );
                               if ( typeof params['border'] == 'undefined' )         this.floatSetParam('border',          '3px solid #1C2C45' );
                               if ( typeof params['padding'] == 'undefined' )        this.floatSetParam('padding',         '10px' );
                               if ( typeof params['overflow'] == 'undefined' )       this.floatSetParam('overflow',        'auto' );
                               if ( typeof params['header_bgcolor'] == 'undefined' ) this.floatSetParam('header_bgcolor',  '#142238' );
         }

         this.floatSetCustomParams = function(vars) {
                               for( var param in vars) {
                                    this.floatSetParam(param,vars[param]);
                               }
         }

         this.floatSetParam = function (name,value) {
                               params[name] = value;
         }

         this.floatCreateFloat = function() {
                               if ( this._floatDiv ) return;

                               this.floatCreateDiv();
                               this.floatCreateIframe();
                               this.floatCreateInnerShadow();
                               this.floatCreateInner();
                               this.floatCreateInnerDiv();
         }


         this.floatCreateDiv = function() {

                               this._floatDiv = this._floatDoc.createElement("DIV");
                               this._floatBody.appendChild(this._floatDiv);
         }

         this.floatCreateIframe = function() {

                               this._floatInnerIframe = this._floatDoc.createElement("IFRAME");
                               this._floatInnerIframe.setAttribute("src", "");
                               this._floatInnerIframe.setAttribute("frameBorder", "0");
                               this._floatInnerIframe.setAttribute("scrolling", "no");
                               this._floatDiv.appendChild(this._floatInnerIframe);
         }

         this.floatCreateInnerShadow = function () {
                               if ( !params['shadow'] ) return;
                               this._floatInnerShadow = this._floatDoc.createElement("DIV");
                               this._floatDiv.appendChild(this._floatInnerShadow);
         };

         this.floatCreateInner = function () {
                               this._floatInner = this._floatDoc.createElement("DIV");
                               this._floatDiv.appendChild(this._floatInner);
         }

         this.floatCreateInnerDiv = function () {
                               this._floatInnerDiv = this._floatDoc.createElement("DIV");
                               this._floatInnerDiv.setAttribute("id",params['id']);
                               this._floatInnerDiv.className = params['classname'];
                               this._floatInner.appendChild(this._floatInnerDiv);
         }

         this.floatCreateInnerHeader = function () {
                               if ( !params['resize'] && !params['close'] ) {
                                    try { this._floatInner.removeChild(_floatInnerHeader);} catch(err) {};
                                    return;
                               }
                               this._floatInnerHeader = this._floatDoc.createElement("DIV");
                               if ( params['move'] ) this._floatInnerHeader.onmousedown = function() {_floatObj.floatMove();}
                               this._floatInner.appendChild(this._floatInnerHeader);
         }

         this.floatCreateInnerHeaderResize = function () {
                               if ( !params['resize'] )  {
                                    try { this._floatInnerHeader.removeChild(this._floatInnerHeaderResize);} catch(err) {};
                                    return;
                               }
                               this._floatInnerHeaderResize = this._floatDoc.createElement("DIV");
                               this._floatInnerHeaderResize.onmousedown = function() {_floatObj.floatResize();}
                               this._floatInnerHeader.appendChild(this._floatInnerHeaderResize);
         }

         this.floatCreateInnerHeaderClose = function () {
                               if ( !params['close'] )  {
                                    try { this._floatInnerHeader.removeChild(this._floatInnerHeaderClose);} catch(err) {};
                                    return;
                               }
                               this._floatInnerHeaderClose = this._floatDoc.createElement("DIV");
                               this._floatInnerHeaderClose.onclick = function() {_floatObj.floatClose();}
                               this._floatInnerHeader.appendChild(this._floatInnerHeaderClose);
         }

         this.floatGetInnerSize = function () {
                               return {width:  this._floatInner.offsetWidth,
                                       height: this._floatInner.offsetHeight
                                      }
         }

         this.floatSetText = function (vars) {


                               this.floatSetCustomParams(vars);
                               this.floatCreateInnerHeader();
                               this.floatCreateInnerHeaderResize();
                               this.floatCreateInnerHeaderClose();
                               this.floatSetCss();

                               var str = '<div style="padding:'+params['padding']+'">'+
                                           params['content']+
                                         '</div>';

                               this._floatInnerDiv.innerHTML = str;
                               this._floatDiv.style.width  = this._floatInner.offsetWidth;
                               this._floatDiv.style.height = this._floatInner.offsetHeight;

         }

         this.floatSetCss = function () {

                               this.floatSetCssObj ( 'this._floatDiv' , 'position:absolute;'+
                                                                        'z-index:999999;'+
                                                                        'left:'+params['left']+';'+
                                                                        'top:'+params['top']+';'+
                                                                        'width:'+params['width']+';'+
                                                                        ( params['height'] ? 'height:'+params['height']+';' : '' )
                                                  );

                               this.floatSetCssObj ( 'this._floatInnerIframe' , 'position:absolute;'+
                                                                                'left:0px;'+
                                                                                'top:0px;'+
                                                                                'width:100%;'+
                                                                                'height:100%;'+
                                                                                'filter:alpha(Opacity=0);'+
                                                                                ( params['close'] || params['resize'] ? 'padding-top:13px;' : '' )+
                                                                                ( params['shadow'] ? 'padding-right:'+params['shadow']['size']+';'+
                                                                                                     'padding-bottom:'+params['shadow']['size']+';'
                                                                                                   : ''
                                                                                )
                                                  );


                               if ( params['shadow'] ) {

                                    this.floatSetCssObj ( 'this._floatInnerShadow' , 'position:absolute;'+
                                                                                     'left:0px;'+
                                                                                     'top:0px;'+
                                                                                     'width:100%;'+
                                                                                     'height:100%;'+
                                                                                     'margin-left:'+params['shadow']['size']+';'+
                                                                                     'margin-top:'+params['shadow']['size']+';'+
                                                                                     'filter:alpha(Opacity='+params['shadow']['alpha']+');'+
                                                                                     'opacity: 0.'+params['shadow']['alpha']+';'+
                                                                                     '-moz-opacity:0.'+params['shadow']['alpha']+';'+
                                                                                     'background-color:'+params['shadow']['color']+';'
                                                       );
                               }

                               this.floatSetCssObj ( 'this._floatInner' , 'position:absolute;'+
                                                                          'left:0px;'+
                                                                          'top:0px;'+
                                                                          'width:100%;'+
                                                                          'height:100%;'+
                                                                          'border:'+params['border']+';'+
                                                                          ( params['close'] || params['resize'] ? 'padding-top:13px;' : '' )
                                                  );


                               this.floatSetCssObj ( 'this._floatInnerDiv' , 'width:100%;'+
                                                                             'height:100%;'+
                                                                             'background-color:'+params['bgcolor']+';'+
                                                                             'overflow:'+params['overflow']+';'+
                                                                             'color:'+params['font_color']+';'+
                                                                             'font-size:'+params['font_size']+';'+
                                                                             'font-weight:'+params['font_weight']+';'+
                                                                             ( params['transparency'] > 0 ? 'filter:alpha(Opacity='+params['transparency']+');'+
                                                                                                            'opacity: 0.'+params['transparency']+';'+
                                                                                                            '-moz-opacity:0.'+params['transparency']+';'
                                                                                                          : ''
                                                                             )
                                                  );

                               this.floatSetCssObj ( 'this._floatInnerHeader' , 'position:absolute;'+
                                                                                'left:0px;'+
                                                                                'top:0px;'+
                                                                                'padding:2px 2px 0 2px;'+
                                                                                'margin:0px;'+
                                                                                'height:13px;'+
                                                                                'line-height:10px;'+
                                                                                ( params['move'] ? 'cursor:move;' : '' )+
                                                                                'background-color:'+params['header_bgcolor']+';'
                                                  );

                               this.floatSetCssObj ( 'this._floatInnerHeaderClose' , 'float:right;'+
                                                                                     'cursor:pointer;'+
                                                                                     'background:url(../webart/close.gif) no-repeat;'+
                                                                                     'width:11px;'+
                                                                                     'height:10px;'+
                                                                                     'margin-bottom:-4px'
                                                  );

                               this.floatSetCssObj ( 'this._floatInnerHeaderResize' , 'float:left;'+
                                                                                      'cursor:nw-resize;'+
                                                                                      'width:13px;'+
                                                                                      'height:13px;'+
                                                                                      'background:url(../webart/resize.gif) no-repeat;'+
                                                                                      'margin-bottom:-4px'
                                                  );


         }

         this.floatSetCssObj = function (objName,css) {
                              try { var obj = eval(objName);
                                    obj.style.cssText = css;
                              } catch(err) {};
         }


         this.floatMouseMove = function (mEvent) {

                              this._floatMouseX  = mEvent.clientX+( this._floatDoc.documentElement.scrollLeft ? this._floatDoc.documentElement.scrollLeft : this._floatDoc.body.scrollLeft );
                              this._floatMouseY  = mEvent.clientY+( this._floatDoc.documentElement.scrollTop ? this._floatDoc.documentElement.scrollTop : this._floatDoc.body.scrollTop );

                              this._floatDivWidth  = this._floatDiv.offsetWidth;
                              this._floatDivHeight = this._floatDiv.offsetHeight;

                              if ( this._floatMouseX < this._floatDiv.offsetLeft ||
                                   this._floatMouseX > (this._floatDiv.offsetLeft+this._floatDivWidth) ||
                                   this._floatMouseY < this._floatDiv.offsetTop ||
                                   this._floatMouseY > (this._floatDiv.offsetTop+this._floatDivHeight+60)
                                 ) this._floatMouseOver = false;
                              else this._floatMouseOver = true;

                              if (!this._floatMouseDown ) return;

                              if ( !this._floatDifX ) this._floatDifX = this._floatMouseX-this._floatDiv.offsetLeft;
                              if ( !this._floatDifY ) this._floatDifY = this._floatMouseY-this._floatDiv.offsetTop;

                              //*** Resize
                              if ( this._floatMouseDown == 2 ) {

                                   difX = this._floatDiv.offsetLeft-this._floatMouseX+this._floatDifX;
                                   difY = this._floatDiv.offsetTop-this._floatMouseY+this._floatDifY;

                                   if ( this._floatDiv.offsetWidth+difX <= parseInt(params['width']) ) {
                                        this._floatDiv.style.width = params['width'];
                                   } else {
                                        this._floatDiv.style.width = parseInt(this._floatDiv.style.width)+difX+"px";
                                        this.floatSetPositionValidate();
                                   }

                                   if ( this._floatDiv.offsetHeight+difY <= parseInt(params['height']) ) {
                                        this._floatDiv.style.height = params['height'];
                                   } else {
                                        this._floatDiv.style.height = parseInt(this._floatDiv.style.height)+difY+"px";
                                        this.floatSetPositionValidate();
                                   }

                              } else {
                                   this.floatSetPositionValidate();
                              }
         }

         this.floatPositionMouse = function (mEvent) {

                              this._floatMouseX  = mEvent.clientX+( this._floatDoc.documentElement.scrollLeft ? this._floatDoc.documentElement.scrollLeft : this._floatDoc.body.scrollLeft );
                              this._floatMouseY  = mEvent.clientY+( this._floatDoc.documentElement.scrollTop ? this._floatDoc.documentElement.scrollTop : this._floatDoc.body.scrollTop );

                              this._floatDifX = -10;
                              this._floatDifY = -10;

                              this.floatSetPositionValidate();
         }

         this.floatPositionObject = function (obj,px,py,ax,ay) {
                              var _x = this.floatGetRealCoords(obj,'x');
                              var _y = this.floatGetRealCoords(obj,'y')+obj.offsetHeight+3;

                              if ( px == 'right' ) {
                                   var _x = _x - ( this._floatDiv.offsetWidth-obj.offsetWidth );
                              }

                              if ( ax ) _x += ax;
                              if ( ay ) _y += ay;

                              this.floatSetPositionX(_x+'px');
                              this.floatSetPositionY(_y+'px');

         }

         this.floatPositionCenter = function() {

                              var _x = (this._floatDocWidth/2)-(this._floatDiv.offsetWidth/2);
                              var _y = (this._floatDocHeight/2)-(this._floatDiv.offsetHeight/2);

                              this.floatSetPositionX(_x+'px');
                              this.floatSetPositionY(_y+'px');
         }

         this.floatSetPositionValidate = function () {

               if( this._floatMouseX-this._floatDifX < 0 ||
                   this._floatMouseX-this._floatDifX > this._floatDocWidth-this._floatDivWidth ) {}
               else this.floatSetPositionX( (this._floatMouseX-this._floatDifX)+"px" );

               if( this._floatMouseY-this._floatDifY < 0 ||
                   this._floatMouseY-this._floatDifY > this._floatDocHeight-this._floatDivHeight ) {}
               else this.floatSetPositionY( (this._floatMouseY-this._floatDifY)+"px" );
         }

         this.floatSetPositionX = function (x) {
               this._floatDiv.style.left = x;
         }

         this.floatSetPositionY = function (y) {
               this._floatDiv.style.top = y;
         }

         this.floatMove = function () {
               if ( !this._floatMouseDown ) this._floatMouseDown = 1;
         }


         this.floatResize = function () {
               if ( !this._floatMouseDown ) this._floatMouseDown = 2;
         }

         this.floatMouseUp = function () {
               this._floatMouseDown = false;
               this._floatDifX = false;
               this._floatDifY = false;


               if ( !this._floatMouseOver && params['blur'] ) {
                    this.floatClose();
               }
         }

         this.floatClose = function () {
               this._floatDiv.style.top = '-1000px';
         }

         this.floatAddEvent = function (elm, evType, fn, useCapture) {
               if (typeof elm.addEventListener != 'undefined' ) {
                   elm.addEventListener(evType, fn, useCapture);
                   return true;
               } else if (elm.attachEvent) {
                   var r = elm.attachEvent('on' + evType, fn);
                   return r;
               } else {
                   elm['on' + evType] = fn;
               }
         }

         this.floatGetRealCoords = function (obj,axis) {
               var curleft = curtop = 0;
               if (obj.offsetParent) {

                   do {
                           curleft += obj.offsetLeft;
                           curtop += obj.offsetTop;
                     } while (obj = obj.offsetParent);
               }



               return axis == 'x' ? curleft : curtop;
         }

         this.floatGetWindowWidth = function () {
               var windowWidth = 0;
               if (typeof(window.innerWidth) == 'number') {
                   windowWidth = window.innerWidth;
               }else {
                   if (document.documentElement && document.documentElement.clientWidth) {
                       windowWidth = document.documentElement.clientWidth;
                   } else {
                       if (document.body && document.body.clientWidth) {
                           windowWidth = document.body.clientWidth;
                       }
                   }
               }
               return windowWidth;
         }

         this.floatGetWindowHeight = function () {
              var windowHeight = 0;
              if (typeof(window.innerHeight) == 'number') {
                  windowHeight = window.innerHeight;
              }else {
                  if (document.documentElement && document.documentElement.clientHeight) {
                      windowHeight = document.documentElement.clientHeight;
                  } else {
                      if (document.body && document.body.clientHeight) {
                          windowHeight = document.body.clientHeight;
                      }
                  }
              }
              return windowHeight;
         }

}
function AjaxCall(servletURL, parameters, callback) {

    /********/
    /* Data */
    /********/
    var ajax;

    /***************/
    /* Constructor */
    /***************/
    ajax = ajaxNew();
    ajax.onreadystatechange = processRequest;

    /***********/
    /* Methods */
    /***********/
    function processRequest() {
        if(ajax.readyState == 4) {
            if((ajax.status == 200)||(ajax.status == 0)) {
                if(callback != null) callback(ajax.responseText, ajax.readyState);
            }else {
                //alert("Error de AJAX");
            }
        }
    };

    this.doGET = function()
    {
        ajax.open("GET", servletURL+( parameters ? "?"+encodeURI(parameters) : "" ), true);
        ajax.send(null);
    };

    this.doPOST = function()
    {
        ajax.open("POST", servletURL, true);
        ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        ajax.setRequestHeader("Content-length", parameters.length);
        ajax.setRequestHeader("Connection", "close");
        ajax.send(parameters);
    };

    function ajaxNew()
    {
        var xmlHttp = false;

        if(window.XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
        } else if(window.ActiveXObject) {
            try{
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                try {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch(E) {
                    xmlHttp = false;
                }
            }
        }
        return xmlHttp;
    }
}

