$(document).ready(function(){
  
  $('.fp_swap_button').click(function(){
    var id = $(this).attr('id');
    $('#fp_swap_flight,#fp_swap_car,#fp_swap_hotel').addClass('hidden');
    $('#' + id.replace('_button','')).removeClass('hidden');
  });
  
  //when any 'datetime' field gets clicked it will open the datatime dropdown
  $(".datetime").datepicker({
    duration: '',
    showTime: true,
    constrainInput: true
  });
  
  //when any 'date' field gets clicked it will open the date dropdown
  $(".date").datepicker({
    duration: '',
    showTime: false,
    constrainInput: true,
    dateFormat: 'dd/mm/yy',
    minDate: 0,
    maxDate: "+1Y +1M +10D"
  });
  
  $(".system_date").datepicker({
    duration: '',
    showTime: false,
    constrainInput: true,
    dateFormat: 'yy-mm-dd',
    minDate: 0,
    maxDate: "+1Y +1M +10D"
  });
  
  //when any ajax form get submitted, handle the request
  $(".ajax").live('click',function(){
    var form = $(this).parents("form");
    var action = form.attr("action");
    //this will update CKEditor's content so the correct data is carried accross
    for(instance in CKEDITOR.instances){
      CKEDITOR.instances[instance].updateElement();
    }
    form_data = form.serialize();
    $.ajax({
      type: "post",
      url: action,
      data: form_data,
      success: function(returnText){
        if(returnText.indexOf("error") >= 0){
          $.fn.colorbox({html:returnText});
        }
        else{
          document.location = returnText;
        }
      },
      error: function(){
        $.fn.colorbox({html:"There was an error while trying to submit your form, please try again."});
      }
    });
    return false;
  });
  
  //when any 'colorbox' link gets clicked open a colorbox modal window
  $(".colorbox").colorbox();
  $(".colorbox_iframe").colorbox({maxWidth:'100%',maxHeight:'100%',iframe:'true',height:'600px',width:'540px'});
  
  $('#dateField1').attr('disabled','disabled');
  $('#departure_date').change(function(){
    var parts = $('#departure_date').val().split('/');
    var day = parts[0];
    var month = parts[1];
    var year = parts[2];
    var tempDate = new Date(year,month-1,(parseInt(day,10)+1));
    $('#dateField1').removeAttr('disabled');
    $('#dateField1').datepicker({
      duration: '',
      showTime: false,
      constrainInput: true,
      dateFormat: 'dd/mm/yy',
      minDate: tempDate,
      maxDate: "+1Y"
    });
  });
  
  /*$('#dateField1').change(function(){
    date_part = $(this).val().split('/');
    var day = date_part[0];
    var month = date_part[1];
    var year = date_part[2];
    var date_compare = new Date(year,month-1,day);
    
    date_part = $('#departure_date').val().split('/');
    var day = date_part[0];
    var month = date_part[1];
    var year = date_part[2];
    var date_today = new Date(year,month-1,day);
    
    if(date_compare > date_today){
      //this is allowed
    }
    else{
      $.fn.colorbox({html:"The return date has to be larger than the departure date"});
      $(this).val('');
      setTimeout('$.fn.colorbox.close();',3000);
    }
  });*/
  
  $('.find_place').keyup(function(){
    if($(this).val().length > 2){
      var elem = $(this);
      //find data that matches
      $.ajax({
        type:'post',
        url:'/modules/amadeus/default/ajax/find_places.php',
        data:'search=' + $(this).val(),
        success:function(returnText){
          //alert(returnText);
          if(elem.attr('id') == 'External_FlightFareSearch_From'){
            $('#place_results_from').html(returnText).removeClass('hidden');
          }
          else if(elem.attr('id') == 'External_FlightFareSearch_To'){
            $('#place_results_to').html(returnText).removeClass('hidden');
          }
          else if(elem.attr('id') == 'External_CarSearch_PickUpLocation'){
            $('#car_results_pickup').html(returnText).removeClass('hidden');
          }
          else if(elem.attr('id') == 'External_CarSearch_DropOffLocation'){
            $('#car_results_dropoff').html(returnText).removeClass('hidden');
          }
          else if(elem.attr('id') == 'External_HotelSearch_City'){
            $('#hotel_results_city').html(returnText).removeClass('hidden');
          }
        },
        error:function(error){
          alert('error:' + error);
        }
      });
      //show the new box
    }
    else{
      $('#place_results_from').addClass('hidden');
      $('#place_results_to').addClass('hidden');
      $('#car_results_pickup').addClass('hidden');
      $('#car_results_dropoff').addClass('hidden');
      $('#hotel_results_city').addClass('hidden');
    }
  });
  
  $('.select_place').live('click',function(){
    if($(this).parent('span').attr('id') == 'place_results_from'){
      $('#External_FlightFareSearch_From').val($(this).attr('id'));
    }
    else if($(this).parent('span').attr('id') == 'place_results_to'){
      $('#External_FlightFareSearch_To').val($(this).attr('id'));
    }
    else if($(this).parent('span').attr('id') == 'car_results_pickup'){
      $('#External_CarSearch_PickUpLocation').val($(this).attr('id'));
    }
    else if($(this).parent('span').attr('id') == 'car_results_dropoff'){
      $('#External_CarSearch_DropOffLocation').val($(this).attr('id'));
    }
    else if($(this).parent('span').attr('id') == 'hotel_results_city'){
      $('#External_HotelSearch_City').val($(this).attr('id'));
    }
    $('#place_results_from').addClass('hidden');
    $('#place_results_to').addClass('hidden');
    $('#car_results_pickup').addClass('hidden');
    $('#car_results_dropoff').addClass('hidden');
    $('#hotel_results_city').addClass('hidden');
  });
  
});
