var dates = {
  changeHidden: function(){
    $('#form_fund_information input.fmZero').each(function(){
      $(this).bind('change', function(){
        var date = $(this).val().split('/');
        date = date[2] + '-' + parseFloat(date[1]) + '-' + parseFloat(date[0]);
        $('#' + $(this)[0].id + '_hidden').val(date);
      });
    })
  },
  changePeriod: function(){
    $('#interv ul').delegate('li', 'click', function(){
      dates.setPeriod();
    });
  },
  twoDigit: function(number){
    return (number < 10 ? '0' : '') + number;
  },
  setPeriod: function(){
    var currentTime = new Date();
    var month = currentTime.getMonth() + 1;
    var day = currentTime.getDate();
    var year = currentTime.getFullYear();
    var date_to = dates.twoDigit(day) + '/' + dates.twoDigit(month) + '/' + year;
    var date_to_hidden = year + '-' + month + '-' + day;
    var period = $('#period select').val();
    $('#date_to').val(date_to);
    $('#date_to_hidden').val(date_to_hidden);
    $('#date_from').val(dates.from(day, month, year, period, false));
    $('#date_from_hidden').val(dates.from(day, month, year, period, true));
  },
  from: function(day, month, year, period, hidden){
    day = parseInt(day);
    month = parseInt(month);
    if((month - period) <= 0){
      year = year - 1;
      month = month + (12 - period);
    }
    else month = month - period;
    if (hidden){
      return year + '-' + month + '-' + day;
    }
    else {
      return dates.twoDigit(day) + '/' + dates.twoDigit(month) + '/' + year;
    }
  }
}

$(document).ready(function(){
  var currentDate = new Date();
  var currentYear = currentDate.getFullYear();
  var datesm = $('#date_from, #date_to').datepicker({
    showAnim: '',
    defaultDate: "+1w",
    changeMonth: true,
    changeYear: true,
    showOtherMonths: true,
    dateFormat: 'dd/mm/yy',
    yearRange: '2000:' + currentYear,
    onSelect: function(selectedDate){
      var option = this.id == "date_from" ? "minDate" : "maxDate";
      var instance = $(this).data("datepicker");
      var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
      datesm.not(this).datepicker("option", option, date);
    }
  });

  dates.setPeriod();
  dates.changePeriod();
  dates.changeHidden();
});
