//! moment.js locale configuration //! locale : Serbian [sr] //! author : Milan Janačković<milanjanackovic@gmail.com> : github.com/milan-j

import moment from '../moment';

var translator = {

words: { //Different grammatical cases
    m: ['jedan minut', 'jedne minute'],
    mm: ['minut', 'minute', 'minuta'],
    h: ['jedan sat', 'jednog sata'],
    hh: ['sat', 'sata', 'sati'],
    dd: ['dan', 'dana', 'dana'],
    MM: ['mesec', 'meseca', 'meseci'],
    yy: ['godina', 'godine', 'godina']
},
correctGrammaticalCase: function (number, wordKey) {
    return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
},
translate: function (number, withoutSuffix, key) {
    var wordKey = translator.words[key];
    if (key.length === 1) {
        return withoutSuffix ? wordKey[0] : wordKey[1];
    } else {
        return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
    }
}

};

export default moment.defineLocale('sr', {

months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),
monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
monthsParseExact: true,
weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),
weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
weekdaysParseExact : true,
longDateFormat: {
    LT: 'H:mm',
    LTS : 'H:mm:ss',
    L: 'DD.MM.YYYY',
    LL: 'D. MMMM YYYY',
    LLL: 'D. MMMM YYYY H:mm',
    LLLL: 'dddd, D. MMMM YYYY H:mm'
},
calendar: {
    sameDay: '[danas u] LT',
    nextDay: '[sutra u] LT',
    nextWeek: function () {
        switch (this.day()) {
            case 0:
                return '[u] [nedelju] [u] LT';
            case 3:
                return '[u] [sredu] [u] LT';
            case 6:
                return '[u] [subotu] [u] LT';
            case 1:
            case 2:
            case 4:
            case 5:
                return '[u] dddd [u] LT';
        }
    },
    lastDay  : '[juče u] LT',
    lastWeek : function () {
        var lastWeekDays = [
            '[prošle] [nedelje] [u] LT',
            '[prošlog] [ponedeljka] [u] LT',
            '[prošlog] [utorka] [u] LT',
            '[prošle] [srede] [u] LT',
            '[prošlog] [četvrtka] [u] LT',
            '[prošlog] [petka] [u] LT',
            '[prošle] [subote] [u] LT'
        ];
        return lastWeekDays[this.day()];
    },
    sameElse : 'L'
},
relativeTime : {
    future : 'za %s',
    past   : 'pre %s',
    s      : 'nekoliko sekundi',
    m      : translator.translate,
    mm     : translator.translate,
    h      : translator.translate,
    hh     : translator.translate,
    d      : 'dan',
    dd     : translator.translate,
    M      : 'mesec',
    MM     : translator.translate,
    y      : 'godinu',
    yy     : translator.translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
    dow : 1, // Monday is the first day of the week.
    doy : 7  // The week that contains Jan 1st is the first week of the year.
}

});