var  addthis_url   = '';
var  addthis_title = '';

function verTelefono(obj,telefono,id) {
      obj.parentNode.innerHTML = telefono.substr(10);
      var url = _http+'/server/producto.stats.telefonos.php';
      var query = '&id='+id;
      //document.write(url+"?"+query);
      var ajax = new AjaxCall(url, query, null );
      ajax.doGET();
}

function addthis(obj, str){
      var aturl  = 'http://www.addthis.com/bookmark.php';
      var addthis_pub = 'Ciudades.com';
      aturl += '?v=1';
      aturl += '&pub='+addthis_pub;
      aturl += '&url='+encodeURIComponent(addthis_url);
      aturl += '&title='+encodeURIComponent(addthis_title);
      window.open(aturl,'addthis','scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100');
      return false;
}

function viewLangs(obj) {

      if ( typeof _langFloat == 'undefined' ) {
           var vars = { div_inner:      'langs-float',
                        resize:         false,
                        close:          false,
                        move:           false,
                        blur:           true,
                        width:          '145px',
                        height:         '175px',
                        bgcolor:        '#fff',
                        overflow:       'none',
                        font_family:    'Arial',
                        font_color:     '#000',
                        border:         '1px solid #E1E1E1',
                        padding:        '3px'
                      };

           _langFloat = new floatCall(vars);
           _langFloat.floatInit();
           _langFloat.floatSetText({ content: '<div id="langs-float-inner">'+document.getElementById('langs-float').innerHTML+'</div>'
                                  });
      }

      _langFloat.floatPositionObject(obj);
}

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 deleteCookie(name) {
      setCookie(name,"",-1);
}


function setUV() {
      if ( getCookie('_zhuv') ) return;
      setCookie('_zhuv',true);
      var sc = document.createElement('script');
      sc.type='text/javascript';
      var url = _http+'/uv/'+( _lpage ? '?lpage='+_lpage : '');

      sc.src = url;
      document.getElementsByTagName('head')[0].appendChild(sc);
}

setUV();

function ampliarFoto(chr_imagen) {
      url = _http+'/server/foto.php?chr_imagen='+chr_imagen;
      abrirPopup(url,"ampliarFoto","350","200" );
}

function guardarDatosForm(f) {

      return;
      var name = f.name;
      var e = f.getElementsByTagName('*');
      for (var i=0,l=e.length;i<l;i++) {
           var obj = e[i];
           if (obj.name) {
               switch(obj.tagName) {
                     case 'SELECT':
                   case 'TEXTAREA':
                      case 'INPUT': if ( obj.type != 'hidden' ) {
                                         setCookie(name+"["+obj.name+"]",obj.value,1);
                                    }
                                    break;
               }
           }
      }
}

function abrirPopup(url,nombre,Largo,Alto,leftPos,topPos,ampliar,scroll,menubar) {

     Alto = Math.abs(Alto)+20;
     Largo = Math.abs(Largo)+20;

     if ( !leftPos && !topPos ) {

          var w = screen.width;
          var h = screen.height;
          var popW = Largo, popH = Alto;
          var leftPos = (w-popW)/2, topPos = (h-popH)/2;
     }

     window.open(url,nombre,"resizable="+(ampliar ? "yes" : "no")+",status=no,menubar="+(menubar ? "yes" : "no")+",scrollbars="+(scroll ? "yes" : "no")+",width="+Largo+",height="+Alto+",left="+leftPos+",top="+topPos+",center=1");
}

function addEvent (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;
      }
};


function inner(id,str) {
     if ( str == 'undefined' || typeof(str) == 'undefined' ) return;
     var obj = document.getElementById(id);
     if ( obj == null ) return;

     obj.innerHTML = str;
}

function loadJS(filename,func) {
      var head = document.getElementsByTagName("head")[0];
      var js = document.createElement('script');
      js.type='text/javascript';
      js.src=filename;
      js.onload = function() {eval(func)};
      js.onreadystatechange = function (){
                                    if(js.readyState=="complete" || js.readyState=="loaded"){
                                       document.jsLoaded = new Array();
                                       document.jsLoaded[filename] = true;
                                       eval(func);
                                    }
                              }
      head.appendChild(js);
}

function verificarEmail(emailStr) {

      var emailPat=/^(.+)@(.+)$/
      var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
      var validChars="\[^\\s" + specialChars + "\]"
      var quotedUser="(\"[^\"]*\")"
      var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
      var atom=validChars + '+'
      var word="(" + atom + "|" + quotedUser + ")"
      var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
      var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
      var matchArray=emailStr.match(emailPat)
      if (matchArray==null) return false;
      var user=matchArray[1]
      var domain=matchArray[2]
      if (user.match(userPat)==null) return false;
      var IPArray=domain.match(ipDomainPat)
      if (IPArray!=null) {
          for (var i=1;i<=4;i++) {
               if (IPArray[i]>255) return false;
          }
      }

      var domainArray=domain.match(domainPat)
      if (domainArray==null) return false;

      var atomPat=new RegExp(atom,"g")
      var domArr=domain.match(atomPat)
      var len=domArr.length
      if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {return false;}
      if (len<2) {return false;}

      return emailStr;
}
function Campos(params) {

      var campoObj;

      var _langWeekDays = new Array ();
      _langWeekDays[1]  = new Array ("Do","Lu","Ma","Mi","Ju","Vi","Sa");
      _langWeekDays[2]  = new Array ("Su","Mo","Tu","We","Th","Fr","Sa");
      _langWeekDays[3]  = new Array ("Do","Se","Te","Qu","Qu","Se","Sa");

      var _langMonths = new Array ();
      _langMonths[1]  = new Array ("","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
      _langMonths[2]  = new Array ("","January","February","March","April","May","June","July","August","September","October","November","December");
      _langMonths[3]  = new Array ("","Janeiro","Fevereiro","Marco","Abril","Pode","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']+'" 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%>Do</td>'+
                                       '<td class="wd" width=14.2%>Lu</td>'+
                                       '<td class="wd" width=14.2%>Ma</td>'+
                                       '<td class="wd" width=14.2%>Mi</td>'+
                                       '<td class="wd" width=14.2%>Ju</td>'+
                                       '<td class="wd" width=14.2%>Vi</td>'+
                                       '<td class="wd nb" width=14.2%>Sa</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) {
                              var _x = this.floatGetRealCoords(obj,'x');
                              var _y = this.floatGetRealCoords(obj,'y')+obj.offsetHeight+3;
                              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;
         }

}
/*##############################################*/
/*################   flashcontrol.js  ##########*/
/*##############################################*/


function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?');
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs)
{
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  if ( embedAttrs["inner"] ) inner(embedAttrs["inner"],str);
                        else document.write(str);
}

function AC_FL_RunContent(){

  var ret =
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );

  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret =
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();

    switch (currArg){
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "flashvars": ret.params[srcParamName] = ret.params[srcParamName]+'?'+args[i+1];
                        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
                        break;

      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace":
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

/* ****** */
/* Textos */
/* ****** */
var texts = new Array("es","pt");

texts["es"] = new Array (2)
texts["pt"] = new Array(2);

texts["es"][0] = new Object();
texts["es"][1] = new Object();
texts["pt"][0] = new Object();
texts["pt"][1] = new Object();

//textos en español de ciudades
texts["es"][0].nowSearching = "Buscando ciudades...<br>(Siga escribiendo, o aguarde ver las opciones)";
texts["es"][0].moreCharsNeeded1 = "Ingrese al menos las ";
texts["es"][0].moreCharsNeeded2 = " primeras letras de la ciudad,<br>y aguarde a ver los resultados.";
texts["es"][0].noResults = "No se encontraron ciudades<br>que contengan ";
texts["es"][0].noResults2 = "";
texts["es"][0].inputDefaultText = "Escriba la ciudad de destino";

//textos en portugues de ciudades
texts["pt"][0].nowSearching = "Procurando cidades...<br>(Continue escrevendo, ou aguarde as opções)";
texts["pt"][0].moreCharsNeeded1 = "Digite pelo menos as ";
texts["pt"][0].moreCharsNeeded2 = " primeiras letras da cidade e aguarde para ver os resultados.";
texts["pt"][0].noResults = "Não foram encontradas cidades que contenham ";
texts["pt"][0].noResults2 = "";
texts["pt"][0].inputDefaultText = "Digite a cidade";

//textos en español de paquetes
texts["es"][1].nowSearching = "Buscando destinos...<br>(Siga escribiendo, o aguarde ver las opciones)";
texts["es"][1].moreCharsNeeded1 = "Ingrese al menos las ";
texts["es"][1].moreCharsNeeded2 = " primeras letras del destino,<br>y aguarde a ver los resultados.";
texts["es"][1].noResults = "No hay paquetes ";
texts["es"][1].noResults2 = "Elija otro origen o destino.";
texts["es"][1].inputDefaultText = "Escriba región, país o ciudad";

//textos en portugues de paquetes
texts["pt"][1].nowSearching = "Procurando destinos...<br>(Continue escrevendo, ou aguarde as opções)";
texts["pt"][1].moreCharsNeeded1 = "Digite pelo menos as ";
texts["pt"][1].moreCharsNeeded2 = " primeiras letras do destino <br>e aguarde para ver os resultados.";
texts["pt"][1].noResults = "Não foram encontrados pacotes ";
texts["pt"][1].noResults2 = "Escolha outra origem ou destino.";
texts["pt"][1].inputDefaultText = "Digite região, país ou cidade";
/* ****************** */
/* Variables Globales */
/* ****************** */
var gDespegarAutCompLastLocatorId = null;
var gDespegarAutCompCompleterResults = {};
var gDespegarAutCompCompleterObjs = {};

var domainPath = "http://www.despegar.com";

var overPopupAC = false;
var locator = new Object();
var paq = 1;

var globalac = new Object();
globalac.Origen = "";
globalac.OrigenDesc = "";
globalac.flights = {'fares':new Object(),'airlines':new Object(),'airports':new Object()};
globalac.whitelabel = {localVendors:{},airlineFilter:0};
//seteo el idioma por default en español (portuges = 'pt')
globalac.language = "es";

//configuraciones para el trigger de busqueda de resultado
globalac.initialWaitingTime = 1000;
globalac.minWaitingTime = 250;
globalac.minInputLength = 3;

/* ************************************ */
/* Objeto DespegarAutCompleter (inicio) */
/* ************************************ */

function DespegarAutCompCompleter(inputId, popupFunc, popdownFunc, popupid,
                          tabToId, callback, hiddenId, defaultText,
                          defaultValue,DestTypeHiddenId,MultipleHiddenId, Producto)
{
   /* JTRUZZI: Se incluyo aqui el seteo de los textos para definirlos en base a paquetes o a todos los demas flows*/
   /* La variable EsPaq indica si es paquetes o no */
   /* La variable producto recibe 1 cuando es paquetes, 2 cuando es vuelos, 3 cuando es hoteles y 4 cuando es autos*/

   var EsPaq;
   if(Producto==1)
   {
      globalac.EsPaq = 1;
      EsPaq = 1;
   }else
   {
      if(Producto==undefined)
      {
         Producto = 2;
      }
      globalac.EsPaq = 0;
      EsPaq = 0;
   }

   this.locCode = null;
   this.locDesc = null;

   // internal vars
   this.inputId = inputId;
   this.hiddenId = hiddenId;
   this.DestTypeHiddenId = DestTypeHiddenId;
   this.MultipleHiddenId = MultipleHiddenId;
   this.defaultText = defaultText;
   this.defaultValue = defaultValue;
   this.currentLocator = null;
   this.completerTimeout = 0;
   this.currentOption = -1;
   this.nrOfOptions = 0;
   this.popupFunc = popupFunc;
   this.popdownFunc = popdownFunc;
   this.popupid = popupid;
   this.tabToId = tabToId;
   this.callback = callback;
   this.locked = false;
   this.lockedtext = '';


   // constantes
   this.MAXOPTIONS = 15;
   this.OPTION_FILLER = "&nbsp;&nbsp;";
   if (Producto==1){
      this.URL = domainPath + "/paginas/autoComplete/completerpaq.aspx";
   }
   else{
      this.URL = domainPath + "/paginas/autoComplete/completer.aspx";
   }
   this.LOCATORID = "despegarautcomplocator";

   gDespegarAutCompCompleterObjs[inputId] = this;

   //pongo en blanco los campos, para prevenir F5 con datos basura
   //document.getElementById(this.inputId).value = "";
   //document.getElementById(this.hiddenId).value = "";
   //document.getElementById(this.DestTypeHiddenId).value = "";
   //document.getElementById(this.MultipleHiddenId).value = "";

   this.setCode = function(code)
   {
      this.locCode = code;
   }

   this.setDesc = function(desc)
   {
      var inp = document.getElementById(this.inputId);
      inp.value = desc;
      this.locDesc = new Object();
      this.locDesc.y = desc;
      this.locDesc.c = '';
      this.locDesc.cc = '';
   }

   this.setLockedText = function(text)
   {
      this.lockedtext = text;
   }

   this.removeOptionFiller = function(option)
   {
      return option.replace(RegExp("^\&nbsp;\&nbsp;(.*)","ig"),"$1");
   }

   this.selectLocatorOption = function(nr, locator)
   {
      if (locator == null)
         locator = document.getElementById(this.LOCATORID);

      var inp = document.getElementById(this.inputId);

      this.selectOption(locator.childNodes[nr].option, inp);
   }
   this.selectOption = function(option, inp)
   {
      inp.value = option?option.n:'';
      this.locCode = this.removeOptionFiller(option?option.m:'');
      this.locDesc = option;
      //agrego tres parametros a la funcion de callback
      //gabriel jurgens
      if (Producto==1){
         if(this.callback)
            this.callback(inp, option, hiddenId,DestTypeHiddenId,MultipleHiddenId);
      }
      else{
         if(this.callback)
            this.callback(inp, option, hiddenId);
      }
   }


   this.lowlight = function()
   {
      var bla = document.getElementById(this.LOCATORID);
      if(this.currentOption >= 0 && bla.childNodes[this.currentOption] != "undefined")
         bla.childNodes[this.currentOption].className = "locatoroption";
   }
   this.highlight = function(dir, update, scrollIntoView)
   {
      var bla = document.getElementById(this.LOCATORID);
      if(this.currentOption >= 0 && this.nrOfOptions > 0)
         bla.childNodes[this.currentOption].className = "locatoroption";
      this.currentOption = this.currentOption + dir;
      if(this.currentOption < 0)
         this.currentOption = 0;
      else if(this.currentOption >= bla.childNodes.length)
         this.currentOption = bla.childNodes.length-1;
      bla.childNodes[this.currentOption].className = "locatoroptionmo";
      if (scrollIntoView)
      {
         if (scrollIntoView == 1) // down
            bla.childNodes[this.currentOption].scrollIntoView(false);
         else if (scrollIntoView == -1) // up
            //le paso false, para que no salte toda la pagina
            //bla.childNodes[this.currentOption].scrollIntoView(true);
            bla.childNodes[this.currentOption].scrollIntoView(false);
      }
      if(update &&  this.nrOfOptions > 0) {
         this.selectLocatorOption(this.currentOption, bla);
      }
   }

   this.adjustLocatorHeight = function(locator,extra)
   {
      // check the locator height
      var nr = (this.nrOfOptions) ? this.nrOfOptions+(extra?extra:0) : 1;
      nr = (nr > this.MAXOPTIONS) ? this.MAXOPTIONS : nr;
      var h = locator.firstChild.offsetHeight;

      var ieExtraSpace = 3;

      var pop = document.getElementById(this.popupid);
      pop.style.height = h*nr + 3 + "px";

      horzPosPopupAC();
      setPopupCoverAC();
   }

   this.selectDefaultAirport = function(locator, shouldTab)
   {
      var tabToEl = null;
      if (this.nrOfOptions && locator.childNodes.length > 0)
      {
         if (this.currentOption != -1)
         {
            this.selectLocatorOption(this.currentOption, locator);
         }
         else
         {
            this.selectLocatorOption(0, locator);
         }

         if (this.tabToId && shouldTab)
         {
            gDespegarAutCompLastLocatorId = null;
            tabToEl = document.getElementById(this.tabToId);
         }
      } else {
         if(document.getElementById(this.hiddenId).value.length != 3 && Producto != 1)
         {
            document.getElementById(this.inputId).value = texts[globalac.language][EsPaq].inputDefaultText;
            document.getElementById(this.inputId).title = texts[globalac.language][EsPaq].inputDefaultText;
         }
      }

      this.removeAllOptions();
      this.popdownFunc();
      if (tabToEl && tabToEl.select && getMouseOverCtrl() == '')
         tabToEl.select();
   }

   // =============================
   // Events handlers for the input

   this.locatorkd = function(me, ev)
   {
      var locator = null;
      var bla = document.getElementById(this.popupid);
      if(bla.calledby != me)
      {
         this.popupFunc(me);
         locator = document.getElementById(this.LOCATORID);
         if (locator.firstChild == null)
         {
            nothing =  document.createElement('DIV');
            locator.appendChild(nothing);
            nothing.innerHTML = "<span class=\"noresults\">" + texts[globalac.language][EsPaq].nowSearching + "</span>";
            //mientras busco, vacio el codigo IATA. No hago nada si es un tab o un enter
            ev=ev||event||null;
            if (ev)
            {
               var cc=ev.charCode||ev.keyCode||ev.which;
               if(cc != 9 && cc != 13) //tab, enter
               {
                  document.getElementById(this.hiddenId).value = '';
               }
            }

            this.adjustLocatorHeight(locator);
         }
      }
      //catch tab dispense the rest to locator
      ev=ev||event||null;
      if (ev)
      {
         var cc=ev.charCode||ev.keyCode||ev.which;

         if(cc == 9 || cc == 13) //tab, enter
         {
            if (locator == null)
               locator = document.getElementById(this.LOCATORID);

            this.selectDefaultAirport(locator, false);
            return false;
         }
         else if(cc==38||cc==57385) //tecla hacia arriba
         {
            this.highlight(-1, true, -1);
            return false;
         }
         else if(cc==40||cc==57386) //tecla hacia habajo
         {
            this.highlight(1, true, 1);
            return false;
         }
      }
      return true;
   }

   this.locatorkp = function(me, ev)
   {
      ev=ev||event||null;
      if (ev)
      {
         var cc=ev.charCode||ev.keyCode||ev.which;
         if (cc==38||cc==57385||cc==40||cc==57386) return false; //up or down

         if (cc==13 && this.currentOption > -1)
         {
            this.selectLocatorOption(this.currentOption);
            this.lowlight();
            this.removeAllOptions();
            popdownac(true);
         }
      }
      return true;
   }
   this.locatorku = function(me, ev)
   {

      var bla = document.getElementById(this.popupid);
      if(bla.calledby == me)
      {
         ev=ev||event||null;
         if (ev)
         {
             var cc=ev.charCode||ev.keyCode||ev.which;
             if (cc==38||cc==40||cc==57385||cc==57386||cc==13 || cc==27)
               return false;

             //si no tengo la cantidad minima de caracteres necesarios, salgo de la funcion
             if(document.getElementById(this.inputId).value.length < globalac.minInputLength)
             {
               var locator = document.getElementById(this.LOCATORID);

               if(locator.firstChild == null)
               {
                  nothing =  document.createElement('DIV');
                  locator.appendChild(nothing);
                  nothing.innerHTML = "<span class=\"noresults\">" + texts[globalac.language][EsPaq].moreCharsNeeded1 + globalac.minInputLength + texts[globalac.language][EsPaq].moreCharsNeeded2 + "</span>";
               }
               else
               {
                  nothing =  document.createElement('DIV');
                  this.removeAllOptions();
                  locator.appendChild(nothing);
                  nothing.innerHTML = "<span class=\"noresults\">" + texts[globalac.language][EsPaq].moreCharsNeeded1 + globalac.minInputLength + texts[globalac.language][EsPaq].moreCharsNeeded2 + "</span>";
                  this.adjustLocatorHeight(locator);
               }
               return false;
             } else {
               var locator = document.getElementById(this.LOCATORID);
               if (this.nrOfOptions < 1)
                  if(locator.firstChild == null)
                  {
                     nothing =  document.createElement('DIV');
                     locator.appendChild(nothing);
                     nothing.innerHTML = "<span class=\"noresults\">" + texts[globalac.language][EsPaq].nowSearching + "</span>";
                  }
                  else
                  {
                     nothing =  document.createElement('DIV');
                     this.removeAllOptions();
                     locator.appendChild(nothing);
                     nothing.innerHTML = "<span class=\"noresults\">" + texts[globalac.language][EsPaq].nowSearching + "</span>";
                     this.adjustLocatorHeight(locator);
                  }
             }

             gDespegarAutCompLastLocatorId = me.id;
             window.clearTimeout(this.completerTimeout);
             if(cc!=8) //el backspace
             {
                //seteo el tiempo de espera inicial en un segundo.
                //este tiempo se va a ir dividiendo por la cantidad de letreas ingresadas
                //hasta llegar al minWaitingTime. Es decir que nunca esperara menos de minWaitingTime seg.
                var inputLength = document.getElementById(this.inputId).value.length + 1
                if (inputLength == 0) inputLength = 1;

                var waitingTime = globalac.initialWaitingTime/inputLength;

                if (waitingTime < globalac.minWaitingTime) waitingTime = globalac.minWaitingTime;
                //waitingTime = 0;
             }
             else
             {
                waitingTime = globalac.minWaitingTime;
             }
             //alert(waitingTime);
             //Set a new one
             this.completerTimeout = window.setTimeout("despegarautcompCompleterGo(" + Producto + ")", waitingTime);
         }

      }
      return true;
   }

   this.locatormc = function(me, ev)
   {
      me.select();
   }

   this.locatorblur = function(me)
   {
      if (me.id != this.inputId)
         return;
      var locator = document.getElementById(this.LOCATORID);
      if (locator == null)
      {
         return;
      }

      //para Internet Explorer, detecto los click en la barra de scroll en
      //forma manual
      if(navigator.appName == "Microsoft Internet Explorer")
      {
         //detecto si hizo click en la barra de scroll
         var isScroll = false;
         if(locator.childNodes.length > this.MAXOPTIONS)
         {
            var locatorDiv = document.getElementById(this.popupid);
            var mouseX = window.event.clientX;
            var mouseY = window.event.clientY;

            var scrollBarWidth = 18;
            var scrollBarRight = locatorDiv.clientLeft + locatorDiv.offsetLeft + locatorDiv.clientWidth;
            var scrollBarLeft  = scrollBarRight + scrollBarWidth;
            var scrollBarTop  = locatorDiv.clientTop + locatorDiv.offsetTop - document.body.scrollTop;
            var scrollBarBottom  = scrollBarTop + locatorDiv.clientHeight;

            if(mouseX > scrollBarRight && mouseX < scrollBarLeft
               && mouseY > scrollBarTop && mouseY < scrollBarBottom)
            {
               isScroll = true;
            }
            else
            {
               isScroll = false;
            }
         }
         if(!isScroll)
            this.selectDefaultAirport(locator, true);
         else
            document.getElementById(this.inputId).focus();
      }
      else
      {
         //browser distinto de IExplorer
         this.selectDefaultAirport(locator, true);
      }
   }


   this.despegarautcompoptionmc = function(me, ev)
   {
   }

   this.despegarautcompoptionmout = function()
   {
      this.lowlight();
      this.className = "locatoroption";
      this.currentOption = -1;
   }

   this.despegarautcompoptionmover = function(option)
   {
      this.lowlight();
      this.currentOption = option.index;
      this.highlight(0);
   }

   this.despegarautcompoptionmwheel = function(ev)
   {
      return true;
   }



   this.removeAllOptions = function()
   {
      var bla = document.getElementById(this.LOCATORID);
      if (bla && bla.childNodes)
      {
         while (bla.childNodes.length)
         {
            bla.removeChild(bla.firstChild);
         }
      }

      this.nrOfOptions = 0;
      this.currentOption = -1;
   }
   this.loadLocked = function(txt)
   {
      var matches = [];
      var one;
      var utxt = txt.toUpperCase();
      for(var i = 0; i < this.locked.length-1;i++)
      {
         one = this.locked[i];
         if(one.m.toUpperCase().indexOf(utxt)==0 || one.y.toUpperCase().indexOf(utxt)==0)
            matches[matches.length] = one;
      }
      if(matches.length>0)
         despegarautcompShowOptions(txt,matches,this.inputId, Producto);
      else
      {
         despegarautcompShowOptions(txt,this.locked,this.inputId, Producto);
         var input =  document.getElementById(this.inputId);
         input.value = this.lockedtext;
         input.select();

      }
   }


   this.prepareInput = function(inputId)
   {
      var objInput = document.getElementById(inputId);

      
      //seteo los eventos
      objInput.onclick = function(event)
      {
         despegarautcomplocatormc(this,event);
      }

      objInput.onkeydown = function(event)
      {
         despegarautcomplocatorkd(this,event);
      }

      objInput.onkeyup = function(event)
      {
         despegarautcomplocatorku(this,event);
      }

      objInput.onkeypress = function(event)
      {
         despegarautcomplocatorkp(this,event);
      }

      objInput.onblur = function(event)
      {
         despegarautcomplocatorblur(this); popdownac();
      }

      //seto el texto del imput
      if(this.defaultText != undefined && this.defaultValue != undefined
         && this.defaultText != '' && this.defaultValue != '')
      {
         objInput.value = this.defaultText;
         objInput.title = this.defaultText;
         document.getElementById(this.hiddenId).value = this.defaultValue;

      }
      else
      {
         objInput.value = texts[globalac.language][EsPaq].inputDefaultText;
      }


      //seto el texto del imput
      if(this.defaultText != undefined && this.defaultValue != undefined
         && this.defaultText != '' && this.defaultValue != '')
      {
         objInput.value = this.defaultText;
         objInput.title = this.defaultText;
         document.getElementById(this.hiddenId).value = this.defaultValue;

      }
      else
      {
         //si solo mando un texto por default, lo seteo
         if(this.defaultText != undefined && this.defaultText != '')
         {
            objInput.value = this.defaultText;
         }
         else
         {
            objInput.value = texts[globalac.language][EsPaq].inputDefaultText;
         }
      }





   }

   /* agrego el iFrame y Div auxiliar */
   //createAuxiliarIframeAndDiv();

   /* Seteo los eventos para el input */
   this.prepareInput(inputId);


}
/* ********************************* */
/* Objeto DespegarAutCompleter (fin) */
/* ********************************* */


/* **************************************************** */
/* Funcion que prepara el imput para regular expresions */
/* **************************************************** */

function prepareInputForRegExp(input)
{
   var tmpInput = "";
   for(var i=0;i<input.length;i++)
   {
      switch(input.charAt(i))
      {
         case "a":
         case "á":
         case "A":
         case "Á":
         case "ã":
         case "Ã":
         case "â":
         case "Â":
            tmpInput += "[aáãâ]";
            break;
         case "e":
         case "é":
         case "E":
         case "É":
         case "ê":
         case "Ê":
            tmpInput += "[eéê]";
            break;
         case "i":
         case "í":
         case "I":
         case "Í":
            tmpInput += "[ií]";
            break;
         case "o":
         case "ó":
         case "O":
         case "Ó":
         case "õ":
         case "Õ":
         case "ô":
         case "Ô":
            tmpInput += "[oóõô]";
            break;
         case "u":
         case "ú":
         case "U":
         case "Ú":
            tmpInput += "[uú]";
            break;
         default:
            tmpInput += input.charAt(i);
            break;
      }
   }

   return tmpInput;
}

/* **************************** */
/* Funcion de llamada del timer */
/* **************************** */
function despegarautcompCompleterGo(Producto)
{
   /* La variable es EsPaq indica si es o no paquete */
   var obj = gDespegarAutCompCompleterObjs[gDespegarAutCompLastLocatorId];
   var bla = document.getElementById(gDespegarAutCompLastLocatorId);
   var EsPaq;
   if(Producto==1)
   {
      EsPaq = 1;
   }else
   {
      EsPaq = 0;
   }
   if(bla)
   {
       var txt = bla.value;
       var id_txt = Producto + '_' + bla.value;
       //if(txt.length > 0)
       if(txt.length >= globalac.minInputLength)
       {
         if(obj.locked)
            obj.loadLocked(id_txt);
         else
         {
            var cached = gDespegarAutCompCompleterResults[id_txt];
            if(cached && Producto != 1)
            {
               despegarautcompShowOptions(txt,cached, gDespegarAutCompLastLocatorId, Producto);
            }
            else
            {
               //si la la busqueda textual no se hizo, me fijo si no se hizo ya
               //una busqueda mas amplia que contenga a la actual
               for(var i = txt.length - 1; i > 0 && !cached; i--)
               {
                  cached = gDespegarAutCompCompleterResults[id_txt];
               }
               if(cached && Producto != 1)
               {
                  //encontro una busqueda mas amplia, filtro el cache para mandar solo
                  //las conincidencias

                  var filteredCache = new Array();
                  var indexFilteredCache = 0;
                  for(var x = 0; x < cached.length; x++)
                  {

                     var tmpInput = "";
                     tmpInput = prepareInputForRegExp(txt);
                     //Creo la RegExp AccentInsensitive
                     var r1 = new RegExp("([(, ]" + tmpInput + ")","ig"); //busca en el comienzo de la palabra
                     var r2 = new RegExp("^(" + tmpInput + ")","i"); //busca en el principio del string
                     if(!(cached[x].n.match(r2) == null && cached[x].n.match(r1) == null && cached[x].m.match(r2) == null && cached[x].a.match(r1) == null && cached[x].a.match(r2) == null))
                     {
                        filteredCache[indexFilteredCache] = cached[x];
                        indexFilteredCache++;
                     }

                  }
                  gDespegarAutCompCompleterResults[id_txt] = filteredCache;

                  despegarautcompShowOptions(id_txt,filteredCache, gDespegarAutCompLastLocatorId, Producto);
               }
               else
               {
                  if (EsPaq==1){
                     loadContentAC(domainPath + "/paginas/autoComplete/completerpaq.aspx?lang=" + globalac.language + "&locator=" + gDespegarAutCompLastLocatorId + "&input=" + txt + '&codOrigen=' + globalac.Origen);
                  }
                  else{
                     loadContentAC(domainPath + "/paginas/autoComplete/completer.aspx?TipoVenta=" + Producto + "&lang=" + globalac.language + "&locator=" + gDespegarAutCompLastLocatorId + "&input=" + txt + '&');
                  }
               }
            }
         }
       }
   }
}



/* ******************* */
/* Handlers de eventos */
/* ******************* */
function despegarautcomplocatorkd(me,ev)
{
   var obj = gDespegarAutCompCompleterObjs[me.id];
   obj.locatorkd(me, ev);
}

function despegarautcomplocatorkp(me, ev)
{
   var obj = gDespegarAutCompCompleterObjs[me.id];
   obj.locatorkp(me, ev);
}

function despegarautcomplocatorku(me, ev)
{
   var obj = gDespegarAutCompCompleterObjs[me.id];
   obj.locatorku(me, ev);
}

function despegarautcomplocatormc(me, ev)
{
   var obj = gDespegarAutCompCompleterObjs[me.id];
   obj.locatormc(me, ev);
}

function despegarautcomplocatorblur(me)
{
   var obj = gDespegarAutCompCompleterObjs[me.id];
   obj.locatorblur(me);
}

function despegarautcompoptionmc(ev)
{
   //alert(despegarautcompoptionmc);
}

function despegarautcompoptionmout(ev)
{
   ev=ev||window.event||null;
   var targ = getEvTargetAC(ev);
   var option = (targ.inputId) ? targ : targ.parentNode;
   var obj = gDespegarAutCompCompleterObjs[option.inputId];
   obj.despegarautcompoptionmout();
}

function despegarautcompoptionmover(ev)
{
   ev=ev||window.event||null;
   var targ = getEvTargetAC(ev);
   var option = (targ.inputId) ? targ : targ.parentNode;
   var obj = gDespegarAutCompCompleterObjs[option.inputId];
   obj.despegarautcompoptionmover(option);
}

function despegarautcompoptionmwheel(ev)
{
   ev=ev||window.event||null;
   var targ = getEvTargetAC(ev);
   var option = (targ.inputId) ? targ : targ.parentNode;
   var obj = gDespegarAutCompCompleterObjs[option.inputId];
   obj.despegarautcompoptionmwheel(ev);
}





/* *********************** */
/* Constructor de Opciones */
/* *********************** */
function despegarautcompShowOptions(input, matches, inputId, Producto)
{
   var EsPaq;
   if(Producto!=1)
   {
      EsPaq = 0;
   }else
   {
      EsPaq = 1;
   }
   var obj = gDespegarAutCompCompleterObjs[inputId];

   // remove older results
   obj.removeAllOptions();
   var bla = document.getElementById(obj.LOCATORID);
   var option,match,name;

   if(bla)
   {
      if(matches.length > 0)
      {
         //Hago que la RegExp sea AccentInsensitive
         //gabriel jurgens
         //var r1 = new RegExp("([(, ]" + input + ")","ig"); //busca en el comienzo de la palabra
         //var r2 = new RegExp("^(" + input + ")","i"); //busca en el principio del string

         var tmpInput = "";
         tmpInput = prepareInputForRegExp(input);

         //Creo la RegExp AccentInsensitive
         var r1 = new RegExp("([(, ]" + tmpInput + ")","ig"); //busca en el comienzo de la palabra
         var r2 = new RegExp("^(" + tmpInput + ")","i"); //busca en el principio del string


         for (var i=0; i < matches.length; i++ )
         {
            match = matches[i];
            option =  document.createElement('DIV');
            bla.appendChild(option);
            option.onmouseover = despegarautcompoptionmover;
            option.onmouseout = despegarautcompoptionmout;
            option.onmousewheel = despegarautcompoptionmwheel;
            option.onclick = despegarautcompoptionmc;
            option.className = "locatoroption";
            option.index = i;
            option.inputId = inputId;
            name = match.n.replace(r1,"<b>$1</b>");
            option.innerHTML = obj.OPTION_FILLER + name.replace(r2,"<b>$1</b>");
            option.option = match;
         }

         obj.nrOfOptions = matches.length;
      }
      else //no results or default results
      {
         nothing =  document.createElement('DIV');
         bla.appendChild(nothing);
         if (Producto==3 || Producto==4)
         {
            nothing.innerHTML = "<span class=\"noresults\">" + texts[globalac.language][EsPaq].noResults + " " + input + "<br>" + texts[globalac.language][EsPaq].noResults2 + "</span>";
         }
         else
         {
            nothing.innerHTML = "<span class=\"noresults\">" + texts[globalac.language][EsPaq].noResults + globalac.OrigenDesc + " - " + input + "<br>" + texts[globalac.language][EsPaq].noResults2 + "</span>";
         }
         obj.nrOfOptions = 0;
      }
      obj.adjustLocatorHeight(bla);
   }
   else
   {
      //Possible that the user has tabbed out... If we have one match or the input was a three digit code
      //with a matching option then we can enter it
      if(gDespegarAutCompLastLocatorId)
      {
         var locinp = document.getElementById(gDespegarAutCompLastLocatorId);
         if(locinp)
         {
            if(matches.length == 1)
            {
               return obj.selectOption(matches[0],locinp);
            }
            else if(matches.length > 1)
            {
               var ui = input.toUpperCase();
               for(var i = 0;i < matches.length;i++)
               {
                  if(matches[i].m.toUpperCase() == ui)
                     return obj.selectOption(matches[i],locinp);
               }
            }
            //if we are here then make sure the user know nothing is selected:
            obj.selectOption(null,locinp);
         }

      }

   }
   return '';
}


function despegarautcompBuildOptions(input, matches, inputId, Producto)
{
   gDespegarAutCompCompleterResults[input] = matches;
   //verifico el resultado sea valido todavia
   if(input == document.getElementById(inputId).value)
      despegarautcompShowOptions(input,matches,inputId, Producto);
}





/* ****************** */
/* Fuciones de PopUps */
/* ****************** */

function completerPopupWrapAC(inputEl)
{
   popupac(inputEl, "locator",0,1);

}
function completerPopdownWrapAC()
{
   popdownac(true);
}

function popdownac(force)
{
   if(force || !overPopupAC)
   {
      var bla = document.getElementById("dapopupac");
      bla.className = "popup";
      bla.style.height = "";
      if(bla.firstChild)
         bla.removeChild(bla.firstChild);
      bla.calledby = null;
      currentLocator = null;
      currentDateField = null;
      currentProgress = null;

      var cov = document.getElementById("dapopupcoverac");
      cov.style.visibility = "hidden";
      cov.style.display = "none";
   }
}

function overpopupac()
{
   overPopupAC = true;
}
function leavepopupac()
{
   overPopupAC = false;
}
function clickpopupac()
{
   var bla = document.getElementById("dapopupac");
}

function horzPosPopupAC()
{
   var bla = document.getElementById("dapopupac");
   var cx = findPosAC(bla.calledby,'x');
   var x = alignac(bla.halign,cx,bla.calledby.offsetWidth, bla.offsetWidth);

      if(!bla.fixed)
      {
         var r = clientRect();
         var y = 0;
         var c = contained({'l':x,'t':y,'r':x+bla.offsetWidth,'b':y+bla.offsetHeight},r);

         if(c.axis == 'x')
         {
            //flip or nudge
            if(bla.valign == 0 || bla.valign == 3)//flip to side
               x = alignac(c.diff>0?1:2,cx,bla.calledby.offsetWidth, bla.offsetWidth);
            else x += c.diff;
         }
      }

      bla.style.left = x+"px";
}

function positionpopupac(p)
{
   var bla = p?p:document.getElementById("dapopupac");
   bla.style.visibility = "hidden";
   bla.style.position = "absolute";
   bla.style.display = "block";
   if(bla.calledby)
   {
      var cx = findPosAC(bla.calledby,'x');
      var cy = findPosAC(bla.calledby,'y');
      var x = alignac(bla.halign,cx,bla.calledby.offsetWidth, bla.offsetWidth);
      var y = alignac(bla.valign,cy,bla.calledby.offsetHeight,bla.offsetHeight);

      /*
      alert(cx + ':' + cy);
      alert(x + ':' + y);
      */

      //alert(bla.calledby.tagName);

      //y = cy + 30

      if(!bla.fixed)
      {
         if (p.popFrame && p.popFrame != '' && document.getElementById(p.popFrame))
            var r = elementRect(document.getElementById(p.popFrame));
         else
            var r = clientRect();

         var c = contained({'l':x,'t':y,'r':x+bla.offsetWidth,'b':y+bla.offsetHeight},r);

         if(c.axis == 'y') //x okay
         {
            //flip or nudge
            if(bla.halign == 0 || bla.halign == 3)//flip up/down
               y = alignac(c.diff>0?1:2,cy,bla.calledby.offsetHeight, bla.offsetHeight);
            else y += c.diff
         }
         else if(c.axis == 'x') //y okay
         {
            //flip or nudge
            if(bla.valign == 0 || bla.valign == 3)//flip to side
               x = alignac(c.diff>0?1:2,cx,bla.calledby.offsetWidth, bla.offsetWidth);
            else x += c.diff;
         }
      }
      bla.style.left = x + "px";
      bla.style.top = y + "px";
   }

   bla.style.visibility = "visible";
}


function setPopupCoverAC()
{
   if(navigator.appName != "Microsoft Internet Explorer")
      return;

   var bla = document.getElementById("dapopupac");
   var cov = document.getElementById("dapopupcoverac");
   cov.style.display = "block";
   cov.style.left = bla.style.left;
   cov.style.top = bla.style.top;
   cov.style.width = bla.offsetWidth;
   cov.style.height = bla.offsetHeight;
   cov.style.visibility = "visible";
}


function popupac(me, c, halign, valign, popFrame)
{
   //p=popup, c=calledby
   //halign: null|0-> p.left = c.left , 1-> p.left = c.right, 2->p.right = c.left, 3->p.right =c.right, 4-> p.left = c.middle,
   //valign: null|0-> p.top = c.top, 1-> p.top = c.bottom, 2-> p.bottom = c.top, 3-> p.bottom = c.bottom, 4-> p.top = c.bottom

   var bla = document.getElementById("dapopupac");
   bla.noWrap = true;
   if(bla.firstChild)
      bla.removeChild(bla.firstChild);
   if (c == "locator")
   {
      bla.appendChild(locator.contents);
      currentLocator = me;
   }

   bla.halign = halign?halign:0;
   bla.valign = valign?valign:0;
   bla.fixed = (c=="locator"?true:false);
   bla.popFrame = popFrame;
   bla.calledby = me;
   if (bla.className.indexOf(c) == -1)
   {
      bla.className = "popup "+c;
   }
   positionpopupac(bla);
   setPopupCoverAC();

}

function findPosAC (obj,axis) {

   var curleft = curtop = 0;
   if (obj.offsetParent) {
       do {
          curleft += obj.offsetLeft;
          curtop += obj.offsetTop;
          //alert(curleft);
       } while (obj = obj.offsetParent);
   }

   return axis == 'x' ? curleft : curtop;
};

function alignac(t,p,whc,whp)
{
   //window.status = "t:"+ t + " p:" + p + " whc:" + whc + " whp:" + whp
   if(t)
   {
      if(t == 0)
         return p+400;
      if(t == 1)
         return p+whc;
      if(t == 2)
         return p-whp;
      if(t == 3)
         return p+whc-whp;
      if (t == 4)
         return Math.round(p+whc/2);
   }
   return p;
}





function createLocatorAC()
{
   locator.contents = document.createElement("DIV");
   locator.contents.id = "despegarautcomplocator";
}

function loadContentAC(file,suffix)
{
  var head = document.getElementsByTagName('head').item(0)
  var scriptId = 'loadScript'+(suffix?suffix:'');
  var scriptTag = document.getElementById(scriptId);

  //if(scriptTag) head.removeChild(scriptTag);
  var script = document.createElement('script');
  script.src = file;
  script.name = "contentloader";
  script.type = 'text/javascript';
  script.id = scriptId;

  head.appendChild(script)
  return "";
}

function getEvTargetAC(ee)
{
   var targ;
   var e = ee;
   if (!e) e = window.event;
   if (e.target) targ = e.target;
   else if (e.srcElement) targ = e.srcElement;
   if (targ.nodeType == 3) // defeat Safari bug
      targ = targ.parentNode;
   return targ;
}






/* ******************** */
/* Fuciones de CallBack */
/* ******************** */

function airlineDestination(code)
{
   var destlist = globalac.whitelabel.destinations;
   for(var k in destlist)
   {
      if(code.toUpperCase().indexOf(destlist[k].m.toUpperCase()) >=0)
         return true;
   }
   return false;
}


function forceLoc()
{
   // only
   if(globalac.whitelabel && globalac.whitelabel.destinations && globalac.whitelabel.destinations.length==0)
      return;

   var obj;

   for(var k in gDespegarAutCompCompleterObjs)
   {
      obj = gDespegarAutCompCompleterObjs[k];
      if(obj != this)
      {
         if(!airlineDestination(this.locCode)) //we are not local
         {
            //Need to reset the other picker for safety
            if(obj.locCode&&(!airlineDestination(obj.locCode)))
            {
               obj.setCode(null);
            }
            obj.locked = globalac.whitelabel.destinations;
            obj.setDesc('Select from one of the below');
         }
         else
            obj.locked = null;
      }
   }
}

function airportSelected(objInput, option, hiddenId) {
   if(option != null && option.m && document.getElementById(hiddenId))
   {
      document.getElementById(hiddenId).value = option.m.toUpperCase();
      objInput.title = option.n;
   }
   else
   {
      if(document.getElementById(hiddenId))
      {
         document.getElementById(hiddenId).value = '';
         objInput.value = texts[globalac.language][globalac.EsPaq].inputDefaultText;
         objInput.title = texts[globalac.language][globalac.EsPaq].inputDefaultText;
      }
   }
}


function DestinySelected(objInput, option, hiddenId,DestTypeHiddenId,MultipleHiddenId) {
   if(option != null && option.m && document.getElementById(hiddenId))
   {
      document.getElementById(hiddenId).value = option.m.toUpperCase();
      document.getElementById(DestTypeHiddenId).value = option.t;
      document.getElementById(MultipleHiddenId).value = option.u;
      objInput.title = option.n;
      if(document.getElementById('sBusqFiltro').value == 'Y'){
      updateFiltros2();
      }
   }
   else
      if(document.getElementById(hiddenId))
      {
         document.getElementById(hiddenId).value = '';
         document.getElementById(DestTypeHiddenId).value = '';
         document.getElementById(MultipleHiddenId).value = '';

         objInput.value = texts[globalac.language][globalac.EsPaq].inputDefaultText;
         objInput.title = texts[globalac.language][globalac.EsPaq].inputDefaultText;
      }
}

function DestinySelectedHome(objInput, option, hiddenId,DestTypeHiddenId,MultipleHiddenId) {
   if(option != null && option.m && document.getElementById(hiddenId))
   {
      document.getElementById(hiddenId).value = option.m.toUpperCase();
      document.getElementById(DestTypeHiddenId).value = option.t;
      document.getElementById(MultipleHiddenId).value = option.u;
      objInput.title = option.n;
   }
   else
      if(document.getElementById(hiddenId))
      {
         document.getElementById(hiddenId).value = '';
         document.getElementById(DestTypeHiddenId).value = '';
         document.getElementById(MultipleHiddenId).value = '';

         objInput.value = texts[globalac.language][globalac.EsPaq].inputDefaultText;
         objInput.title = texts[globalac.language][globalac.EsPaq].inputDefaultText;
      }
}

/*
   una vez que tengo el script cargado, llamo a la funcion de inicializacion
   definida en el HTML. Si todavia no se cargo esa seccion del HTML, intento
   initTries veces cada 500 milisegundos, hasta que se cargue.
*/

function initAutoComplete()
{
   if(initTries > 0) {

      try{
         loadAutoComplete();
      } catch(e) {
         window.setTimeout(initAutoComplete, 500);
      } finally {
         initTries--;
      }
   } else {
      //alert('Ocurrio un error al cargar la pagina\nPor favor, vuelva a intentarlo.\nGracias.');
   }
}




function createAuxiliarIframeAndDiv()
{
   if(!document.getElementById('dapopupcoverac'))
   {
      //creo el siguiente iframe en forma dinamica
      //<iframe class="popupcover" id="dapopupcoverac" frameBorder="0" scrolling="no" style="display:none;"></iframe>
      var objIframe = document.createElement('iframe');
      objIframe.id = "dapopupcoverac";
      objIframe.className = "popupcover";
      objIframe.frameBorder = "0";
      objIframe.scrolling = "no";
      objIframe.style.display = "none"
      document.body.appendChild(objIframe);
   }

   if(!document.getElementById('dapopupac'))
   {
      //creo el siguiente div en forma dinamica
      //<div class="popup" id="dapopupac" onmouseover="overpopupac();" onmouseout="leavepopupac();" onclick="clickpopupac();" onscroll="clickpopupac();"></div>
      var objDiv = document.createElement('div');
      objDiv.id = "dapopupac";
      objDiv.className = "popup";

      //seteo los eventos
      objDiv.onmouseover = function(event)
      {
         overpopupac();
      }
      objDiv.onmouseout = function(event)
      {
         leavepopupac();
      }
      objDiv.onclick = function(event)
      {
         clickpopupac();
      }
      objDiv.onscroll = function(event)
      {
         clickpopupac();
      }

      document.body.appendChild(objDiv);
   }

}

var vPais = 1;
iDiasAnticipo = 1;

if(vPais != 10) {
    var defaultValueOrigenCorto = "Escriba la Ciudad";
    var defaultValueOrigen;
    var defaultTextOrigen = "Escriba la ciudad de origen";
    var defaultValueDestino = "Escriba la ciudad de destino";
    var defaultTextDesCotino = "Escriba la ciudad de destino";
} else {
    var defaultValueOrigen;
    var defaultTextOrigen;
    var defaultValueDestino = "Escreva a cidade de destino";
    var defaultTextDestino = "Escreva a cidade de destino";
}

function loadAutoComplete() {
        if (vPais == 10) {
            globalac.language = "pt";
        } else {
            globalac.language = "es";
        }
        globalac.flights.buscadorVuelosDescripcionOriginLocation1 = new DespegarAutCompCompleter("buscadorVuelosDescripcionOriginLocation1", completerPopupWrapAC, completerPopdownWrapAC, "dapopupac", "arrPlace",airportSelected,"buscadorVuelosOriginLocation1",defaultTextOrigen,defaultValueOrigen, null, null, 2);
        globalac.flights.buscadorVuelosDescripcionDestinationLocation1 = new DespegarAutCompCompleter("buscadorVuelosDescripcionDestinationLocation1", completerPopupWrapAC, completerPopdownWrapAC, "dapopupac", "arrPlace",airportSelected,"buscadorVuelosDestinationLocation1",defaultTextDestino,defaultValueDestino, null, null, 2);
        createLocatorAC();
}

function buscarVuelos() {
    var okey = 1;
    var msg;
    var dia;
    var mes;
    var anio;
    var fechaDesde;
    var fechaHasta;
    var fechaSinHora;
    var frm;

    msg = '';
    okey = 1;

    var AnioDesde = document.getElementById('fechaSalida_ano').value;
    var MesDesde  = document.getElementById('fechaSalida_mes').value;
    var DiaDesde  = document.getElementById('fechaSalida_dia').value;
    var AnioHasta = document.getElementById('fechaRegreso_ano').value;
    var MesHasta  = document.getElementById('fechaRegreso_mes').value;
    var DiaHasta  = document.getElementById('fechaRegreso_dia').value;

    objForm.DepartureDate1.value = AnioDesde+'-'+MesDesde+'-'+DiaDesde;
    objForm.DepartureDate2.value = AnioHasta+'-'+MesHasta+'-'+DiaHasta;

    if (objForm.vPais.value == '') {
        okey = 0;
        msg  = msg + 'Debe indicar cual es su pais de residencia.\n';
    }

    if (objForm.OriginLocation1.value == objForm.DestinationLocation1.value && objForm.OriginLocation1.value.length != 0) {
        okey = 0;
        msg  = msg + 'El origen y el destino no pueden ser iguales\n';
    }

    if (objForm.OriginLocation1.value.length != 3) {
        okey = 0;
        msg  = msg + 'Por favor, escriba una ciudad de partida\n';
    }

    if (objForm.DestinationLocation1.value.length == 0 || objForm.DestinationLocation1.value == defaultValueDestino) {
        okey = 0;
        msg  = msg + 'Por favor, escriba una ciudad de destino\n';
    }


    // Fecha partida
    if (objForm.DepartureDate1.value.length == 0 || objForm.DepartureDate2.value.length == 0) {
        okey = 0;
        msg  = msg + 'Por favor, ingrese una fecha de viaje\n';
    }


    if (okey == 1) {
        objForm.submit();
    } else {
        alert(msg);
    }
}

function styleToggle(b) {
        if (b.value == 'm') { window.location = "http://www.despegar.com.ar/paginas/vuelos/busquedamultiplesdestinos.asp"; return;}
        if (b.value == 'iv') { document.getElementById('ocultar').disabled = false; }
        if (b.value == 'i') { document.getElementById('ocultar').disabled = true; }
        for (var i = 0; i< b.form.length; i++) {
             if (b.form[i].name == b.name) {
                 b.form[i].parentNode.style.fontWeight = b.form[i].checked? 'bold' : '';
             }
        }
    }

    function changeIdCob() {
        var vPais = objForm['vPais'];
        var idCob = objForm['idCob'];

        switch (vPais.value) {
                case '1':
                         idCob.value = 16012;
                         break;
                case '10':
                         idCob.value = 16013;
                         break;
                case '6':
                         idCob.value = 16015;
                         break;
                case '9':
                         idCob.value = 16016;
                         break;
                case '86':
                         idCob.value = 16017;
                         break;
                case '7':
                         idCob.value = 16018;
                         break;
                case '5':
                         idCob.value = 16019;
                         break;
                case '2':
                         idCob.value = 16020;
                         break;
                case '82':
                         idCob.value = 16022;
                         break;
                default:
                         idCob.value = 16021;
                break;
                             }
                         }

    function changeGet2Post() {
        var vPais    = objForm['vPais'];
        var get2post = objForm['get2postURL'];

         switch (vPais.value) {
case '1':
    get2post.value = "http://www.ar.despegar.com/paginas/vuelos/buscando.asp";
    objForm.action = "http://www.ar.despegar.com/paginas/afiliados/aflib/get2postaffiliate.asp"
    break;
case '10':
    get2post.value = "http://www.decolar.com/paginas/vuelos/buscando.asp";
    objForm.action = "http://www.decolar.com/paginas/afiliados/aflib/get2postaffiliate.asp"
    break;
case '6':
    get2post.value = "http://www.cl.despegar.com/paginas/vuelos/buscando.asp";
    objForm.action = "http://www.cl.despegar.com/paginas/afiliados/aflib/get2postaffiliate.asp"
    break;
case '9':
    get2post.value = "http://www.co.despegar.com/paginas/vuelos/buscando.asp";
    objForm.action = "http://www.co.despegar.com/paginas/afiliados/aflib/get2postaffiliate.asp"
    break;
case '86':
    get2post.value = "http://www.mx.despegar.com/paginas/vuelos/buscando.asp";
    objForm.action = "http://www.mx.despegar.com/paginas/afiliados/aflib/get2postaffiliate.asp"
    break;
case '7':
    get2post.value = "http://www.pe.despegar.com/paginas/vuelos/buscando.asp";
    objForm.action = "http://www.pe.despegar.com/paginas/afiliados/aflib/get2postaffiliate.asp"
    break;
case '5':
    get2post.value = "http://www.uy.despegar.com/paginas/vuelos/buscando.asp";
    objForm.action = "http://www.uy.despegar.com/paginas/afiliados/aflib/get2postaffiliate.asp"
    break;
case '2':
    get2post.value = "http://www.us.despegar.com/paginas/vuelos/buscando.asp";
    objForm.action = "http://www.us.despegar.com/paginas/afiliados/aflib/get2postaffiliate.asp"
    break;
case '82':
    get2post.value = "http://www.ve.despegar.com/paginas/vuelos/buscando.asp";
    objForm.action = "http://www.ve.despegar.com/paginas/afiliados/aflib/get2postaffiliate.asp"
    break;
default:
    get2post.value = "http://www.us.despegar.com/paginas/vuelos/buscando.asp";
    objForm.action = "http://www.us.despegar.com/paginas/afiliados/aflib/get2postaffiliate.asp"
break;
        }
    }

var initTries = 1200;
initAutoComplete();

