/**
 * jquery ui datepicker default settings
 */
$.datepicker.setDefaults($.datepicker.regional['de']);
$.datepicker.setDefaults({
    changeMonth: true,
    changeYear: true,
    showMonthAfterYear: false,
    duration: 0,
    showAnim: ''
});

String.prototype.format = function (o) {
    return this.replace(/{([^{}]*)}/g,
      function (a, b) {
          var r = o[b];
          return typeof r === 'string' ? r : a;
      }
    );
};

function dateFromTo(fromField, toField) {
    // set datepicker min dates to tomorrow
    $('#{from}, #{to}'.format({'from': fromField, 'to': toField})).datepicker({'minDate': +1});
    // when start date is choosen, set min end date to start date
    $('#' + fromField).datepicker('option', 'onClose', function(dateText, inst) {
        if (dateText.length > 0) {
            $('#' + toField).datepicker('option', 'minDate', dateText);
        }
    });
}

function bindTabs(tabClass, contentClass) {
    // Content box tabs:
    $('.' + contentClass).hide();
    if ($('.' + contentClass + '.active').length > 0) {
        $('.' + contentClass + '.active').show();
    } else {
        $('.' + tabClass + ' li:first').addClass('active');
        $('.' + contentClass + ':first').addClass('active');
        $('.' + contentClass + ':first').show();
    }

    $('.' + tabClass + ' li a').click(
        function() {
            $(this).parent().siblings().removeClass('active');
            $(this).parent().addClass('active');
            var activeTab = $(this).attr('href');
            $(activeTab).siblings('.' + contentClass).hide();
            $(activeTab).show();
            return false;
        }
    );
}

$(document).ready(function () {
    dateFromTo('searchfrom', 'searchto');
    dateFromTo('first_day', 'last_day');
    // set default values here because when a datepicker option is set
    // the val is deleted.
    $('#searchfrom').val('Startdatum');
    $('#searchto').val('Enddatum');
    bindTabs('tabs', 'tab-content');
    bindTabs('inner-tabs', 'inner-tab-content');
});

