
  var search = new function() {

    /*
    @public
    */
    this.init = function() {
      $('#searchButton').bind('click', handleSearchClick);
      $('#searchContainerTabs DIV').click(handleTabClick);
      $('#returnTransfer').change(function(){var ret=$('#returnTransfer option:selected').val();
        if (ret == 1){
        $('#ret').show();    
        } else {
        $('#ret').hide();    
        };
      });
      
      var linkDDObj = linkDateDropdowns($('#transferDay'), $('#transferMonth'), $('#transferYear'), $('#returnDay'), $('#returnMonth'), $('#returnYear'));
      
      var ret=$('#returnTransfer option:selected').val();
        if (ret == 1){
        $('#ret').show();    
        } else {
        $('#ret').hide();    
        };

      $(document).ready(function(){
          $("#airport, #resort").mousedown(function(){
              if($.browser.msie) {
                  $(this).css("width","auto");
              }
          });
          $("#airport, #resort").change(function(){
              if ($.browser.msie) {
                  $(this).css("width","100%");
              }
          });
          $("#airport, #resort").blur(function(){
              if ($.browser.msie) {
                  $(this).css("width","100%");
              }
          });
      });
    }

    /*
    @private
    */
    function getTransferType() {
      return ($('#searchContainerTabs .tabActive').html() == lang.get("Resort to Airport")? 'RA' : 'AR');
    }

    /*
    @private
    */
    function handleTabClick() {
      $('#searchContainerTabs DIV').each(function() {
        this.className = 'tabInactive';
      });
      this.className = 'tabActive';

      if(this.innerHTML == lang.get("Resort to Airport")) {
        var airportLabel = lang.get("Departure airport:");
        var resortLabel = lang.get("Departure resort:");
        var arrivalLabel = lang.get("Flight departure:");
        var departLabel = lang.get("Flight arrival:");
      }
      else {
        var airportLabel = lang.get("Arrival airport:");
        var resortLabel = lang.get("Arrival resort:");
        var arrivalLabel = lang.get("Flight arrival:");
        var departLabel = lang.get("Flight departure:");
      }
      $('label[for="airport"]').html(airportLabel);
      $('label[for="resort"]').html(resortLabel);
      $('label[for="flightArrivalHours"]').html(arrivalLabel);
      $('label[for="flightDepartureHours"]').html(departLabel);
    }

    /*
    @private
    */
    function handleSearchClick() {

       if(validate()) {

         // Transfer date
         var tDay   = addLeadingZeros(parseInt($('#transferDay').val(), 10));
         var tMonth = addLeadingZeros(parseInt($('#transferMonth').val(), 10));
         var tYear  = parseInt($('#transferYear').val(), 10);

         var country = 'NA';
         var gateway = $('#airport').val();
         var resort = $('#resort').val();
         var transferDate = tDay  +'-' + tMonth + '-' + tYear;
         var flightArrivalTime = $('#flightArrivalHours').val() + $('#flightArrivalMinutes').val();
         var flightDepartureTime = $('#flightDepartureHours').val() + $('#flightDepartureMinutes').val();
         var adults = $('#adults').val();
         var infants = $('#infants').val();
         var children = $('#children').val();
         var currency = $('#currency').val();

         if($('#returnTransfer').val() == '1') {
             if(flag == 1){
                 
         var rDay   = addLeadingZeros(parseInt($('#returnDay').val(), 10));
         var rMonth = addLeadingZeros(parseInt($('#returnMonth').val(), 10));
         var rYear  = parseInt($('#returnYear').val(), 10);
                 
          var returnDate = rDay  +'-' + rMonth + '-' + rYear;      
          var returnTime = $('#flightDepartureHours').val() + $('#flightDepartureMinutes').val();       
                 
             }   else  {

           var inDateObj = new Date(tYear, tMonth-1, tDay);
           inDateObj.setDate(inDateObj.getDate()+7);
           var y = inDateObj.getFullYear();
           var m = addLeadingZeros(inDateObj.getMonth()+1);
           var d = addLeadingZeros(inDateObj.getDate());
           var returnDate = d +'-' + m + '-' + y;
           var returnTime = '1200';
         }
         }
         else {
           var returnDate = '';
           var returnTime = '';
         }

         var searchURL = $('head base')[0].href + 'search-results/' + getTransferType() + '/' + country + '_' + gateway + '/' + resort + '/' + transferDate + '/' + flightArrivalTime + '/' + returnDate + '/' + returnTime + '/' + adults + '/' + infants + '_' + currency + '/' + children + '/';
         window.location.href = searchURL;
       }
       return false;
    }
    
    /*
    @private
    */
    function handleTransferChange() {
    var ret=$('#returnTransfer option:selected').val();
    window.alert(ret);
        if (ret == 1){
        $('#ret').show();    
        if (ret == 0)
        $('#ret').hide();    
        }  
    }

    /*
    @private
    */
    function validate() {

       // Gateway
      if($('#airport').val() == '') {
        alert(lang.get("Please select an airport."));
        $('#airport')[0].focus();
        return false;
      }

      // Resort
      if($('#resort').val() == '') {
        alert(lang.get("Please select an resort."));
        $('#resort')[0].focus();
        return false;
      }

      return true;
    }

    /*
    @private
    */
    function addLeadingZeros(x) {
      if(x < 10) {
        x = '0' + x
      }

      return x;
    }
  }

  $(document).ready(search.init);
