//! moment.js locale configuration
//! locale : Marathi [mr]
//! author : Harshad Kale : https://github.com/kalehv
//! author : Vivek Athalye : https://github.com/vnathalye
import moment from "../moment.js";
var symbolMap = {
  1: '१',
  2: '२',
  3: '३',
  4: '४',
  5: '५',
  6: '६',
  7: '७',
  8: '८',
  9: '९',
  0: '०'
},
    numberMap = {
  '१': '1',
  '२': '2',
  '३': '3',
  '४': '4',
  '५': '5',
  '६': '6',
  '७': '7',
  '८': '8',
  '९': '9',
  '०': '0'
};

function relativeTimeMr(number, withoutSuffix, string, isFuture) {
  var output = '';

  if (withoutSuffix) {
    switch (string) {
      case 's':
        output = 'काही सेकंद';
        break;

      case 'ss':
        output = '%d सेकंद';
        break;

      case 'm':
        output = 'एक मिनिट';
        break;

      case 'mm':
        output = '%d मिनिटे';
        break;

      case 'h':
        output = 'एक तास';
        break;

      case 'hh':
        output = '%d तास';
        break;

      case 'd':
        output = 'एक दिवस';
        break;

      case 'dd':
        output = '%d दिवस';
        break;

      case 'M':
        output = 'एक महिना';
        break;

      case 'MM':
        output = '%d महिने';
        break;

      case 'y':
        output = 'एक वर्ष';
        break;

      case 'yy':
        output = '%d वर्षे';
        break;
    }
  } else {
    switch (string) {
      case 's':
        output = 'काही सेकंदां';
        break;

      case 'ss':
        output = '%d सेकंदां';
        break;

      case 'm':
        output = 'एका मिनिटा';
        break;

      case 'mm':
        output = '%d मिनिटां';
        break;

      case 'h':
        output = 'एका तासा';
        break;

      case 'hh':
        output = '%d तासां';
        break;

      case 'd':
        output = 'एका दिवसा';
        break;

      case 'dd':
        output = '%d दिवसां';
        break;

      case 'M':
        output = 'एका महिन्या';
        break;

      case 'MM':
        output = '%d महिन्यां';
        break;

      case 'y':
        output = 'एका वर्षा';
        break;

      case 'yy':
        output = '%d वर्षां';
        break;
    }
  }

  return output.replace(/%d/i, number);
}

export default moment.defineLocale('mr', {
  months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),
  monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),
  monthsParseExact: true,
  weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
  weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
  weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
  longDateFormat: {
    LT: 'A h:mm वाजता',
    LTS: 'A h:mm:ss वाजता',
    L: 'DD/MM/YYYY',
    LL: 'D MMMM YYYY',
    LLL: 'D MMMM YYYY, A h:mm वाजता',
    LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता'
  },
  calendar: {
    sameDay: '[आज] LT',
    nextDay: '[उद्या] LT',
    nextWeek: 'dddd, LT',
    lastDay: '[काल] LT',
    lastWeek: '[मागील] dddd, LT',
    sameElse: 'L'
  },
  relativeTime: {
    future: '%sमध्ये',
    past: '%sपूर्वी',
    s: relativeTimeMr,
    ss: relativeTimeMr,
    m: relativeTimeMr,
    mm: relativeTimeMr,
    h: relativeTimeMr,
    hh: relativeTimeMr,
    d: relativeTimeMr,
    dd: relativeTimeMr,
    M: relativeTimeMr,
    MM: relativeTimeMr,
    y: relativeTimeMr,
    yy: relativeTimeMr
  },
  preparse: function (string) {
    return string.replace(/[१२३४५६७८९०]/g, function (match) {
      return numberMap[match];
    });
  },
  postformat: function (string) {
    return string.replace(/\d/g, function (match) {
      return symbolMap[match];
    });
  },
  meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,
  meridiemHour: function (hour, meridiem) {
    if (hour === 12) {
      hour = 0;
    }

    if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {
      return hour;
    } else if (meridiem === 'दुपारी' || meridiem === 'सायंकाळी' || meridiem === 'रात्री') {
      return hour >= 12 ? hour : hour + 12;
    }
  },
  meridiem: function (hour, minute, isLower) {
    if (hour >= 0 && hour < 6) {
      return 'पहाटे';
    } else if (hour < 12) {
      return 'सकाळी';
    } else if (hour < 17) {
      return 'दुपारी';
    } else if (hour < 20) {
      return 'सायंकाळी';
    } else {
      return 'रात्री';
    }
  },
  week: {
    dow: 0,
    // Sunday is the first day of the week.
    doy: 6 // The week that contains Jan 6th is the first week of the year.

  }
});