diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..5930a91 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,6 @@ +language: node_js +node_js: + - "4" +before_script: + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start diff --git a/README.md b/README.md index 7d8f88d..a4fd6f2 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,19 @@ # world-calendars Node module for converting between various calendars + +This project takes [kbwood/calendars](https://github.com/kbwood/calendars) and transforms them from a jQuery plugin to a node module. Many thanks to Keith Wood and all of the contributors to the original project! + +kbwood/calendars was originally pulled at version 2.0.2 in October 2016. + +The initial implementation converts all built-in calendars and localizations, including the `plus` module, but not the `validation` or `picker` functionality. Also includes basic test functionality. + +Typical usage for converting from one date system to another goes through Julian days: +``` +var calendars = require('world-calendars'); + +var gregorian = calendars.instance(); +var nepali = calendars.instance('nepali'); + +// gives nepali date 2073-07-15 +var nepaliHalloween = nepali.fromJD(gregorian.newDate(2016, 10, 31).toJD()); +``` diff --git a/bin/build.js b/bin/build.js new file mode 100644 index 0000000..ece4bec --- /dev/null +++ b/bin/build.js @@ -0,0 +1,242 @@ +var fs = require('fs'); + +function toRegExp(s) { return new RegExp(s); } + +/* + * Config options + */ +var config = JSON.parse(fs.readFileSync('./config.json', 'utf8')), + + // string: dir of source files, relative to 'bin' + srcDir = config.srcDir, + + // string: dir to put built files into, relative to 'bin' + distDir = config.distDir, + + // array[string]: subdirectories to create in dist + subdirectories = config.subdirectories, + + // newline character to use in build + newLine = config.newLine, + + /* + * array[{ + * from: string in source file + * to: string in built file + * setup: array[string]: setup lines in built file, if `from` is found + * include: string(regexp) files to include in this translation item + * exclude: string(regexp) files to exclude from this translation item + * }] + */ + translate = config.translate, + + // name of index file, within dist directory + indexFile = config.indexFile, + + // array[string(regexp)]: files in source directory to include + include = config.include.map(toRegExp), + + // array[string(regexp)]: files in source directory to exclude + exclude = config.exclude.map(toRegExp), + + /* + * special translation to remove jQuery IIFE: { + * start: string(regexp): beginning of IIFE + * end: string(regexp): end of IIFE + * } + * will de-indent all text inside the IIFE, and error if any code is found outside the IIFE + * but comments outside the IIFE will be included in the built files. + */ + unwrap = { + start: toRegExp(config.unwrap.start), + end: toRegExp(config.unwrap.end) + }, + + /* + * array giving the order to process files and how to translate their names + * [{ + * match: string(regexp): pattern for this group of files. Within one group + * we order lexicographically after removing the .js extension + * out: regexp substitution expression to give the output file name + * export: optional bool: whether this is the module.exports. + * }] + */ + outputOrder = config.outputOrder; + + +var indexOrder = []; + +translate.forEach(function(ti) { + if(ti.include) ti.include = toRegExp(ti.include); + if(ti.exclude) ti.exclude = toRegExp(ti.exclude); +}); + +outputOrder.forEach(function(v) { + v.match = toRegExp(v.match); + indexOrder.push(v.match); +}); + + + +function unwrapped(lines, fn) { + // take off the IIFE wrap around everything + var unwrapStart, + unwrapEnd; + + for(i = 0; i < lines.length; i++) { + if(lines[i].match(unwrap.start)) { + if(unwrapStart !== undefined) { + throw new Error('multiple unwrap starts found in ' + fn); + } + unwrapStart = i; + } + if(lines[i].match(unwrap.end)) { + if(unwrapEnd !== undefined) { + throw new Error('multiple unwrap ends found in ' + fn); + } + unwrapEnd = i; + } + } + if(unwrapEnd <= unwrapStart) { + throw new Error('unwrap end found before start in ' + fn); + } + if(unwrapStart === undefined || unwrapEnd === undefined) { + throw new Error('wrapping not found in ' + fn); + } + + var header = lines.slice(0, unwrapStart), + body = lines.slice(unwrapStart + 1, unwrapEnd).map(function(v, i) { + if(v && v.substr(0, 4) !== ' ') { + throw new Error('IIFE body is not all indented in ' + fn + ' body line ' + String(i)); + } + return v.substr(4); + }), + footer = lines.slice(unwrapEnd + 1); + if(notJustComments(header) || notJustComments(footer)) { + throw new Error('code found in header or footer in ' + fn); + } + + return {header: header, body: body, footer: footer}; +} + +function notJustComments(lines) { + var linestr = lines + // take out single-line comments + .filter(function(line) { return !line.match(/^\s\/\//); }) + .join(''); + + // take out /* ... */ comments + var nonComment = linestr.replace(/\/\*([^\*]|[\*]+[^\/])+\*\//g, ''); + + return (nonComment.trim() !== ''); +} + +function translateBody(body, fnOut) { + var setup = []; + + for(var i = 0; i < translate.length; i++) { + var ti = translate[i]; + + if(ti.include && !fnOut.match(ti.include)) continue; + if(ti.exclude && fnOut.match(ti.exclude)) continue; + + if(body.indexOf(ti.to) !== -1) { + throw new Error('to text "' + ti.to + '" found in file ' + fnOut); + } + + var bodySplit = body.split(ti.from), + found = bodySplit.length > 1; + + if(found) { + body = bodySplit.join(ti.to); + for(var j = 0; j < ti.setup.length; j++) { + if(setup.indexOf(ti.setup[j]) === -1) { + setup.push(ti.setup[j]); + } + } + } + } + + if(body.indexOf('$') !== -1) { + console.log('"$" is still present in ' + fnOut); + } + + return setup.join(newLine) + newLine + newLine + body; +} + +function srcSort(fn1, fn2) { + var o1 = srcOrder(fn1), + o2 = srcOrder(fn2), + n1 = fn1.replace(/[\.]js$/, ''), + n2 = fn2.replace(/[\.]js$/, ''); + + if(o1 < o2) return -1; + else if(o1 > o2) return 1; + // within a category: order lexicographically after stripping extension + else return (n1 < n2) ? -1 : 1; +} + +function srcOrder(fn) { + for(var i = 0; i < indexOrder.length; i++) { + if(fn.match(indexOrder[i])) return i; + } + throw new Error('no sort order found for file ' + fn); +} + +function srcInclude(fn) { + var i, + match = false; + for(i = 0; i < include.length; i++) { + if(fn.match(include[i])) { + match = true; + break; + } + } + if(!match) return false; + for(i = 0; i < exclude.length; i++) { + if(fn.match(exclude[i])) { + return false; + } + } + return true; +} + +subdirectories.forEach(function(subdir) { + fs.mkdirSync(distDir + subdir); +}); + +var srcFiles = fs.readdirSync(srcDir).filter(srcInclude).sort(srcSort); + +var headComment = fs.readFileSync('./head-comment.js', 'utf8'); + +var indexLines = []; + +srcFiles.forEach(function(fn) { + var fstr = fs.readFileSync(srcDir + fn, 'utf8'); + + var fnMap = outputOrder[srcOrder(fn)], + fnOut = fn.replace(fnMap.match, fnMap.out); + + // tabs to spaces + fstr = fstr.replace(/\t/g, ' '); + var lines = fstr.split(/\r?\n/); + + // generate the built source file + var parts = unwrapped(lines, fn), + header = parts.header.join(newLine), + body = translateBody(parts.body.join(newLine), fnOut), + footer = parts.footer.join(newLine), + outStr = [headComment, header, body, footer].join(newLine); + + // write this file and include it in the index in the right place + fs.writeFileSync(distDir + fnOut + '.js', outStr); + + if(fnMap.export) { + indexLines.push("module.exports = require('./" + fnOut + "');"); + } + else { + indexLines.push("require('./" + fnOut + "');") + } +}); + +fs.writeFileSync(distDir + indexFile, headComment + newLine + indexLines.join(newLine)); diff --git a/bin/config.json b/bin/config.json new file mode 100644 index 0000000..60e41f6 --- /dev/null +++ b/bin/config.json @@ -0,0 +1,88 @@ +{ + "srcDir": "../jquery-src/", + "distDir": "../dist/", + "indexFile": "index.js", + "include": ["^jquery[\\.]calendars.*[\\.]js$"], + "exclude": [ + "[\\.]min[\\.]js$", + "picker", + "validation", + "plugin", + "[\\.]all[\\.]js$", + "[\\.]lang[\\.]js$" + ], + "subdirectories": ["calendars", "regional"], + "outputOrder": [ + { + "match": "^(jquery[\\.]calendars[\\.]js)$", + "out": "main", + "export": true + }, + { + "match": "^(jquery[\\.]calendars[\\.]plus[\\.]js)$", + "out": "plus" + }, + { + "match": "^(jquery[\\.]calendars[\\.]([^\\.]+)[\\.]js)$", + "out": "calendars/$2" + }, + { + "match": "^(jquery[\\.]calendars-([^\\.]+)[\\.]js)$", + "out": "regional/$2" + } + ], + "unwrap": { + "start": "^\\s*\\(\\s*function\\s*\\(\\s*\\$\\s*\\)\\s*\\{\\s*(\\/\\/.*)?$", + "end": "^\\s*}\\s*\\)\\s*\\(\\s*jQuery\\s*\\);\\s*(\\/\\/.*)?$" + }, + "newLine": "\n", + "translate": [ + { + "from": "$.calendars.calendars.gregorian", + "to": "_gregorian", + "setup": [ + "var main = require('../main');", + "var _gregorian = main.calendars.gregorian;" + ], + "exclude": "^(main|plus)$" + }, + { + "from": "$.calendars.calendars.julian", + "to": "_julian", + "setup": [ + "var main = require('../main');", + "var _julian = main.calendars.julian;" + ], + "exclude": "^(main|plus|calendars\\/julian)$" + }, + { + "from": "$.calendars", + "to": "main", + "setup": ["var main = require('../main');"], + "exclude": "^(main|plus)$" + }, + { + "from": "$.calendars", + "to": "_exports", + "setup": [], + "include": "^main$" + }, + { + "from": "_exports = ", + "to": "var _exports = module.exports = ", + "setup": [], + "include": "^main$" + }, + { + "from": "$.extend", + "to": "assign", + "setup": ["var assign = require('object-assign');"] + }, + { + "from": "$.calendars", + "to": "main", + "setup": ["var main = require('./main');"], + "include": "^plus$" + } + ] +} \ No newline at end of file diff --git a/bin/head-comment.js b/bin/head-comment.js new file mode 100644 index 0000000..42731c6 --- /dev/null +++ b/bin/head-comment.js @@ -0,0 +1,10 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/dist/calendars/coptic.js b/dist/calendars/coptic.js new file mode 100644 index 0000000..84a96ec --- /dev/null +++ b/dist/calendars/coptic.js @@ -0,0 +1,182 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Coptic calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) February 2010. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the Coptic calendar. + See http://en.wikipedia.org/wiki/Coptic_calendar. + See also Calendrical Calculations: The Millennium Edition + (http://emr.cs.iit.edu/home/reingold/calendar-book/index.shtml). + @class CopticCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function CopticCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +CopticCalendar.prototype = new main.baseCalendar; + +assign(CopticCalendar.prototype, { + /** The calendar name. + @memberof CopticCalendar */ + name: 'Coptic', + /** Julian date of start of Coptic epoch: 29 August 284 CE (Gregorian). + @memberof CopticCalendar */ + jdEpoch: 1825029.5, + /** Days per month in a common year. + @memberof CopticCalendar */ + daysPerMonth: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5], + /** true if has a year zero, false if not. + @memberof CopticCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof CopticCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof CopticCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof CopticCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof CopticCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Coptic', + epochs: ['BAM', 'AM'], + monthNames: ['Thout', 'Paopi', 'Hathor', 'Koiak', 'Tobi', 'Meshir', + 'Paremhat', 'Paremoude', 'Pashons', 'Paoni', 'Epip', 'Mesori', 'Pi Kogi Enavot'], + monthNamesShort: ['Tho', 'Pao', 'Hath', 'Koi', 'Tob', 'Mesh', + 'Pat', 'Pad', 'Pash', 'Pao', 'Epi', 'Meso', 'PiK'], + dayNames: ['Tkyriaka', 'Pesnau', 'Pshoment', 'Peftoou', 'Ptiou', 'Psoou', 'Psabbaton'], + dayNamesShort: ['Tky', 'Pes', 'Psh', 'Pef', 'Pti', 'Pso', 'Psa'], + dayNamesMin: ['Tk', 'Pes', 'Psh', 'Pef', 'Pt', 'Pso', 'Psa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof CopticCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + var year = date.year() + (date.year() < 0 ? 1 : 0); // No year zero + return year % 4 === 3 || year % 4 === -1; + }, + + /** Retrieve the number of months in a year. + @memberof CopticCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of months. + @throws Error if an invalid year or a different calendar used. */ + monthsInYear: function(year) { + this._validate(year, this.minMonth, this.minDay, + main.local.invalidYear || main.regionalOptions[''].invalidYear); + return 13; + }, + + /** Determine the week of the year for a date. + @memberof CopticCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number) the month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Sunday of this week starting on Sunday + var checkDate = this.newDate(year, month, day); + checkDate.add(-checkDate.dayOfWeek(), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a month. + @memberof CopticCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, main.local.invalidMonth); + return this.daysPerMonth[date.month() - 1] + + (date.month() === 13 && this.leapYear(date.year()) ? 1 : 0); + }, + + /** Determine whether this date is a week day. + @memberof CopticCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param month {number} The month to examine. + @param day {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return (this.dayOfWeek(year, month, day) || 7) < 6; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof CopticCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number) the month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + year = date.year(); + if (year < 0) { year++; } // No year zero + return date.day() + (date.month() - 1) * 30 + + (year - 1) * 365 + Math.floor(year / 4) + this.jdEpoch - 1; + }, + + /** Create a new date from a Julian date. + @memberof CopticCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + var c = Math.floor(jd) + 0.5 - this.jdEpoch; + var year = Math.floor((c - Math.floor((c + 366) / 1461)) / 365) + 1; + if (year <= 0) { year--; } // No year zero + c = Math.floor(jd) + 0.5 - this.newDate(year, 1, 1).toJD(); + var month = Math.floor(c / 30) + 1; + var day = c - (month - 1) * 30 + 1; + return this.newDate(year, month, day); + } +}); + +// Coptic calendar implementation +main.calendars.coptic = CopticCalendar; + diff --git a/dist/calendars/discworld.js b/dist/calendars/discworld.js new file mode 100644 index 0000000..a936e12 --- /dev/null +++ b/dist/calendars/discworld.js @@ -0,0 +1,226 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Discworld calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) January 2016. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the Discworld calendar - Unseen University version. + See also http://wiki.lspace.org/mediawiki/Discworld_calendar + and http://discworld.wikia.com/wiki/Discworld_calendar. + @class DiscworldCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function DiscworldCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +DiscworldCalendar.prototype = new main.baseCalendar; + +assign(DiscworldCalendar.prototype, { + /** The calendar name. + @memberof DiscworldCalendar */ + name: 'Discworld', + /** Julian date of start of Discworld epoch: 1 January 0001 CE. + @memberof DiscworldCalendar */ + jdEpoch: 1721425.5, + /** Days per month in a common year. + @memberof DiscworldCalendar */ + daysPerMonth: [16, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32], + /** true if has a year zero, false if not. + @memberof DiscworldCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof DiscworldCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof DiscworldCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof DiscworldCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof DiscworldCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Discworld', + epochs: ['BUC', 'UC'], + monthNames: ['Ick', 'Offle', 'February', 'March', 'April', 'May', 'June', + 'Grune', 'August', 'Spune', 'Sektober', 'Ember', 'December'], + monthNamesShort: ['Ick', 'Off', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Gru', 'Aug', 'Spu', 'Sek', 'Emb', 'Dec'], + dayNames: ['Sunday', 'Octeday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Oct', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su', 'Oc', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + digits: null, + dateFormat: 'yyyy/mm/dd', + firstDay: 2, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof DiscworldCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return false; + }, + + /** Retrieve the number of months in a year. + @memberof DiscworldCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of months. + @throws Error if an invalid year or a different calendar used. */ + monthsInYear: function(year) { + this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return 13; + }, + + /** Retrieve the number of days in a year. + @memberof DiscworldCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of days. + @throws Error if an invalid year or a different calendar used. */ + daysInYear: function(year) { + this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return 400; + }, + + /** Determine the week of the year for a date. + @memberof DiscworldCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Sunday of this week starting on Sunday + var checkDate = this.newDate(year, month, day); + checkDate.add(-checkDate.dayOfWeek(), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 8) + 1; + }, + + /** Retrieve the number of days in a month. + @memberof DiscworldCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, main.local.invalidMonth); + return this.daysPerMonth[date.month() - 1]; + }, + + /** Retrieve the number of days in a week. + @memberof DiscworldCalendar + @return {number} The number of days. */ + daysInWeek: function() { + return 8; + }, + + /** Retrieve the day of the week for a date. + @memberof DiscworldCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The day of the week: 0 to number of days - 1. + @throws Error if an invalid date or a different calendar used. */ + dayOfWeek: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + return (date.day() + 1) % 8; + }, + + /** Determine whether this date is a week day. + @memberof DiscworldCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + var dow = this.dayOfWeek(year, month, day); + return (dow >= 2 && dow <= 6); + }, + + /** Retrieve additional information about a date. + @memberof DiscworldCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {object} Additional information - contents depends on calendar. + @throws Error if an invalid date or a different calendar used. */ + extraInfo: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + return {century: centuries[Math.floor((date.year() - 1) / 100) + 1] || ''}; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof DiscworldCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + year = date.year() + (date.year() < 0 ? 1 : 0); + month = date.month(); + day = date.day(); + return day + (month > 1 ? 16 : 0) + (month > 2 ? (month - 2) * 32 : 0) + + (year - 1) * 400 + this.jdEpoch - 1; + }, + + /** Create a new date from a Julian date. + @memberof DiscworldCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + jd = Math.floor(jd + 0.5) - Math.floor(this.jdEpoch) - 1; + var year = Math.floor(jd / 400) + 1; + jd -= (year - 1) * 400; + jd += (jd > 15 ? 16 : 0); + var month = Math.floor(jd / 32) + 1; + var day = jd - (month - 1) * 32 + 1; + return this.newDate(year <= 0 ? year - 1 : year, month, day); + } +}); + +// Names of the centuries +var centuries = { + 20: 'Fruitbat', + 21: 'Anchovy' +}; + +// Discworld calendar implementation +main.calendars.discworld = DiscworldCalendar; + diff --git a/dist/calendars/ethiopian-am.js b/dist/calendars/ethiopian-am.js new file mode 100644 index 0000000..6fd981e --- /dev/null +++ b/dist/calendars/ethiopian-am.js @@ -0,0 +1,31 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Amharic localisation for Ethiopian calendar for jQuery v2.0.2. + Written by Tewodros Zena February 2010. */ +var main = require('../main'); + +main.calendars.ethiopian.prototype.regionalOptions['am'] = { + name: 'የኢትዮጵያ ዘመን አቆጣጠር', + epochs: ['BEE', 'EE'], + monthNames: ['መስከረም', 'ጥቅምት', 'ኅዳር', 'ታህሣሥ', 'ጥር', 'የካቲት', + 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰኔ', 'ሐምሌ', 'ነሐሴ', 'ጳጉሜ'], + monthNamesShort: ['መስከ', 'ጥቅም', 'ኅዳር', 'ታህሣ', 'ጥር', 'የካቲ', + 'መጋቢ', 'ሚያዝ', 'ግንቦ', 'ሰኔ', 'ሐምሌ', 'ነሐሴ', 'ጳጉሜ'], + dayNames: ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሓሙስ', 'ዓርብ', 'ቅዳሜ'], + dayNamesShort: ['እሑድ', 'ሰኞ', 'ማክሰ', 'ረቡዕ', 'ሓሙስ', 'ዓርብ', 'ቅዳሜ'], + dayNamesMin: ['እሑ', 'ሰኞ', 'ማክ', 'ረቡ', 'ሐሙ', 'ዓር', 'ቅዳ'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; diff --git a/dist/calendars/ethiopian.js b/dist/calendars/ethiopian.js new file mode 100644 index 0000000..750f8fc --- /dev/null +++ b/dist/calendars/ethiopian.js @@ -0,0 +1,182 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Ethiopian calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) February 2010. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the Ethiopian calendar. + See http://en.wikipedia.org/wiki/Ethiopian_calendar. + See also Calendrical Calculations: The Millennium Edition + (http://emr.cs.iit.edu/home/reingold/calendar-book/index.shtml). + @class EthiopianCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function EthiopianCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +EthiopianCalendar.prototype = new main.baseCalendar; + +assign(EthiopianCalendar.prototype, { + /** The calendar name. + @memberof EthiopianCalendar */ + name: 'Ethiopian', + /** Julian date of start of Ethiopian epoch: 27 August 8 CE (Gregorian). + @memberof EthiopianCalendar */ + jdEpoch: 1724220.5, + /** Days per month in a common year. + @memberof EthiopianCalendar */ + daysPerMonth: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5], + /** true if has a year zero, false if not. + @memberof EthiopianCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof EthiopianCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof EthiopianCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof EthiopianCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof EthiopianCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Ethiopian', + epochs: ['BEE', 'EE'], + monthNames: ['Meskerem', 'Tikemet', 'Hidar', 'Tahesas', 'Tir', 'Yekatit', + 'Megabit', 'Miazia', 'Genbot', 'Sene', 'Hamle', 'Nehase', 'Pagume'], + monthNamesShort: ['Mes', 'Tik', 'Hid', 'Tah', 'Tir', 'Yek', + 'Meg', 'Mia', 'Gen', 'Sen', 'Ham', 'Neh', 'Pag'], + dayNames: ['Ehud', 'Segno', 'Maksegno', 'Irob', 'Hamus', 'Arb', 'Kidame'], + dayNamesShort: ['Ehu', 'Seg', 'Mak', 'Iro', 'Ham', 'Arb', 'Kid'], + dayNamesMin: ['Eh', 'Se', 'Ma', 'Ir', 'Ha', 'Ar', 'Ki'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof EthiopianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + var year = date.year() + (date.year() < 0 ? 1 : 0); // No year zero + return year % 4 === 3 || year % 4 === -1; + }, + + /** Retrieve the number of months in a year. + @memberof EthiopianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of months. + @throws Error if an invalid year or a different calendar used. */ + monthsInYear: function(year) { + this._validate(year, this.minMonth, this.minDay, + main.local.invalidYear || main.regionalOptions[''].invalidYear); + return 13; + }, + + /** Determine the week of the year for a date. + @memberof EthiopianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Sunday of this week starting on Sunday + var checkDate = this.newDate(year, month, day); + checkDate.add(-checkDate.dayOfWeek(), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a month. + @memberof EthiopianCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, main.local.invalidMonth); + return this.daysPerMonth[date.month() - 1] + + (date.month() === 13 && this.leapYear(date.year()) ? 1 : 0); + }, + + /** Determine whether this date is a week day. + @memberof EthiopianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return (this.dayOfWeek(year, month, day) || 7) < 6; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof EthiopianCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + year = date.year(); + if (year < 0) { year++; } // No year zero + return date.day() + (date.month() - 1) * 30 + + (year - 1) * 365 + Math.floor(year / 4) + this.jdEpoch - 1; + }, + + /** Create a new date from a Julian date. + @memberof EthiopianCalendar + @param jd {number} the Julian date to convert. + @return {CDate} the equivalent date. */ + fromJD: function(jd) { + var c = Math.floor(jd) + 0.5 - this.jdEpoch; + var year = Math.floor((c - Math.floor((c + 366) / 1461)) / 365) + 1; + if (year <= 0) { year--; } // No year zero + c = Math.floor(jd) + 0.5 - this.newDate(year, 1, 1).toJD(); + var month = Math.floor(c / 30) + 1; + var day = c - (month - 1) * 30 + 1; + return this.newDate(year, month, day); + } +}); + +// Ethiopian calendar implementation +main.calendars.ethiopian = EthiopianCalendar; + diff --git a/dist/calendars/hebrew-he.js b/dist/calendars/hebrew-he.js new file mode 100644 index 0000000..34aae28 --- /dev/null +++ b/dist/calendars/hebrew-he.js @@ -0,0 +1,31 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Hebrew localisation for Hebrew calendar for jQuery v2.0.2. + Amir Hardon (ahardon at gmail dot com). */ +var main = require('../main'); + +main.calendars.hebrew.prototype.regionalOptions['he'] = { + name: 'הלוח העברי', + epochs: ['BAM', 'AM'], + monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני', + 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'], + monthNamesShort: ['1','2','3','4','5','6', + '7','8','9','10','11','12'], + dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'], + dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], + dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: true +}; diff --git a/dist/calendars/hebrew.js b/dist/calendars/hebrew.js new file mode 100644 index 0000000..e1f7d1c --- /dev/null +++ b/dist/calendars/hebrew.js @@ -0,0 +1,272 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Hebrew calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the Hebrew civil calendar. + Based on code from http://www.fourmilab.ch/documents/calendar/. + See also http://en.wikipedia.org/wiki/Hebrew_calendar. + @class HebrewCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function HebrewCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +HebrewCalendar.prototype = new main.baseCalendar; + +assign(HebrewCalendar.prototype, { + /** The calendar name. + @memberof HebrewCalendar */ + name: 'Hebrew', + /** Julian date of start of Hebrew epoch: 7 October 3761 BCE. + @memberof HebrewCalendar */ + jdEpoch: 347995.5, + /** Days per month in a common year. + @memberof HebrewCalendar */ + daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 29], + /** true if has a year zero, false if not. + @memberof HebrewCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof HebrewCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof HebrewCalendar */ + firstMonth: 7, + /** The minimum day number. + @memberof HebrewCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof HebrewCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Hebrew', + epochs: ['BAM', 'AM'], + monthNames: ['Nisan', 'Iyar', 'Sivan', 'Tammuz', 'Av', 'Elul', + 'Tishrei', 'Cheshvan', 'Kislev', 'Tevet', 'Shevat', 'Adar', 'Adar II'], + monthNamesShort: ['Nis', 'Iya', 'Siv', 'Tam', 'Av', 'Elu', 'Tis', 'Che', 'Kis', 'Tev', 'She', 'Ada', 'Ad2'], + dayNames: ['Yom Rishon', 'Yom Sheni', 'Yom Shlishi', 'Yom Revi\'i', 'Yom Chamishi', 'Yom Shishi', 'Yom Shabbat'], + dayNamesShort: ['Ris', 'She', 'Shl', 'Rev', 'Cha', 'Shi', 'Sha'], + dayNamesMin: ['Ri','She','Shl','Re','Ch','Shi','Sha'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof HebrewCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return this._leapYear(date.year()); + }, + + /** Determine whether this date is in a leap year. + @memberof HebrewCalendar + @private + @param year {number} The year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + _leapYear: function(year) { + year = (year < 0 ? year + 1 : year); + return mod(year * 7 + 1, 19) < 7; + }, + + /** Retrieve the number of months in a year. + @memberof HebrewCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of months. + @throws Error if an invalid year or a different calendar used. */ + monthsInYear: function(year) { + this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return this._leapYear(year.year ? year.year() : year) ? 13 : 12; + }, + + /** Determine the week of the year for a date. + @memberof HebrewCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Sunday of this week starting on Sunday + var checkDate = this.newDate(year, month, day); + checkDate.add(-checkDate.dayOfWeek(), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a year. + @memberof HebrewCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of days. + @throws Error if an invalid year or a different calendar used. */ + daysInYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + year = date.year(); + return this.toJD((year === -1 ? +1 : year + 1), 7, 1) - this.toJD(year, 7, 1); + }, + + /** Retrieve the number of days in a month. + @memberof HebrewCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + if (year.year) { + month = year.month(); + year = year.year(); + } + this._validate(year, month, this.minDay, main.local.invalidMonth); + return (month === 12 && this.leapYear(year) ? 30 : // Adar I + (month === 8 && mod(this.daysInYear(year), 10) === 5 ? 30 : // Cheshvan in shlemah year + (month === 9 && mod(this.daysInYear(year), 10) === 3 ? 29 : // Kislev in chaserah year + this.daysPerMonth[month - 1]))); + }, + + /** Determine whether this date is a week day. + @memberof HebrewCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return this.dayOfWeek(year, month, day) !== 6; + }, + + /** Retrieve additional information about a date - year type. + @memberof HebrewCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {object} Additional information - contents depends on calendar. + @throws Error if an invalid date or a different calendar used. */ + extraInfo: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + return {yearType: (this.leapYear(date) ? 'embolismic' : 'common') + ' ' + + ['deficient', 'regular', 'complete'][this.daysInYear(date) % 10 - 3]}; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof HebrewCalendar + @param year {CDate)|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + year = date.year(); + month = date.month(); + day = date.day(); + var adjYear = (year <= 0 ? year + 1 : year); + var jd = this.jdEpoch + this._delay1(adjYear) + + this._delay2(adjYear) + day + 1; + if (month < 7) { + for (var m = 7; m <= this.monthsInYear(year); m++) { + jd += this.daysInMonth(year, m); + } + for (var m = 1; m < month; m++) { + jd += this.daysInMonth(year, m); + } + } + else { + for (var m = 7; m < month; m++) { + jd += this.daysInMonth(year, m); + } + } + return jd; + }, + + /** Test for delay of start of new year and to avoid + Sunday, Wednesday, or Friday as start of the new year. + @memberof HebrewCalendar + @private + @param year {number} The year to examine. + @return {number} The days to offset by. */ + _delay1: function(year) { + var months = Math.floor((235 * year - 234) / 19); + var parts = 12084 + 13753 * months; + var day = months * 29 + Math.floor(parts / 25920); + if (mod(3 * (day + 1), 7) < 3) { + day++; + } + return day; + }, + + /** Check for delay in start of new year due to length of adjacent years. + @memberof HebrewCalendar + @private + @param year {number} The year to examine. + @return {number} The days to offset by. */ + _delay2: function(year) { + var last = this._delay1(year - 1); + var present = this._delay1(year); + var next = this._delay1(year + 1); + return ((next - present) === 356 ? 2 : ((present - last) === 382 ? 1 : 0)); + }, + + /** Create a new date from a Julian date. + @memberof HebrewCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + jd = Math.floor(jd) + 0.5; + var year = Math.floor(((jd - this.jdEpoch) * 98496.0) / 35975351.0) - 1; + while (jd >= this.toJD((year === -1 ? +1 : year + 1), 7, 1)) { + year++; + } + var month = (jd < this.toJD(year, 1, 1)) ? 7 : 1; + while (jd > this.toJD(year, month, this.daysInMonth(year, month))) { + month++; + } + var day = jd - this.toJD(year, month, 1) + 1; + return this.newDate(year, month, day); + } +}); + +// Modulus function which works for non-integers. +function mod(a, b) { + return a - (b * Math.floor(a / b)); +} + +// Hebrew calendar implementation +main.calendars.hebrew = HebrewCalendar; + diff --git a/dist/calendars/islamic-ar.js b/dist/calendars/islamic-ar.js new file mode 100644 index 0000000..b4093da --- /dev/null +++ b/dist/calendars/islamic-ar.js @@ -0,0 +1,31 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Arabic localisation for Islamic calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. */ +var main = require('../main'); + +main.calendars.islamic.prototype.regionalOptions['ar'] = { + name: 'Islamic', + epochs: ['BAM', 'AM'], + monthNames: ['محرّم', 'صفر', 'ربيع الأول', 'ربيع الآخر أو ربيع الثاني', 'جمادى الاول', 'جمادى الآخر أو جمادى الثاني', + 'رجب', 'شعبان', 'رمضان', 'شوّال', 'ذو القعدة', 'ذو الحجة'], + monthNamesShort: ['محرّم', 'صفر', 'ربيع الأول', 'ربيع الآخر أو ربيع الثاني', 'جمادى الاول', 'جمادى الآخر أو جمادى الثاني', + 'رجب', 'شعبان', 'رمضان', 'شوّال', 'ذو القعدة', 'ذو الحجة'], + dayNames: ['يوم الأحد', 'يوم الإثنين', 'يوم الثلاثاء', 'يوم الأربعاء', 'يوم الخميس', 'يوم الجمعة', 'يوم السبت'], + dayNamesShort: ['يوم الأحد', 'يوم الإثنين', 'يوم الثلاثاء', 'يوم الأربعاء', 'يوم الخميس', 'يوم الجمعة', 'يوم السبت'], + dayNamesMin: ['يوم الأحد', 'يوم الإثنين', 'يوم الثلاثاء', 'يوم الأربعاء', 'يوم الخميس', 'يوم الجمعة', 'يوم السبت'], + digits: main.substituteDigits(['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩']), + dateFormat: 'yyyy/mm/dd', + firstDay: 6, + isRTL: true +}; diff --git a/dist/calendars/islamic-fa.js b/dist/calendars/islamic-fa.js new file mode 100644 index 0000000..978c56a --- /dev/null +++ b/dist/calendars/islamic-fa.js @@ -0,0 +1,31 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Farsi/Persian localisation for Islamic calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. */ +var main = require('../main'); + +main.calendars.islamic.prototype.regionalOptions['fa'] = { + name: 'Islamic', + epochs: ['BAM', 'AM'], + monthNames: ['محرّم', 'صفر', 'ربيع الأول', 'ربيع الآخر أو ربيع الثاني', 'جمادى الاول', 'جمادى الآخر أو جمادى الثاني', + 'رجب', 'شعبان', 'رمضان', 'شوّال', 'ذو القعدة', 'ذو الحجة'], + monthNamesShort: ['محرّم', 'صفر', 'ربيع الأول', 'ربيع الآخر أو ربيع الثاني', 'جمادى الاول', 'جمادى الآخر أو جمادى الثاني', + 'رجب', 'شعبان', 'رمضان', 'شوّال', 'ذو القعدة', 'ذو الحجة'], + dayNames: ['يوم الأحد', 'يوم الإثنين', 'يوم الثلاثاء', 'يوم الأربعاء', 'يوم الخميس', 'يوم الجمعة', 'يوم السبت'], + dayNamesShort: ['يوم الأحد', 'يوم الإثنين', 'يوم الثلاثاء', 'يوم الأربعاء', 'يوم الخميس', 'يوم الجمعة', 'يوم السبت'], + dayNamesMin: ['يوم الأحد', 'يوم الإثنين', 'يوم الثلاثاء', 'يوم الأربعاء', 'يوم الخميس', 'يوم الجمعة', 'يوم السبت'], + digits: main.substituteDigits(['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']), + dateFormat: 'yyyy/mm/dd', + firstDay: 6, + isRTL: true +}; diff --git a/dist/calendars/islamic.js b/dist/calendars/islamic.js new file mode 100644 index 0000000..2907b28 --- /dev/null +++ b/dist/calendars/islamic.js @@ -0,0 +1,179 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Islamic calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the Islamic or '16 civil' calendar. + Based on code from http://www.iranchamber.com/calendar/converter/iranian_calendar_converter.php. + See also http://en.wikipedia.org/wiki/Islamic_calendar. + @class IslamicCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function IslamicCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +IslamicCalendar.prototype = new main.baseCalendar; + +assign(IslamicCalendar.prototype, { + /** The calendar name. + @memberof IslamicCalendar */ + name: 'Islamic', + /** Julian date of start of Islamic epoch: 16 July 622 CE. + @memberof IslamicCalendar */ + jdEpoch: 1948439.5, + /** Days per month in a common year. + @memberof IslamicCalendar */ + daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29], + /** true if has a year zero, false if not. + @memberof IslamicCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof IslamicCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof IslamicCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof IslamicCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof IslamicCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Islamic', + epochs: ['BH', 'AH'], + monthNames: ['Muharram', 'Safar', 'Rabi\' al-awwal', 'Rabi\' al-thani', 'Jumada al-awwal', 'Jumada al-thani', + 'Rajab', 'Sha\'aban', 'Ramadan', 'Shawwal', 'Dhu al-Qi\'dah', 'Dhu al-Hijjah'], + monthNamesShort: ['Muh', 'Saf', 'Rab1', 'Rab2', 'Jum1', 'Jum2', 'Raj', 'Sha\'', 'Ram', 'Shaw', 'DhuQ', 'DhuH'], + dayNames: ['Yawm al-ahad', 'Yawm al-ithnayn', 'Yawm ath-thulaathaa\'', + 'Yawm al-arbi\'aa\'', 'Yawm al-khamīs', 'Yawm al-jum\'a', 'Yawm as-sabt'], + dayNamesShort: ['Aha', 'Ith', 'Thu', 'Arb', 'Kha', 'Jum', 'Sab'], + dayNamesMin: ['Ah','It','Th','Ar','Kh','Ju','Sa'], + digits: null, + dateFormat: 'yyyy/mm/dd', + firstDay: 6, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof IslamicCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return (date.year() * 11 + 14) % 30 < 11; + }, + + /** Determine the week of the year for a date. + @memberof IslamicCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Sunday of this week starting on Sunday + var checkDate = this.newDate(year, month, day); + checkDate.add(-checkDate.dayOfWeek(), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a year. + @memberof IslamicCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of days. + @throws Error if an invalid year or a different calendar used. */ + daysInYear: function(year) { + return (this.leapYear(year) ? 355 : 354); + }, + + /** Retrieve the number of days in a month. + @memberof IslamicCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, main.local.invalidMonth); + return this.daysPerMonth[date.month() - 1] + + (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0); + }, + + /** Determine whether this date is a week day. + @memberof IslamicCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return this.dayOfWeek(year, month, day) !== 5; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof IslamicCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + year = date.year(); + month = date.month(); + day = date.day(); + year = (year <= 0 ? year + 1 : year); + return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 + + Math.floor((3 + (11 * year)) / 30) + this.jdEpoch - 1; + }, + + /** Create a new date from a Julian date. + @memberof IslamicCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + jd = Math.floor(jd) + 0.5; + var year = Math.floor((30 * (jd - this.jdEpoch) + 10646) / 10631); + year = (year <= 0 ? year - 1 : year); + var month = Math.min(12, Math.ceil((jd - 29 - this.toJD(year, 1, 1)) / 29.5) + 1); + var day = jd - this.toJD(year, month, 1) + 1; + return this.newDate(year, month, day); + } +}); + +// Islamic (16 civil) calendar implementation +main.calendars.islamic = IslamicCalendar; + diff --git a/dist/calendars/julian.js b/dist/calendars/julian.js new file mode 100644 index 0000000..82847cd --- /dev/null +++ b/dist/calendars/julian.js @@ -0,0 +1,181 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Julian calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the Julian calendar. + Based on code from http://www.fourmilab.ch/documents/calendar/. + See also http://en.wikipedia.org/wiki/Julian_calendar. + @class JulianCalendar + @augments BaseCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function JulianCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +JulianCalendar.prototype = new main.baseCalendar; + +assign(JulianCalendar.prototype, { + /** The calendar name. + @memberof JulianCalendar */ + name: 'Julian', + /** Julian date of start of Julian epoch: 1 January 0001 AD = 30 December 0001 BCE. + @memberof JulianCalendar */ + jdEpoch: 1721423.5, + /** Days per month in a common year. + @memberof JulianCalendar */ + daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + /** true if has a year zero, false if not. + @memberof JulianCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof JulianCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof JulianCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof JulianCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof JulianCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Julian', + epochs: ['BC', 'AD'], + monthNames: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + digits: null, + dateFormat: 'mm/dd/yyyy', + firstDay: 0, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof JulianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + var year = (date.year() < 0 ? date.year() + 1 : date.year()); // No year zero + return (year % 4) === 0; + }, + + /** Determine the week of the year for a date - ISO 8601. + @memberof JulianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Thursday of this week starting on Monday + var checkDate = this.newDate(year, month, day); + checkDate.add(4 - (checkDate.dayOfWeek() || 7), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a month. + @memberof JulianCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, main.local.invalidMonth); + return this.daysPerMonth[date.month() - 1] + + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0); + }, + + /** Determine whether this date is a week day. + @memberof JulianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} True if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return (this.dayOfWeek(year, month, day) || 7) < 6; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof JulianCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + year = date.year(); + month = date.month(); + day = date.day(); + if (year < 0) { year++; } // No year zero + // Jean Meeus algorithm, "Astronomical Algorithms", 1991 + if (month <= 2) { + year--; + month += 12; + } + return Math.floor(365.25 * (year + 4716)) + + Math.floor(30.6001 * (month + 1)) + day - 1524.5; + }, + + /** Create a new date from a Julian date. + @memberof JulianCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + // Jean Meeus algorithm, "Astronomical Algorithms", 1991 + var a = Math.floor(jd + 0.5); + var b = a + 1524; + var c = Math.floor((b - 122.1) / 365.25); + var d = Math.floor(365.25 * c); + var e = Math.floor((b - d) / 30.6001); + var month = e - Math.floor(e < 14 ? 1 : 13); + var year = c - Math.floor(month > 2 ? 4716 : 4715); + var day = b - d - Math.floor(30.6001 * e); + if (year <= 0) { year--; } // No year zero + return this.newDate(year, month, day); + } +}); + +// Julian calendar implementation +main.calendars.julian = JulianCalendar; + diff --git a/dist/calendars/mayan.js b/dist/calendars/mayan.js new file mode 100644 index 0000000..e15776c --- /dev/null +++ b/dist/calendars/mayan.js @@ -0,0 +1,293 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Mayan calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the Mayan Long Count calendar. + See also http://en.wikipedia.org/wiki/Mayan_calendar. + @class MayanCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function MayanCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +MayanCalendar.prototype = new main.baseCalendar; + +assign(MayanCalendar.prototype, { + /** The calendar name. + @memberof MayanCalendar */ + name: 'Mayan', + /** Julian date of start of Mayan epoch: 11 August 3114 BCE. + @memberof MayanCalendar */ + jdEpoch: 584282.5, + /** true if has a year zero, false if not. + @memberof MayanCalendar */ + hasYearZero: true, + /** The minimum month number. + @memberof MayanCalendar */ + minMonth: 0, + /** The first month in the year. + @memberof MayanCalendar */ + firstMonth: 0, + /** The minimum day number. + @memberof MayanCalendar */ + minDay: 0, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof MayanCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. + @property haabMonths {string[]} The names of the Haab months. + @property tzolkinMonths {string[]} The names of the Tzolkin months. */ + regionalOptions: { // Localisations + '': { + name: 'Mayan', + epochs: ['', ''], + monthNames: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + '10', '11', '12', '13', '14', '15', '16', '17'], + monthNamesShort: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + '10', '11', '12', '13', '14', '15', '16', '17'], + dayNames: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + '10', '11', '12', '13', '14', '15', '16', '17', '18', '19'], + dayNamesShort: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + '10', '11', '12', '13', '14', '15', '16', '17', '18', '19'], + dayNamesMin: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + '10', '11', '12', '13', '14', '15', '16', '17', '18', '19'], + digits: null, + dateFormat: 'YYYY.m.d', + firstDay: 0, + isRTL: false, + haabMonths: ['Pop', 'Uo', 'Zip', 'Zotz', 'Tzec', 'Xul', 'Yaxkin', 'Mol', 'Chen', 'Yax', + 'Zac', 'Ceh', 'Mac', 'Kankin', 'Muan', 'Pax', 'Kayab', 'Cumku', 'Uayeb'], + tzolkinMonths: ['Imix', 'Ik', 'Akbal', 'Kan', 'Chicchan', 'Cimi', 'Manik', 'Lamat', 'Muluc', 'Oc', + 'Chuen', 'Eb', 'Ben', 'Ix', 'Men', 'Cib', 'Caban', 'Etznab', 'Cauac', 'Ahau'] + } + }, + + /** Determine whether this date is in a leap year. + @memberof MayanCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return false; + }, + + /** Format the year, if not a simple sequential number. + @memberof MayanCalendar + @param year {CDate|number} The date to format or the year to format. + @return {string} The formatted year. + @throws Error if an invalid year or a different calendar used. */ + formatYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + year = date.year(); + var baktun = Math.floor(year / 400); + year = year % 400; + year += (year < 0 ? 400 : 0); + var katun = Math.floor(year / 20); + return baktun + '.' + katun + '.' + (year % 20); + }, + + /** Convert from the formatted year back to a single number. + @memberof MayanCalendar + @param years {string} The year as n.n.n. + @return {number} The sequential year. + @throws Error if an invalid value is supplied. */ + forYear: function(years) { + years = years.split('.'); + if (years.length < 3) { + throw 'Invalid Mayan year'; + } + var year = 0; + for (var i = 0; i < years.length; i++) { + var y = parseInt(years[i], 10); + if (Math.abs(y) > 19 || (i > 0 && y < 0)) { + throw 'Invalid Mayan year'; + } + year = year * 20 + y; + } + return year; + }, + + /** Retrieve the number of months in a year. + @memberof MayanCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of months. + @throws Error if an invalid year or a different calendar used. */ + monthsInYear: function(year) { + this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return 18; + }, + + /** Determine the week of the year for a date. + @memberof MayanCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + this._validate(year, month, day, main.local.invalidDate); + return 0; + }, + + /** Retrieve the number of days in a year. + @memberof MayanCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of days. + @throws Error if an invalid year or a different calendar used. */ + daysInYear: function(year) { + this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return 360; + }, + + /** Retrieve the number of days in a month. + @memberof MayanCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + this._validate(year, month, this.minDay, main.local.invalidMonth); + return 20; + }, + + /** Retrieve the number of days in a week. + @memberof MayanCalendar + @return {number} The number of days. */ + daysInWeek: function() { + return 5; // Just for formatting + }, + + /** Retrieve the day of the week for a date. + @memberof MayanCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The day of the week: 0 to number of days - 1. + @throws Error if an invalid date or a different calendar used. */ + dayOfWeek: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + return date.day(); + }, + + /** Determine whether this date is a week day. + @memberof MayanCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + this._validate(year, month, day, main.local.invalidDate); + return true; + }, + + /** Retrieve additional information about a date - Haab and Tzolkin equivalents. + @memberof MayanCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {object} Additional information - contents depends on calendar. + @throws Error if an invalid date or a different calendar used. */ + extraInfo: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + var jd = date.toJD(); + var haab = this._toHaab(jd); + var tzolkin = this._toTzolkin(jd); + return {haabMonthName: this.local.haabMonths[haab[0] - 1], + haabMonth: haab[0], haabDay: haab[1], + tzolkinDayName: this.local.tzolkinMonths[tzolkin[0] - 1], + tzolkinDay: tzolkin[0], tzolkinTrecena: tzolkin[1]}; + }, + + /** Retrieve Haab date from a Julian date. + @memberof MayanCalendar + @private + @param jd {number} The Julian date. + @return {number[]} Corresponding Haab month and day. */ + _toHaab: function(jd) { + jd -= this.jdEpoch; + var day = mod(jd + 8 + ((18 - 1) * 20), 365); + return [Math.floor(day / 20) + 1, mod(day, 20)]; + }, + + /** Retrieve Tzolkin date from a Julian date. + @memberof MayanCalendar + @private + @param jd {number} The Julian date. + @return {number[]} Corresponding Tzolkin day and trecena. */ + _toTzolkin: function(jd) { + jd -= this.jdEpoch; + return [amod(jd + 20, 20), amod(jd + 4, 13)]; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof MayanCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + return date.day() + (date.month() * 20) + (date.year() * 360) + this.jdEpoch; + }, + + /** Create a new date from a Julian date. + @memberof MayanCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + jd = Math.floor(jd) + 0.5 - this.jdEpoch; + var year = Math.floor(jd / 360); + jd = jd % 360; + jd += (jd < 0 ? 360 : 0); + var month = Math.floor(jd / 20); + var day = jd % 20; + return this.newDate(year, month, day); + } +}); + +// Modulus function which works for non-integers. +function mod(a, b) { + return a - (b * Math.floor(a / b)); +} + +// Modulus function which returns numerator if modulus is zero. +function amod(a, b) { + return mod(a - 1, b) + 1; +} + +// Mayan calendar implementation +main.calendars.mayan = MayanCalendar; + diff --git a/dist/calendars/nanakshahi-pa.js b/dist/calendars/nanakshahi-pa.js new file mode 100644 index 0000000..260e22c --- /dev/null +++ b/dist/calendars/nanakshahi-pa.js @@ -0,0 +1,29 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Punjabi localisation for Nanakshahi calendar for jQuery v2.0.2. + Written by Sarbjit Singh January 2016. */ +var main = require('../main'); + +main.calendars.nanakshahi.prototype.regionalOptions['pa'] = { + name: 'Nanakshahi', + epochs: ['BN', 'AN'], + monthNames: ['ਚੇਤ', 'ਵੈਸਾਖ', 'ਜੇਠ', 'ਹਾੜ', 'ਸਾਵਣ', 'ਭਾਦੋਂ', 'ਅੱਸੂ', 'ਕੱਤਕ', 'ਮੱਘਰ', 'ਪੋਹ', 'ਮਾਘ', 'ਫੱਗਣ'], + monthNamesShort: ['ਚੇ', 'ਵੈ', 'ਜੇ', 'ਹਾ', 'ਸਾ', 'ਭਾ', 'ਅੱ', 'ਕੱ', 'ਮੱ', 'ਪੋ', 'ਮਾ', 'ਫੱ'], + dayNames: ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', 'ਬੁੱਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨਿੱਚਰਵਾਰ'], + dayNamesShort: ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁੱਧ', 'ਵੀਰ', 'ਸ਼ੁੱਕਰ', 'ਸ਼ਨਿੱਚਰ'], + dayNamesMin: ['ਐ', 'ਸੋ', 'ਮੰ', 'ਬੁੱ', 'ਵੀ', 'ਸ਼ੁੱ', 'ਸ਼'], + digits: main.substituteDigits(['੦', '੧', '੨', '੩', '੪', '੫', '੬', '੭', '੮', '੯']), + dateFormat: 'dd-mm-yyyy', + firstDay: 0, + isRTL: false +}; diff --git a/dist/calendars/nanakshahi.js b/dist/calendars/nanakshahi.js new file mode 100644 index 0000000..2ae6bd6 --- /dev/null +++ b/dist/calendars/nanakshahi.js @@ -0,0 +1,178 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Nanakshahi calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) January 2016. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the Nanakshahi calendar. + See also https://en.wikipedia.org/wiki/Nanakshahi_calendar. + @class NanakshahiCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function NanakshahiCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +NanakshahiCalendar.prototype = new main.baseCalendar; + +var gregorian = main.instance('gregorian'); + +assign(NanakshahiCalendar.prototype, { + /** The calendar name. + @memberof NanakshahiCalendar */ + name: 'Nanakshahi', + /** Julian date of start of Nanakshahi epoch: 14 March 1469 CE. + @memberof NanakshahiCalendar */ + jdEpoch: 2257673.5, + /** Days per month in a common year. + @memberof NanakshahiCalendar */ + daysPerMonth: [31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30], + /** true if has a year zero, false if not. + @memberof NanakshahiCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof NanakshahiCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof NanakshahiCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof NanakshahiCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof NanakshahiCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Nanakshahi', + epochs: ['BN', 'AN'], + monthNames: ['Chet', 'Vaisakh', 'Jeth', 'Harh', 'Sawan', 'Bhadon', + 'Assu', 'Katak', 'Maghar', 'Poh', 'Magh', 'Phagun'], + monthNamesShort: ['Che', 'Vai', 'Jet', 'Har', 'Saw', 'Bha', 'Ass', 'Kat', 'Mgr', 'Poh', 'Mgh', 'Pha'], + dayNames: ['Somvaar', 'Mangalvar', 'Budhvaar', 'Veervaar', 'Shukarvaar', 'Sanicharvaar', 'Etvaar'], + dayNamesShort: ['Som', 'Mangal', 'Budh', 'Veer', 'Shukar', 'Sanichar', 'Et'], + dayNamesMin: ['So', 'Ma', 'Bu', 'Ve', 'Sh', 'Sa', 'Et'], + digits: null, + dateFormat: 'dd-mm-yyyy', + firstDay: 0, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof NanakshahiCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, + main.local.invalidYear || main.regionalOptions[''].invalidYear); + return gregorian.leapYear(date.year() + (date.year() < 1 ? 1 : 0) + 1469); + }, + + /** Determine the week of the year for a date. + @memberof NanakshahiCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Monday of this week starting on Monday + var checkDate = this.newDate(year, month, day); + checkDate.add(1 - (checkDate.dayOfWeek() || 7), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a month. + @memberof NanakshahiCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, main.local.invalidMonth); + return this.daysPerMonth[date.month() - 1] + + (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0); + }, + + /** Determine whether this date is a week day. + @memberof NanakshahiCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return (this.dayOfWeek(year, month, day) || 7) < 6; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof NanakshahiCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidMonth); + var year = date.year(); + if (year < 0) { year++; } // No year zero + var doy = date.day(); + for (var m = 1; m < date.month(); m++) { + doy += this.daysPerMonth[m - 1]; + } + return doy + gregorian.toJD(year + 1468, 3, 13); + }, + + /** Create a new date from a Julian date. + @memberof NanakshahiCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + jd = Math.floor(jd + 0.5); + var year = Math.floor((jd - (this.jdEpoch - 1)) / 366); + while (jd >= this.toJD(year + 1, 1, 1)) { + year++; + } + var day = jd - Math.floor(this.toJD(year, 1, 1) + 0.5) + 1; + var month = 1; + while (day > this.daysInMonth(year, month)) { + day -= this.daysInMonth(year, month); + month++; + } + return this.newDate(year, month, day); + } +}); + +// Nanakshahi calendar implementation +main.calendars.nanakshahi = NanakshahiCalendar; + diff --git a/dist/calendars/nepali-ne.js b/dist/calendars/nepali-ne.js new file mode 100644 index 0000000..72a4632 --- /dev/null +++ b/dist/calendars/nepali-ne.js @@ -0,0 +1,29 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Nepali localisation for Nepali calendar for jQuery v2.0.2. + Written by Artur Neumann (ict.projects{at}nepal.inf.org) April 2013. */ +var main = require('../main'); + +main.calendars.nepali.prototype.regionalOptions['ne'] = { + name: 'Nepali', + epochs: ['BBS', 'ABS'], + monthNames: ['बैशाख', 'जेष्ठ', 'आषाढ', 'श्रावण', 'भाद्र', 'आश्विन', 'कार्तिक', 'मंसिर', 'पौष', 'माघ', 'फाल्गुन', 'चैत्र'], + monthNamesShort: ['बै', 'जे', 'आषा', 'श्रा', 'भा', 'आश', 'का', 'मं', 'पौ', 'मा', 'फा', 'चै'], + dayNames: ['आइतवार', 'सोमवार', 'मगलवार', 'बुधवार', 'बिहिवार', 'शुक्रवार', 'शनिवार'], + dayNamesShort: ['आइत', 'सोम', 'मगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'], + dayNamesMin: ['आ', 'सो', 'म', 'बु', 'बि', 'शु', 'श'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; diff --git a/dist/calendars/nepali.js b/dist/calendars/nepali.js new file mode 100644 index 0000000..a2b9eb9 --- /dev/null +++ b/dist/calendars/nepali.js @@ -0,0 +1,421 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Nepali calendar for jQuery v2.0.2. + Written by Artur Neumann (ict.projects{at}nepal.inf.org) April 2013. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the Nepali civil calendar. + Based on the ideas from + http://codeissue.com/articles/a04e050dea7468f/algorithm-to-convert-english-date-to-nepali-date-using-c-net + and http://birenj2ee.blogspot.com/2011/04/nepali-calendar-in-java.html + See also http://en.wikipedia.org/wiki/Nepali_calendar + and https://en.wikipedia.org/wiki/Bikram_Samwat. + @class NepaliCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function NepaliCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +NepaliCalendar.prototype = new main.baseCalendar; + +assign(NepaliCalendar.prototype, { + /** The calendar name. + @memberof NepaliCalendar */ + name: 'Nepali', + /** Julian date of start of Nepali epoch: 14 April 57 BCE. + @memberof NepaliCalendar */ + jdEpoch: 1700709.5, + /** Days per month in a common year. + @memberof NepaliCalendar */ + daysPerMonth: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + /** true if has a year zero, false if not. + @memberof NepaliCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof NepaliCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof NepaliCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof NepaliCalendar */ + minDay: 1, + /** The number of days in the year. + @memberof NepaliCalendar */ + daysPerYear: 365, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof NepaliCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Nepali', + epochs: ['BBS', 'ABS'], + monthNames: ['Baisakh', 'Jestha', 'Ashadh', 'Shrawan', 'Bhadra', 'Ashwin', + 'Kartik', 'Mangsir', 'Paush', 'Mangh', 'Falgun', 'Chaitra'], + monthNamesShort: ['Bai', 'Je', 'As', 'Shra', 'Bha', 'Ash', 'Kar', 'Mang', 'Pau', 'Ma', 'Fal', 'Chai'], + dayNames: ['Aaitabaar', 'Sombaar', 'Manglbaar', 'Budhabaar', 'Bihibaar', 'Shukrabaar', 'Shanibaar'], + dayNamesShort: ['Aaita', 'Som', 'Mangl', 'Budha', 'Bihi', 'Shukra', 'Shani'], + dayNamesMin: ['Aai', 'So', 'Man', 'Bu', 'Bi', 'Shu', 'Sha'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof NepaliCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + return this.daysInYear(year) !== this.daysPerYear; + }, + + /** Determine the week of the year for a date. + @memberof NepaliCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Sunday of this week starting on Sunday + var checkDate = this.newDate(year, month, day); + checkDate.add(-checkDate.dayOfWeek(), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a year. + @memberof NepaliCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of days. + @throws Error if an invalid year or a different calendar used. */ + daysInYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + year = date.year(); + if (typeof this.NEPALI_CALENDAR_DATA[year] === 'undefined') { + return this.daysPerYear; + } + var daysPerYear = 0; + for (var month_number = this.minMonth; month_number <= 12; month_number++) { + daysPerYear += this.NEPALI_CALENDAR_DATA[year][month_number]; + } + return daysPerYear; + }, + + /** Retrieve the number of days in a month. + @memberof NepaliCalendar + @param year {CDate|number| The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + if (year.year) { + month = year.month(); + year = year.year(); + } + this._validate(year, month, this.minDay, main.local.invalidMonth); + return (typeof this.NEPALI_CALENDAR_DATA[year] === 'undefined' ? + this.daysPerMonth[month - 1] : this.NEPALI_CALENDAR_DATA[year][month]); + }, + + /** Determine whether this date is a week day. + @memberof NepaliCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return this.dayOfWeek(year, month, day) !== 6; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof NepaliCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(nepaliYear, nepaliMonth, nepaliDay) { + var date = this._validate(nepaliYear, nepaliMonth, nepaliDay, main.local.invalidDate); + nepaliYear = date.year(); + nepaliMonth = date.month(); + nepaliDay = date.day(); + var gregorianCalendar = main.instance(); + var gregorianDayOfYear = 0; // We will add all the days that went by since + // the 1st. January and then we can get the Gregorian Date + var nepaliMonthToCheck = nepaliMonth; + var nepaliYearToCheck = nepaliYear; + this._createMissingCalendarData(nepaliYear); + // Get the correct year + var gregorianYear = nepaliYear - (nepaliMonthToCheck > 9 || (nepaliMonthToCheck === 9 && + nepaliDay >= this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][0]) ? 56 : 57); + // First we add the amount of days in the actual Nepali month as the day of year in the + // Gregorian one because at least this days are gone since the 1st. Jan. + if (nepaliMonth !== 9) { + gregorianDayOfYear = nepaliDay; + nepaliMonthToCheck--; + } + // Now we loop throw all Nepali month and add the amount of days to gregorianDayOfYear + // we do this till we reach Paush (9th month). 1st. January always falls in this month + while (nepaliMonthToCheck !== 9) { + if (nepaliMonthToCheck <= 0) { + nepaliMonthToCheck = 12; + nepaliYearToCheck--; + } + gregorianDayOfYear += this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][nepaliMonthToCheck]; + nepaliMonthToCheck--; + } + // If the date that has to be converted is in Paush (month no. 9) we have to do some other calculation + if (nepaliMonth === 9) { + // Add the days that are passed since the first day of Paush and substract the + // amount of days that lie between 1st. Jan and 1st Paush + gregorianDayOfYear += nepaliDay - this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][0]; + // For the first days of Paush we are now in negative values, + // because in the end of the gregorian year we substract + // 365 / 366 days (P.S. remember math in school + - gives -) + if (gregorianDayOfYear < 0) { + gregorianDayOfYear += gregorianCalendar.daysInYear(gregorianYear); + } + } + else { + gregorianDayOfYear += this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][9] - + this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][0]; + } + return gregorianCalendar.newDate(gregorianYear, 1 ,1).add(gregorianDayOfYear, 'd').toJD(); + }, + + /** Create a new date from a Julian date. + @memberof NepaliCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + var gregorianCalendar = main.instance(); + var gregorianDate = gregorianCalendar.fromJD(jd); + var gregorianYear = gregorianDate.year(); + var gregorianDayOfYear = gregorianDate.dayOfYear(); + var nepaliYear = gregorianYear + 56; //this is not final, it could be also +57 but +56 is always true for 1st Jan. + this._createMissingCalendarData(nepaliYear); + var nepaliMonth = 9; // Jan 1 always fall in Nepali month Paush which is the 9th month of Nepali calendar. + // Get the Nepali day in Paush (month 9) of 1st January + var dayOfFirstJanInPaush = this.NEPALI_CALENDAR_DATA[nepaliYear][0]; + // Check how many days are left of Paush . + // Days calculated from 1st Jan till the end of the actual Nepali month, + // we use this value to check if the gregorian Date is in the actual Nepali month. + var daysSinceJanFirstToEndOfNepaliMonth = + this.NEPALI_CALENDAR_DATA[nepaliYear][nepaliMonth] - dayOfFirstJanInPaush + 1; + // If the gregorian day-of-year is smaller o equal than the sum of days between the 1st January and + // the end of the actual nepali month we found the correct nepali month. + // Example: + // The 4th February 2011 is the gregorianDayOfYear 35 (31 days of January + 4) + // 1st January 2011 is in the nepali year 2067, where 1st. January is in the 17th day of Paush (9th month) + // In 2067 Paush has 30days, This means (30-17+1=14) there are 14days between 1st January and end of Paush + // (including 17th January) + // The gregorianDayOfYear (35) is bigger than 14, so we check the next month + // The next nepali month (Mangh) has 29 days + // 29+14=43, this is bigger than gregorianDayOfYear(35) so, we found the correct nepali month + while (gregorianDayOfYear > daysSinceJanFirstToEndOfNepaliMonth) { + nepaliMonth++; + if (nepaliMonth > 12) { + nepaliMonth = 1; + nepaliYear++; + } + daysSinceJanFirstToEndOfNepaliMonth += this.NEPALI_CALENDAR_DATA[nepaliYear][nepaliMonth]; + } + // The last step is to calculate the nepali day-of-month + // to continue our example from before: + // we calculated there are 43 days from 1st. January (17 Paush) till end of Mangh (29 days) + // when we subtract from this 43 days the day-of-year of the the Gregorian date (35), + // we know how far the searched day is away from the end of the Nepali month. + // So we simply subtract this number from the amount of days in this month (30) + var nepaliDayOfMonth = this.NEPALI_CALENDAR_DATA[nepaliYear][nepaliMonth] - + (daysSinceJanFirstToEndOfNepaliMonth - gregorianDayOfYear); + return this.newDate(nepaliYear, nepaliMonth, nepaliDayOfMonth); + }, + + /** Creates missing data in the NEPALI_CALENDAR_DATA table. + This data will not be correct but just give an estimated result. Mostly -/+ 1 day + @private + @param nepaliYear {number} The missing year number. */ + _createMissingCalendarData: function(nepaliYear) { + var tmp_calendar_data = this.daysPerMonth.slice(0); + tmp_calendar_data.unshift(17); + for (var nepaliYearToCreate = (nepaliYear - 1); nepaliYearToCreate < (nepaliYear + 2); nepaliYearToCreate++) { + if (typeof this.NEPALI_CALENDAR_DATA[nepaliYearToCreate] === 'undefined') { + this.NEPALI_CALENDAR_DATA[nepaliYearToCreate] = tmp_calendar_data; + } + } + }, + + NEPALI_CALENDAR_DATA: { + // These data are from http://www.ashesh.com.np + 1970: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 1971: [18, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30], + 1972: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], + 1973: [19, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 1974: [19, 31, 31, 32, 30, 31, 31, 30, 29, 30, 29, 30, 30], + 1975: [18, 31, 31, 32, 32, 30, 31, 30, 29, 30, 29, 30, 30], + 1976: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 1977: [18, 31, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31], + 1978: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 1979: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 1980: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 1981: [18, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], + 1982: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 1983: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 1984: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 1985: [18, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], + 1986: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 1987: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 1988: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 1989: [18, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], + 1990: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 1991: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], + // These data are from http://nepalicalendar.rat32.com/index.php + 1992: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 1993: [18, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], + 1994: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 1995: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], + 1996: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 1997: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 1998: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 1999: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2000: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 2001: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2002: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2003: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2004: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 2005: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2006: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2007: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2008: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31], + 2009: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2010: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2011: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2012: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], + 2013: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2014: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2015: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2016: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], + 2017: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2018: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2019: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 2020: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], + 2021: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2022: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], + 2023: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 2024: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], + 2025: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2026: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2027: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 2028: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2029: [18, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30], + 2030: [17, 31, 32, 31, 32, 31, 30, 30, 30, 30, 30, 30, 31], + 2031: [17, 31, 32, 31, 32, 31, 31, 31, 31, 31, 31, 31, 31], + 2032: [17, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32], + 2033: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2034: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2035: [17, 30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31], + 2036: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2037: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2038: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2039: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], + 2040: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2041: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2042: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2043: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], + 2044: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2045: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2046: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2047: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], + 2048: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2049: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], + 2050: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 2051: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], + 2052: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2053: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], + 2054: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 2055: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 29, 30], + 2056: [17, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30], + 2057: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2058: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 2059: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2060: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2061: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2062: [17, 30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31], + 2063: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2064: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2065: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2066: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31], + 2067: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2068: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2069: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2070: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30], + 2071: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2072: [17, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2073: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31], + 2074: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], + 2075: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2076: [16, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], + 2077: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31], + 2078: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30], + 2079: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30], + 2080: [16, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30], + // These data are from http://www.ashesh.com.np/nepali-calendar/ + 2081: [17, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30], + 2082: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], + 2083: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30], + 2084: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30], + 2085: [17, 31, 32, 31, 32, 31, 31, 30, 30, 29, 30, 30, 30], + 2086: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], + 2087: [16, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30], + 2088: [16, 30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30], + 2089: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], + 2090: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], + 2091: [16, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30], + 2092: [16, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30], + 2093: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], + 2094: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30], + 2095: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30], + 2096: [17, 30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30], + 2097: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30], + 2098: [17, 31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 30, 31], + 2099: [17, 31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30], + 2100: [17, 31, 32, 31, 32, 30, 31, 30, 29, 30, 29, 30, 30] + } +}); + +// Nepali calendar implementation +main.calendars.nepali = NepaliCalendar; + diff --git a/dist/calendars/persian-fa.js b/dist/calendars/persian-fa.js new file mode 100644 index 0000000..6c5403d --- /dev/null +++ b/dist/calendars/persian-fa.js @@ -0,0 +1,31 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Farsi/Persian localisation for Persian calendar for jQuery v2.0.2. + Written by Sajjad Servatjoo (sajjad.servatjoo{at}gmail.com) April 2011. */ +var main = require('../main'); + +main.calendars.persian.prototype.regionalOptions['fa'] = { + name: 'Persian', + epochs: ['BP', 'AP'], + monthNames: ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', + 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'], + monthNamesShort: ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', + 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'], + dayNames: ['يک شنبه', 'دوشنبه', 'سه شنبه', 'چهار شنبه', 'پنج شنبه', 'جمعه', 'شنبه'], + dayNamesShort: ['يک', 'دو', 'سه', 'چهار', 'پنج', 'جمعه', 'شنبه'], + dayNamesMin: ['ي', 'د', 'س', 'چ', 'پ', 'ج', 'ش'], + digits: main.substituteDigits(['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']), + dateFormat: 'yyyy/mm/dd', + firstDay: 6, + isRTL: true +}; diff --git a/dist/calendars/persian.js b/dist/calendars/persian.js new file mode 100644 index 0000000..7aafc60 --- /dev/null +++ b/dist/calendars/persian.js @@ -0,0 +1,188 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Persian calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the Persian or Jalali calendar. + Based on code from http://www.iranchamber.com/calendar/converter/iranian_calendar_converter.php. + See also http://en.wikipedia.org/wiki/Iranian_calendar. + @class PersianCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function PersianCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +PersianCalendar.prototype = new main.baseCalendar; + +assign(PersianCalendar.prototype, { + /** The calendar name. + @memberof PersianCalendar */ + name: 'Persian', + /** Julian date of start of Persian epoch: 19 March 622 CE. + @memberof PersianCalendar */ + jdEpoch: 1948320.5, + /** Days per month in a common year. + @memberof PersianCalendar */ + daysPerMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29], + /** true if has a year zero, false if not. + @memberof PersianCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof PersianCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof PersianCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof PersianCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof PersianCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Persian', + epochs: ['BP', 'AP'], + monthNames: ['Farvardin', 'Ordibehesht', 'Khordad', 'Tir', 'Mordad', 'Shahrivar', + 'Mehr', 'Aban', 'Azar', 'Day', 'Bahman', 'Esfand'], + monthNamesShort: ['Far', 'Ord', 'Kho', 'Tir', 'Mor', 'Sha', 'Meh', 'Aba', 'Aza', 'Day', 'Bah', 'Esf'], + dayNames: ['Yekshambe', 'Doshambe', 'Seshambe', 'Chæharshambe', 'Panjshambe', 'Jom\'e', 'Shambe'], + dayNamesShort: ['Yek', 'Do', 'Se', 'Chæ', 'Panj', 'Jom', 'Sha'], + dayNamesMin: ['Ye','Do','Se','Ch','Pa','Jo','Sh'], + digits: null, + dateFormat: 'yyyy/mm/dd', + firstDay: 6, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof PersianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return (((((date.year() - (date.year() > 0 ? 474 : 473)) % 2820) + + 474 + 38) * 682) % 2816) < 682; + }, + + /** Determine the week of the year for a date. + @memberof PersianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Saturday of this week starting on Saturday + var checkDate = this.newDate(year, month, day); + checkDate.add(-((checkDate.dayOfWeek() + 1) % 7), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a month. + @memberof PersianCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, main.local.invalidMonth); + return this.daysPerMonth[date.month() - 1] + + (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0); + }, + + /** Determine whether this date is a week day. + @memberof PersianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return this.dayOfWeek(year, month, day) !== 5; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof PersianCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + year = date.year(); + month = date.month(); + day = date.day(); + var epBase = year - (year >= 0 ? 474 : 473); + var epYear = 474 + mod(epBase, 2820); + return day + (month <= 7 ? (month - 1) * 31 : (month - 1) * 30 + 6) + + Math.floor((epYear * 682 - 110) / 2816) + (epYear - 1) * 365 + + Math.floor(epBase / 2820) * 1029983 + this.jdEpoch - 1; + }, + + /** Create a new date from a Julian date. + @memberof PersianCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + jd = Math.floor(jd) + 0.5; + var depoch = jd - this.toJD(475, 1, 1); + var cycle = Math.floor(depoch / 1029983); + var cyear = mod(depoch, 1029983); + var ycycle = 2820; + if (cyear !== 1029982) { + var aux1 = Math.floor(cyear / 366); + var aux2 = mod(cyear, 366); + ycycle = Math.floor(((2134 * aux1) + (2816 * aux2) + 2815) / 1028522) + aux1 + 1; + } + var year = ycycle + (2820 * cycle) + 474; + year = (year <= 0 ? year - 1 : year); + var yday = jd - this.toJD(year, 1, 1) + 1; + var month = (yday <= 186 ? Math.ceil(yday / 31) : Math.ceil((yday - 6) / 30)); + var day = jd - this.toJD(year, month, 1) + 1; + return this.newDate(year, month, day); + } +}); + +// Modulus function which works for non-integers. +function mod(a, b) { + return a - (b * Math.floor(a / b)); +} + +// Persian (Jalali) calendar implementation +main.calendars.persian = PersianCalendar; +main.calendars.jalali = PersianCalendar; + diff --git a/dist/calendars/taiwan-zh-TW.js b/dist/calendars/taiwan-zh-TW.js new file mode 100644 index 0000000..2ae8508 --- /dev/null +++ b/dist/calendars/taiwan-zh-TW.js @@ -0,0 +1,31 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Traditional Chinese localisation for Taiwanese calendars for jQuery v2.0.2. + Written by Ressol (ressol@gmail.com). */ +var main = require('../main'); + +main.calendars.taiwan.prototype.regionalOptions['zh-TW'] = { + name: 'Taiwan', + epochs: ['BROC', 'ROC'], + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + digits: null, + dateFormat: 'yyyy/mm/dd', + firstDay: 1, + isRTL: false +}; diff --git a/dist/calendars/taiwan.js b/dist/calendars/taiwan.js new file mode 100644 index 0000000..548d814 --- /dev/null +++ b/dist/calendars/taiwan.js @@ -0,0 +1,184 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Taiwanese (Minguo) calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) February 2010. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +var gregorianCalendar = main.instance(); + +/** Implementation of the Taiwanese calendar. + See http://en.wikipedia.org/wiki/Minguo_calendar. + @class TaiwanCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function TaiwanCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +TaiwanCalendar.prototype = new main.baseCalendar; + +assign(TaiwanCalendar.prototype, { + /** The calendar name. + @memberof TaiwanCalendar */ + name: 'Taiwan', + /** Julian date of start of Taiwan epoch: 1 January 1912 CE (Gregorian). + @memberof TaiwanCalendar */ + jdEpoch: 2419402.5, + /** Difference in years between Taiwan and Gregorian calendars. + @memberof TaiwanCalendar */ + yearsOffset: 1911, + /** Days per month in a common year. + @memberof TaiwanCalendar */ + daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + /** true if has a year zero, false if not. + @memberof TaiwanCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof TaiwanCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof TaiwanCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof TaiwanCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof TaiwanCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Taiwan', + epochs: ['BROC', 'ROC'], + monthNames: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + digits: null, + dateFormat: 'yyyy/mm/dd', + firstDay: 1, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof TaiwanCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + var year = this._t2gYear(date.year()); + return gregorianCalendar.leapYear(year); + }, + + /** Determine the week of the year for a date - ISO 8601. + @memberof TaiwanCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + var year = this._t2gYear(date.year()); + return gregorianCalendar.weekOfYear(year, date.month(), date.day()); + }, + + /** Retrieve the number of days in a month. + @memberof TaiwanCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, main.local.invalidMonth); + return this.daysPerMonth[date.month() - 1] + + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0); + }, + + /** Determine whether this date is a week day. + @memberof TaiwanCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return (this.dayOfWeek(year, month, day) || 7) < 6; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof TaiwanCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + var year = this._t2gYear(date.year()); + return gregorianCalendar.toJD(year, date.month(), date.day()); + }, + + /** Create a new date from a Julian date. + @memberof TaiwanCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + var date = gregorianCalendar.fromJD(jd); + var year = this._g2tYear(date.year()); + return this.newDate(year, date.month(), date.day()); + }, + + /** Convert Taiwanese to Gregorian year. + @memberof TaiwanCalendar + @private + @param year {number} The Taiwanese year. + @return {number} The corresponding Gregorian year. */ + _t2gYear: function(year) { + return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0); + }, + + /** Convert Gregorian to Taiwanese year. + @memberof TaiwanCalendar + @private + @param year {number} The Gregorian year. + @return {number} The corresponding Taiwanese year. */ + _g2tYear: function(year) { + return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0); + } +}); + +// Taiwan calendar implementation +main.calendars.taiwan = TaiwanCalendar; + diff --git a/dist/calendars/thai-th.js b/dist/calendars/thai-th.js new file mode 100644 index 0000000..ceed7fd --- /dev/null +++ b/dist/calendars/thai-th.js @@ -0,0 +1,31 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Thai localisation for Thai calendars for jQuery v2.0.2. + Written by pipo (pipo@sixhead.com). */ +var main = require('../main'); + +main.calendars.thai.prototype.regionalOptions['th'] = { + name: 'Thai', + epochs: ['BBE', 'BE'], + monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน', + 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'], + monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.', + 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'], + dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'], + dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], + dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; diff --git a/dist/calendars/thai.js b/dist/calendars/thai.js new file mode 100644 index 0000000..250e52f --- /dev/null +++ b/dist/calendars/thai.js @@ -0,0 +1,184 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Thai calendar for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) February 2010. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +var gregorianCalendar = main.instance(); + +/** Implementation of the Thai calendar. + See http://en.wikipedia.org/wiki/Thai_calendar. + @class ThaiCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function ThaiCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +ThaiCalendar.prototype = new main.baseCalendar; + +assign(ThaiCalendar.prototype, { + /** The calendar name. + @memberof ThaiCalendar */ + name: 'Thai', + /** Julian date of start of Thai epoch: 1 January 543 BCE (Gregorian). + @memberof ThaiCalendar */ + jdEpoch: 1523098.5, + /** Difference in years between Thai and Gregorian calendars. + @memberof ThaiCalendar */ + yearsOffset: 543, + /** Days per month in a common year. + @memberof ThaiCalendar */ + daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + /** true if has a year zero, false if not. + @memberof ThaiCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof ThaiCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof ThaiCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof ThaiCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof ThaiCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Thai', + epochs: ['BBE', 'BE'], + monthNames: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof ThaiCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + var year = this._t2gYear(date.year()); + return gregorianCalendar.leapYear(year); + }, + + /** Determine the week of the year for a date - ISO 8601. + @memberof ThaiCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + var year = this._t2gYear(date.year()); + return gregorianCalendar.weekOfYear(year, date.month(), date.day()); + }, + + /** Retrieve the number of days in a month. + @memberof ThaiCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, main.local.invalidMonth); + return this.daysPerMonth[date.month() - 1] + + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0); + }, + + /** Determine whether this date is a week day. + @memberof ThaiCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return (this.dayOfWeek(year, month, day) || 7) < 6; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof ThaiCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + var year = this._t2gYear(date.year()); + return gregorianCalendar.toJD(year, date.month(), date.day()); + }, + + /** Create a new date from a Julian date. + @memberof ThaiCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + var date = gregorianCalendar.fromJD(jd); + var year = this._g2tYear(date.year()); + return this.newDate(year, date.month(), date.day()); + }, + + /** Convert Thai to Gregorian year. + @memberof ThaiCalendar + @private + @param year {number} The Thai year. + @return {number} The corresponding Gregorian year. */ + _t2gYear: function(year) { + return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0); + }, + + /** Convert Gregorian to Thai year. + @memberof ThaiCalendar + @private + @param year {number} The Gregorian year. + @return {number} The corresponding Thai year. */ + _g2tYear: function(year) { + return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0); + } +}); + +// Thai calendar implementation +main.calendars.thai = ThaiCalendar; + diff --git a/dist/calendars/ummalqura-ar.js b/dist/calendars/ummalqura-ar.js new file mode 100644 index 0000000..22ad773 --- /dev/null +++ b/dist/calendars/ummalqura-ar.js @@ -0,0 +1,29 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Arabic localisation for UmmAlQura calendar for jQuery v2.0.2. + Written by Amro Osama March 2013. */ +var main = require('../main'); + +main.calendars.ummalqura.prototype.regionalOptions['ar'] = { + name: 'UmmAlQura', // The calendar name + epochs: ['BAM', 'AM'], + monthNames: ['المحرّم', 'صفر', 'ربيع الأول', 'ربيع الثاني', 'جمادى الاول', 'جمادى الآخر', 'رجب', 'شعبان', 'رمضان', 'شوّال', 'ذو القعدة', 'ذو الحجة'], + monthNamesShort: ['المحرّم', 'صفر', 'ربيع الأول', 'ربيع الثاني', 'جمادى الاول', 'جمادى الآخر', 'رجب', 'شعبان', 'رمضان', 'شوّال', 'ذو القعدة', 'ذو الحجة'], + dayNames: ['الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesMin: ['الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + digits: main.substituteDigits(['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩']), + dateFormat: 'yyyy/mm/dd', // See format options on BaseCalendar.formatDate + firstDay: 6, // The first day of the week, Sat = 0, Sun = 1, ... + isRTL: true // True if right-to-left language, false if left-to-right +}; diff --git a/dist/calendars/ummalqura.js b/dist/calendars/ummalqura.js new file mode 100644 index 0000000..aef3038 --- /dev/null +++ b/dist/calendars/ummalqura.js @@ -0,0 +1,363 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + UmmAlQura calendar for jQuery v2.0.2. + Written by Amro Osama March 2013. + Modified by Binnooh.com & www.elm.sa - 2014 - Added dates back to 1276 Hijri year. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var main = require('../main'); +var assign = require('object-assign'); + + +/** Implementation of the UmmAlQura or 'saudi' calendar. + See also http://en.wikipedia.org/wiki/Islamic_calendar#Saudi_Arabia.27s_Umm_al-Qura_calendar. + http://www.ummulqura.org.sa/About.aspx + http://www.staff.science.uu.nl/~gent0113/islam/ummalqura.htm + @class UmmAlQuraCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function UmmAlQuraCalendar(language) { + this.local = this.regionalOptions[language || ''] || this.regionalOptions['']; +} + +UmmAlQuraCalendar.prototype = new main.baseCalendar; + +assign(UmmAlQuraCalendar.prototype, { + /** The calendar name. + @memberof UmmAlQuraCalendar */ + name: 'UmmAlQura', + //jdEpoch: 1948440, // Julian date of start of UmmAlQura epoch: 14 March 1937 CE + //daysPerMonth: // Days per month in a common year, replaced by a method. + /** true if has a year zero, false if not. + @memberof UmmAlQuraCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof UmmAlQuraCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof UmmAlQuraCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof UmmAlQuraCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof UmmAlQuraCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Umm al-Qura', + epochs: ['BH', 'AH'], + monthNames: ['Al-Muharram', 'Safar', 'Rabi\' al-awwal', 'Rabi\' Al-Thani', 'Jumada Al-Awwal', 'Jumada Al-Thani', + 'Rajab', 'Sha\'aban', 'Ramadan', 'Shawwal', 'Dhu al-Qi\'dah', 'Dhu al-Hijjah'], + monthNamesShort: ['Muh', 'Saf', 'Rab1', 'Rab2', 'Jum1', 'Jum2', 'Raj', 'Sha\'', 'Ram', 'Shaw', 'DhuQ', 'DhuH'], + dayNames: ['Yawm al-Ahad', 'Yawm al-Ithnain', 'Yawm al-Thalāthā’', 'Yawm al-Arba‘ā’', 'Yawm al-Khamīs', 'Yawm al-Jum‘a', 'Yawm al-Sabt'], + dayNamesMin: ['Ah', 'Ith', 'Th', 'Ar', 'Kh', 'Ju', 'Sa'], + digits: null, + dateFormat: 'yyyy/mm/dd', + firstDay: 6, + isRTL: true + } + }, + + /** Determine whether this date is in a leap year. + @memberof UmmAlQuraCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function (year) { + var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear); + return (this.daysInYear(date.year()) === 355); + }, + + /** Determine the week of the year for a date. + @memberof UmmAlQuraCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function (year, month, day) { + // Find Sunday of this week starting on Sunday + var checkDate = this.newDate(year, month, day); + checkDate.add(-checkDate.dayOfWeek(), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a year. + @memberof UmmAlQuraCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of days. + @throws Error if an invalid year or a different calendar used. */ + daysInYear: function (year) { + var daysCount = 0; + for (var i = 1; i <= 12; i++) { + daysCount += this.daysInMonth(year, i); + } + return daysCount; + }, + + /** Retrieve the number of days in a month. + @memberof UmmAlQuraCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function (year, month) { + var date = this._validate(year, month, this.minDay, main.local.invalidMonth); + var mcjdn = date.toJD() - 2400000 + 0.5; // Modified Chronological Julian Day Number (MCJDN) + // the MCJDN's of the start of the lunations in the Umm al-Qura calendar are stored in the 'ummalqura_dat' array + var index = 0; + for (var i = 0; i < ummalqura_dat.length; i++) { + if (ummalqura_dat[i] > mcjdn) { + return (ummalqura_dat[index] - ummalqura_dat[index - 1]); + } + index++; + } + return 30; // Unknown outside + }, + + /** Determine whether this date is a week day. + @memberof UmmAlQuraCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function (year, month, day) { + return this.dayOfWeek(year, month, day) !== 5; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof UmmAlQuraCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function (year, month, day) { + var date = this._validate(year, month, day, main.local.invalidDate); + var index = (12 * (date.year() - 1)) + date.month() - 15292; + var mcjdn = date.day() + ummalqura_dat[index - 1] - 1; + return mcjdn + 2400000 - 0.5; // Modified Chronological Julian Day Number (MCJDN) + }, + + /** Create a new date from a Julian date. + @memberof UmmAlQuraCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function (jd) { + var mcjdn = jd - 2400000 + 0.5; // Modified Chronological Julian Day Number (MCJDN) + // the MCJDN's of the start of the lunations in the Umm al-Qura calendar + // are stored in the 'ummalqura_dat' array + var index = 0; + for (var i = 0; i < ummalqura_dat.length; i++) { + if (ummalqura_dat[i] > mcjdn) break; + index++; + } + var lunation = index + 15292; //UmmAlQura Lunation Number + var ii = Math.floor((lunation - 1) / 12); + var year = ii + 1; + var month = lunation - 12 * ii; + var day = mcjdn - ummalqura_dat[index - 1] + 1; + return this.newDate(year, month, day); + }, + + /** Determine whether a date is valid for this calendar. + @memberof UmmAlQuraCalendar + @param year {number} The year to examine. + @param month {number} The month to examine. + @param day {number} The day to examine. + @return {boolean} true if a valid date, false if not. */ + isValid: function(year, month, day) { + var valid = main.baseCalendar.prototype.isValid.apply(this, arguments); + if (valid) { + year = (year.year != null ? year.year : year); + valid = (year >= 1276 && year <= 1500); + } + return valid; + }, + + /** Check that a candidate date is from the same calendar and is valid. + @memberof UmmAlQuraCalendar + @private + @param year {CDate|number} The date to validate or the year to validate. + @param month {number} The month to validate. + @param day {number} The day to validate. + @param error {string} Error message if invalid. + @throws Error if different calendars used or invalid date. */ + _validate: function(year, month, day, error) { + var date = main.baseCalendar.prototype._validate.apply(this, arguments); + if (date.year < 1276 || date.year > 1500) { + throw error.replace(/\{0\}/, this.local.name); + } + return date; + } +}); + +// UmmAlQura calendar implementation +main.calendars.ummalqura = UmmAlQuraCalendar; + +var ummalqura_dat = [ + 20, 50, 79, 109, 138, 168, 197, 227, 256, 286, 315, 345, 374, 404, 433, 463, 492, 522, 551, 581, + 611, 641, 670, 700, 729, 759, 788, 818, 847, 877, 906, 936, 965, 995, 1024, 1054, 1083, 1113, 1142, 1172, + 1201, 1231, 1260, 1290, 1320, 1350, 1379, 1409, 1438, 1468, 1497, 1527, 1556, 1586, 1615, 1645, 1674, 1704, 1733, 1763, + 1792, 1822, 1851, 1881, 1910, 1940, 1969, 1999, 2028, 2058, 2087, 2117, 2146, 2176, 2205, 2235, 2264, 2294, 2323, 2353, + 2383, 2413, 2442, 2472, 2501, 2531, 2560, 2590, 2619, 2649, 2678, 2708, 2737, 2767, 2796, 2826, 2855, 2885, 2914, 2944, + 2973, 3003, 3032, 3062, 3091, 3121, 3150, 3180, 3209, 3239, 3268, 3298, 3327, 3357, 3386, 3416, 3446, 3476, 3505, 3535, + 3564, 3594, 3623, 3653, 3682, 3712, 3741, 3771, 3800, 3830, 3859, 3889, 3918, 3948, 3977, 4007, 4036, 4066, 4095, 4125, + 4155, 4185, 4214, 4244, 4273, 4303, 4332, 4362, 4391, 4421, 4450, 4480, 4509, 4539, 4568, 4598, 4627, 4657, 4686, 4716, + 4745, 4775, 4804, 4834, 4863, 4893, 4922, 4952, 4981, 5011, 5040, 5070, 5099, 5129, 5158, 5188, 5218, 5248, 5277, 5307, + 5336, 5366, 5395, 5425, 5454, 5484, 5513, 5543, 5572, 5602, 5631, 5661, 5690, 5720, 5749, 5779, 5808, 5838, 5867, 5897, + 5926, 5956, 5985, 6015, 6044, 6074, 6103, 6133, 6162, 6192, 6221, 6251, 6281, 6311, 6340, 6370, 6399, 6429, 6458, 6488, + 6517, 6547, 6576, 6606, 6635, 6665, 6694, 6724, 6753, 6783, 6812, 6842, 6871, 6901, 6930, 6960, 6989, 7019, 7048, 7078, + 7107, 7137, 7166, 7196, 7225, 7255, 7284, 7314, 7344, 7374, 7403, 7433, 7462, 7492, 7521, 7551, 7580, 7610, 7639, 7669, + 7698, 7728, 7757, 7787, 7816, 7846, 7875, 7905, 7934, 7964, 7993, 8023, 8053, 8083, 8112, 8142, 8171, 8201, 8230, 8260, + 8289, 8319, 8348, 8378, 8407, 8437, 8466, 8496, 8525, 8555, 8584, 8614, 8643, 8673, 8702, 8732, 8761, 8791, 8821, 8850, + 8880, 8909, 8938, 8968, 8997, 9027, 9056, 9086, 9115, 9145, 9175, 9205, 9234, 9264, 9293, 9322, 9352, 9381, 9410, 9440, + 9470, 9499, 9529, 9559, 9589, 9618, 9648, 9677, 9706, 9736, 9765, 9794, 9824, 9853, 9883, 9913, 9943, 9972, 10002, 10032, + 10061, 10090, 10120, 10149, 10178, 10208, 10237, 10267, 10297, 10326, 10356, 10386, 10415, 10445, 10474, 10504, 10533, 10562, 10592, 10621, + 10651, 10680, 10710, 10740, 10770, 10799, 10829, 10858, 10888, 10917, 10947, 10976, 11005, 11035, 11064, 11094, 11124, 11153, 11183, 11213, + 11242, 11272, 11301, 11331, 11360, 11389, 11419, 11448, 11478, 11507, 11537, 11567, 11596, 11626, 11655, 11685, 11715, 11744, 11774, 11803, + 11832, 11862, 11891, 11921, 11950, 11980, 12010, 12039, 12069, 12099, 12128, 12158, 12187, 12216, 12246, 12275, 12304, 12334, 12364, 12393, + 12423, 12453, 12483, 12512, 12542, 12571, 12600, 12630, 12659, 12688, 12718, 12747, 12777, 12807, 12837, 12866, 12896, 12926, 12955, 12984, + 13014, 13043, 13072, 13102, 13131, 13161, 13191, 13220, 13250, 13280, 13310, 13339, 13368, 13398, 13427, 13456, 13486, 13515, 13545, 13574, + 13604, 13634, 13664, 13693, 13723, 13752, 13782, 13811, 13840, 13870, 13899, 13929, 13958, 13988, 14018, 14047, 14077, 14107, 14136, 14166, + 14195, 14224, 14254, 14283, 14313, 14342, 14372, 14401, 14431, 14461, 14490, 14520, 14550, 14579, 14609, 14638, 14667, 14697, 14726, 14756, + 14785, 14815, 14844, 14874, 14904, 14933, 14963, 14993, 15021, 15051, 15081, 15110, 15140, 15169, 15199, 15228, 15258, 15287, 15317, 15347, + 15377, 15406, 15436, 15465, 15494, 15524, 15553, 15582, 15612, 15641, 15671, 15701, 15731, 15760, 15790, 15820, 15849, 15878, 15908, 15937, + 15966, 15996, 16025, 16055, 16085, 16114, 16144, 16174, 16204, 16233, 16262, 16292, 16321, 16350, 16380, 16409, 16439, 16468, 16498, 16528, + 16558, 16587, 16617, 16646, 16676, 16705, 16734, 16764, 16793, 16823, 16852, 16882, 16912, 16941, 16971, 17001, 17030, 17060, 17089, 17118, + 17148, 17177, 17207, 17236, 17266, 17295, 17325, 17355, 17384, 17414, 17444, 17473, 17502, 17532, 17561, 17591, 17620, 17650, 17679, 17709, + 17738, 17768, 17798, 17827, 17857, 17886, 17916, 17945, 17975, 18004, 18034, 18063, 18093, 18122, 18152, 18181, 18211, 18241, 18270, 18300, + 18330, 18359, 18388, 18418, 18447, 18476, 18506, 18535, 18565, 18595, 18625, 18654, 18684, 18714, 18743, 18772, 18802, 18831, 18860, 18890, + 18919, 18949, 18979, 19008, 19038, 19068, 19098, 19127, 19156, 19186, 19215, 19244, 19274, 19303, 19333, 19362, 19392, 19422, 19452, 19481, + 19511, 19540, 19570, 19599, 19628, 19658, 19687, 19717, 19746, 19776, 19806, 19836, 19865, 19895, 19924, 19954, 19983, 20012, 20042, 20071, + 20101, 20130, 20160, 20190, 20219, 20249, 20279, 20308, 20338, 20367, 20396, 20426, 20455, 20485, 20514, 20544, 20573, 20603, 20633, 20662, + 20692, 20721, 20751, 20780, 20810, 20839, 20869, 20898, 20928, 20957, 20987, 21016, 21046, 21076, 21105, 21135, 21164, 21194, 21223, 21253, + 21282, 21312, 21341, 21371, 21400, 21430, 21459, 21489, 21519, 21548, 21578, 21607, 21637, 21666, 21696, 21725, 21754, 21784, 21813, 21843, + 21873, 21902, 21932, 21962, 21991, 22021, 22050, 22080, 22109, 22138, 22168, 22197, 22227, 22256, 22286, 22316, 22346, 22375, 22405, 22434, + 22464, 22493, 22522, 22552, 22581, 22611, 22640, 22670, 22700, 22730, 22759, 22789, 22818, 22848, 22877, 22906, 22936, 22965, 22994, 23024, + 23054, 23083, 23113, 23143, 23173, 23202, 23232, 23261, 23290, 23320, 23349, 23379, 23408, 23438, 23467, 23497, 23527, 23556, 23586, 23616, + 23645, 23674, 23704, 23733, 23763, 23792, 23822, 23851, 23881, 23910, 23940, 23970, 23999, 24029, 24058, 24088, 24117, 24147, 24176, 24206, + 24235, 24265, 24294, 24324, 24353, 24383, 24413, 24442, 24472, 24501, 24531, 24560, 24590, 24619, 24648, 24678, 24707, 24737, 24767, 24796, + 24826, 24856, 24885, 24915, 24944, 24974, 25003, 25032, 25062, 25091, 25121, 25150, 25180, 25210, 25240, 25269, 25299, 25328, 25358, 25387, + 25416, 25446, 25475, 25505, 25534, 25564, 25594, 25624, 25653, 25683, 25712, 25742, 25771, 25800, 25830, 25859, 25888, 25918, 25948, 25977, + 26007, 26037, 26067, 26096, 26126, 26155, 26184, 26214, 26243, 26272, 26302, 26332, 26361, 26391, 26421, 26451, 26480, 26510, 26539, 26568, + 26598, 26627, 26656, 26686, 26715, 26745, 26775, 26805, 26834, 26864, 26893, 26923, 26952, 26982, 27011, 27041, 27070, 27099, 27129, 27159, + 27188, 27218, 27248, 27277, 27307, 27336, 27366, 27395, 27425, 27454, 27484, 27513, 27542, 27572, 27602, 27631, 27661, 27691, 27720, 27750, + 27779, 27809, 27838, 27868, 27897, 27926, 27956, 27985, 28015, 28045, 28074, 28104, 28134, 28163, 28193, 28222, 28252, 28281, 28310, 28340, + 28369, 28399, 28428, 28458, 28488, 28517, 28547, 28577, + // From 1356 + 28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990, 29019, 29049, 29078, 29108, 29137, 29167, + 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522, 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, + 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053, 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, + 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585, 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, + 30968, 30998, 31027, 31057, 31086, 31116, 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, + 31559, 31589, 31618, 31648, 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, + 32150, 32180, 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711, + 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243, 33272, 33302, + 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775, 33804, 33834, 33863, 33893, + 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306, 34336, 34365, 34395, 34424, 34454, 34483, + 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837, 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, + 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370, 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, + 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901, 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, + 36284, 36314, 36343, 36373, 36403, 36433, 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, + 36875, 36904, 36934, 36963, 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, + 37465, 37495, 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027, + 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558, 38587, 38617, + 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089, 39118, 39148, 39178, 39208, + 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621, 39650, 39680, 39709, 39739, 39768, 39798, + 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153, 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, + 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685, 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, + 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216, 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, + 41599, 41629, 41658, 41688, 41718, 41748, 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, + 42190, 42220, 42249, 42279, 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, + 42780, 42810, 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342, + 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873, 43903, 43932, + 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405, 44434, 44464, 44493, 44523, + 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936, 44966, 44996, 45025, 45055, 45084, 45114, + 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468, 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, + 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999, 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, + 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531, 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, + 46915, 46944, 46974, 47003, 47033, 47063, 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, + 47506, 47535, 47565, 47594, 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, + 48096, 48125, 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657, + 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189, 49218, 49248, + 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720, 49749, 49779, 49809, 49838, + 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252, 50281, 50311, 50340, 50370, 50400, 50429, + 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784, 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, + 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315, 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, + 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846, 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, + 52230, 52260, 52290, 52319, 52349, 52379, 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, + 52822, 52851, 52881, 52910, 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, + 53412, 53441, 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973, + 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505, 54535, 54564, + 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036, 55066, 55095, 55125, 55154, + 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567, 55597, 55627, 55657, 55686, 55716, 55745, + 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100, 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, + 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631, 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, + 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162, 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, + 57546, 57576, 57605, 57634, 57664, 57694, 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, + 58137, 58167, 58196, 58226, 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, + 58727, 58757, 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288, + 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820, 59850, 59879, + 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352, 60381, 60411, 60440, 60469, + 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883, 60912, 60942, 60972, 61002, 61031, 61061, + 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415, 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, + 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947, 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, + 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478, 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, + 62862, 62891, 62921, 62950, 62980, 63009, 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, + 63453, 63482, 63512, 63541, 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, + 64043, 64073, 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603, + 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136, 65166, 65195, + 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667, 65697, 65726, 65755, 65785, + 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199, 66228, 66258, 66287, 66317, 66346, 66376, + 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730, 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, + 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262, 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, + 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793, 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, + 68177, 68207, 68236, 68266, 68295, 68325, 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, + 68768, 68797, 68827, 68857, 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, + 69359, 69388, 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919, + 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451, 70481, 70510, + 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983, 71013, 71042, 71071, 71101, + 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514, 71543, 71573, 71602, 71632, 71662, 71691, + 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046, 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, + 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577, 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, + 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109, 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, + 73493, 73523, 73552, 73581, 73611, 73640, 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, + 74083, 74113, 74142, 74172, 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, + 74675, 74704, 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235, + 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766, 75796, 75826, + 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299, 76328, 76358, 76387, 76416, + 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830, 76859, 76889, 76918, 76948, 76977, 77007, + 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361, 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, + 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893, 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, + 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425, 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, + 78808, 78838, 78867, 78897, 78926, 78956, 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, + 79399, 79428, 79458, 79487, 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, + 79990]; + diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..9465605 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,111 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +module.exports = require('./main'); +require('./plus'); +require('./calendars/coptic'); +require('./calendars/discworld'); +require('./calendars/ethiopian'); +require('./calendars/ethiopian-am'); +require('./calendars/hebrew'); +require('./calendars/hebrew-he'); +require('./calendars/islamic'); +require('./calendars/islamic-ar'); +require('./calendars/islamic-fa'); +require('./calendars/julian'); +require('./calendars/mayan'); +require('./calendars/nanakshahi'); +require('./calendars/nanakshahi-pa'); +require('./calendars/nepali'); +require('./calendars/nepali-ne'); +require('./calendars/persian'); +require('./calendars/persian-fa'); +require('./calendars/taiwan'); +require('./calendars/taiwan-zh-TW'); +require('./calendars/thai'); +require('./calendars/thai-th'); +require('./calendars/ummalqura'); +require('./calendars/ummalqura-ar'); +require('./regional/af'); +require('./regional/am'); +require('./regional/ar'); +require('./regional/ar-DZ'); +require('./regional/ar-EG'); +require('./regional/az'); +require('./regional/bg'); +require('./regional/bs'); +require('./regional/ca'); +require('./regional/cs'); +require('./regional/da'); +require('./regional/de'); +require('./regional/de-CH'); +require('./regional/el'); +require('./regional/en-AU'); +require('./regional/en-GB'); +require('./regional/en-NZ'); +require('./regional/eo'); +require('./regional/es'); +require('./regional/es-AR'); +require('./regional/es-PE'); +require('./regional/et'); +require('./regional/eu'); +require('./regional/fa'); +require('./regional/fi'); +require('./regional/fo'); +require('./regional/fr'); +require('./regional/fr-CH'); +require('./regional/gl'); +require('./regional/gu'); +require('./regional/he'); +require('./regional/hi-IN'); +require('./regional/hr'); +require('./regional/hu'); +require('./regional/hy'); +require('./regional/id'); +require('./regional/is'); +require('./regional/it'); +require('./regional/ja'); +require('./regional/ka'); +require('./regional/km'); +require('./regional/ko'); +require('./regional/lt'); +require('./regional/lv'); +require('./regional/me'); +require('./regional/me-ME'); +require('./regional/mk'); +require('./regional/ml'); +require('./regional/ms'); +require('./regional/mt'); +require('./regional/nl'); +require('./regional/nl-BE'); +require('./regional/no'); +require('./regional/pa'); +require('./regional/pl'); +require('./regional/pt-BR'); +require('./regional/rm'); +require('./regional/ro'); +require('./regional/ru'); +require('./regional/sk'); +require('./regional/sl'); +require('./regional/sq'); +require('./regional/sr'); +require('./regional/sr-SR'); +require('./regional/sv'); +require('./regional/ta'); +require('./regional/th'); +require('./regional/tr'); +require('./regional/tt'); +require('./regional/uk'); +require('./regional/ur'); +require('./regional/vi'); +require('./regional/zh-CN'); +require('./regional/zh-HK'); +require('./regional/zh-TW'); \ No newline at end of file diff --git a/dist/main.js b/dist/main.js new file mode 100644 index 0000000..edb3d5b --- /dev/null +++ b/dist/main.js @@ -0,0 +1,903 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Calendars for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var assign = require('object-assign'); + + +function Calendars() { + this.regionalOptions = []; + this.regionalOptions[''] = { + invalidCalendar: 'Calendar {0} not found', + invalidDate: 'Invalid {0} date', + invalidMonth: 'Invalid {0} month', + invalidYear: 'Invalid {0} year', + differentCalendars: 'Cannot mix {0} and {1} dates' + }; + this.local = this.regionalOptions['']; + this.calendars = {}; + this._localCals = {}; +} + +/** Create the calendars plugin. +

Provides support for various world calendars in a consistent manner.

+ @class Calendars + @example _exports.instance('julian').newDate(2014, 12, 25) */ +assign(Calendars.prototype, { + + /** Obtain a calendar implementation and localisation. + @memberof Calendars + @param [name='gregorian'] {string} The name of the calendar, e.g. 'gregorian', 'persian', 'islamic'. + @param [language=''] {string} The language code to use for localisation (default is English). + @return {Calendar} The calendar and localisation. + @throws Error if calendar not found. */ + instance: function(name, language) { + name = (name || 'gregorian').toLowerCase(); + language = language || ''; + var cal = this._localCals[name + '-' + language]; + if (!cal && this.calendars[name]) { + cal = new this.calendars[name](language); + this._localCals[name + '-' + language] = cal; + } + if (!cal) { + throw (this.local.invalidCalendar || this.regionalOptions[''].invalidCalendar). + replace(/\{0\}/, name); + } + return cal; + }, + + /** Create a new date - for today if no other parameters given. + @memberof Calendars + @param year {CDate|number} The date to copy or the year for the date. + @param [month] {number} The month for the date. + @param [day] {number} The day for the date. + @param [calendar='gregorian'] {BaseCalendar|string} The underlying calendar or the name of the calendar. + @param [language=''] {string} The language to use for localisation (default English). + @return {CDate} The new date. + @throws Error if an invalid date. */ + newDate: function(year, month, day, calendar, language) { + calendar = (year != null && year.year ? year.calendar() : (typeof calendar === 'string' ? + this.instance(calendar, language) : calendar)) || this.instance(); + return calendar.newDate(year, month, day); + }, + + /** A simple digit substitution function for localising numbers via the Calendar digits option. + @member Calendars + @param digits {string[]} The substitute digits, for 0 through 9. + @return {function} The substitution function. */ + substituteDigits: function(digits) { + return function(value) { + return (value + '').replace(/[0-9]/g, function(digit) { + return digits[digit]; + }); + } + }, + + /** Digit substitution function for localising Chinese style numbers via the Calendar digits option. + @member Calendars + @param digits {string[]} The substitute digits, for 0 through 9. + @param powers {string[]} The characters denoting powers of 10, i.e. 1, 10, 100, 1000. + @return {function} The substitution function. */ + substituteChineseDigits: function(digits, powers) { + return function(value) { + var localNumber = ''; + var power = 0; + while (value > 0) { + var units = value % 10; + localNumber = (units === 0 ? '' : digits[units] + powers[power]) + localNumber; + power++; + value = Math.floor(value / 10); + } + if (localNumber.indexOf(digits[1] + powers[1]) === 0) { + localNumber = localNumber.substr(1); + } + return localNumber || digits[0]; + } + } +}); + +/** Generic date, based on a particular calendar. + @class CDate + @param calendar {BaseCalendar} The underlying calendar implementation. + @param year {number} The year for this date. + @param month {number} The month for this date. + @param day {number} The day for this date. + @return {CDate} The date object. + @throws Error if an invalid date. */ +function CDate(calendar, year, month, day) { + this._calendar = calendar; + this._year = year; + this._month = month; + this._day = day; + if (this._calendar._validateLevel === 0 && + !this._calendar.isValid(this._year, this._month, this._day)) { + throw (_exports.local.invalidDate || _exports.regionalOptions[''].invalidDate). + replace(/\{0\}/, this._calendar.local.name); + } +} + +/** Pad a numeric value with leading zeroes. + @private + @param value {number} The number to format. + @param length {number} The minimum length. + @return {string} The formatted number. */ +function pad(value, length) { + value = '' + value; + return '000000'.substring(0, length - value.length) + value; +} + +assign(CDate.prototype, { + + /** Create a new date. + @memberof CDate + @param [year] {CDate|number} The date to copy or the year for the date (default this date). + @param [month] {number} The month for the date. + @param [day] {number} The day for the date. + @return {CDate} The new date. + @throws Error if an invalid date. */ + newDate: function(year, month, day) { + return this._calendar.newDate((year == null ? this : year), month, day); + }, + + /** Set or retrieve the year for this date. + @memberof CDate + @param [year] {number} The year for the date. + @return {number|CDate} The date's year (if no parameter) or the updated date. + @throws Error if an invalid date. */ + year: function(year) { + return (arguments.length === 0 ? this._year : this.set(year, 'y')); + }, + + /** Set or retrieve the month for this date. + @memberof CDate + @param [month] {number} The month for the date. + @return {number|CDate} The date's month (if no parameter) or the updated date. + @throws Error if an invalid date. */ + month: function(month) { + return (arguments.length === 0 ? this._month : this.set(month, 'm')); + }, + + /** Set or retrieve the day for this date. + @memberof CDate + @param [day] {number} The day for the date. + @return {number|CData} The date's day (if no parameter) or the updated date. + @throws Error if an invalid date. */ + day: function(day) { + return (arguments.length === 0 ? this._day : this.set(day, 'd')); + }, + + /** Set new values for this date. + @memberof CDate + @param year {number} The year for the date. + @param month {number} The month for the date. + @param day {number} The day for the date. + @return {CDate} The updated date. + @throws Error if an invalid date. */ + date: function(year, month, day) { + if (!this._calendar.isValid(year, month, day)) { + throw (_exports.local.invalidDate || _exports.regionalOptions[''].invalidDate). + replace(/\{0\}/, this._calendar.local.name); + } + this._year = year; + this._month = month; + this._day = day; + return this; + }, + + /** Determine whether this date is in a leap year. + @memberof CDate + @return {boolean} true if this is a leap year, false if not. */ + leapYear: function() { + return this._calendar.leapYear(this); + }, + + /** Retrieve the epoch designator for this date, e.g. BCE or CE. + @memberof CDate + @return {string} The current epoch. */ + epoch: function() { + return this._calendar.epoch(this); + }, + + /** Format the year, if not a simple sequential number. + @memberof CDate + @return {string} The formatted year. */ + formatYear: function() { + return this._calendar.formatYear(this); + }, + + /** Retrieve the month of the year for this date, + i.e. the month's position within a numbered year. + @memberof CDate + @return {number} The month of the year: minMonth to months per year. */ + monthOfYear: function() { + return this._calendar.monthOfYear(this); + }, + + /** Retrieve the week of the year for this date. + @memberof CDate + @return {number} The week of the year: 1 to weeks per year. */ + weekOfYear: function() { + return this._calendar.weekOfYear(this); + }, + + /** Retrieve the number of days in the year for this date. + @memberof CDate + @return {number} The number of days in this year. */ + daysInYear: function() { + return this._calendar.daysInYear(this); + }, + + /** Retrieve the day of the year for this date. + @memberof CDate + @return {number} The day of the year: 1 to days per year. */ + dayOfYear: function() { + return this._calendar.dayOfYear(this); + }, + + /** Retrieve the number of days in the month for this date. + @memberof CDate + @return {number} The number of days. */ + daysInMonth: function() { + return this._calendar.daysInMonth(this); + }, + + /** Retrieve the day of the week for this date. + @memberof CDate + @return {number} The day of the week: 0 to number of days - 1. */ + dayOfWeek: function() { + return this._calendar.dayOfWeek(this); + }, + + /** Determine whether this date is a week day. + @memberof CDate + @return {boolean} true if a week day, false if not. */ + weekDay: function() { + return this._calendar.weekDay(this); + }, + + /** Retrieve additional information about this date. + @memberof CDate + @return {object} Additional information - contents depends on calendar. */ + extraInfo: function() { + return this._calendar.extraInfo(this); + }, + + /** Add period(s) to a date. + @memberof CDate + @param offset {number} The number of periods to adjust by. + @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day. + @return {CDate} The updated date. */ + add: function(offset, period) { + return this._calendar.add(this, offset, period); + }, + + /** Set a portion of the date. + @memberof CDate + @param value {number} The new value for the period. + @param period {string} One of 'y' for year, 'm' for month, 'd' for day. + @return {CDate} The updated date. + @throws Error if not a valid date. */ + set: function(value, period) { + return this._calendar.set(this, value, period); + }, + + /** Compare this date to another date. + @memberof CDate + @param date {CDate} The other date. + @return {number} -1 if this date is before the other date, + 0 if they are equal, or +1 if this date is after the other date. */ + compareTo: function(date) { + if (this._calendar.name !== date._calendar.name) { + throw (_exports.local.differentCalendars || _exports.regionalOptions[''].differentCalendars). + replace(/\{0\}/, this._calendar.local.name).replace(/\{1\}/, date._calendar.local.name); + } + var c = (this._year !== date._year ? this._year - date._year : + this._month !== date._month ? this.monthOfYear() - date.monthOfYear() : + this._day - date._day); + return (c === 0 ? 0 : (c < 0 ? -1 : +1)); + }, + + /** Retrieve the calendar backing this date. + @memberof CDate + @return {BaseCalendar} The calendar implementation. */ + calendar: function() { + return this._calendar; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof CDate + @return {number} The equivalent Julian date. */ + toJD: function() { + return this._calendar.toJD(this); + }, + + /** Create a new date from a Julian date. + @memberof CDate + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + return this._calendar.fromJD(jd); + }, + + /** Convert this date to a standard (Gregorian) JavaScript Date. + @memberof CDate + @return {Date} The equivalent JavaScript date. */ + toJSDate: function() { + return this._calendar.toJSDate(this); + }, + + /** Create a new date from a standard (Gregorian) JavaScript Date. + @memberof CDate + @param jsd {Date} The JavaScript date to convert. + @return {CDate} The equivalent date. */ + fromJSDate: function(jsd) { + return this._calendar.fromJSDate(jsd); + }, + + /** Convert to a string for display. + @memberof CDate + @return {string} This date as a string. */ + toString: function() { + return (this.year() < 0 ? '-' : '') + pad(Math.abs(this.year()), 4) + + '-' + pad(this.month(), 2) + '-' + pad(this.day(), 2); + } +}); + +/** Basic functionality for all calendars. + Other calendars should extend this: +
OtherCalendar.prototype = new BaseCalendar;
+ @class BaseCalendar */ +function BaseCalendar() { + this.shortYearCutoff = '+10'; +} + +assign(BaseCalendar.prototype, { + _validateLevel: 0, // "Stack" to turn validation on/off + + /** Create a new date within this calendar - today if no parameters given. + @memberof BaseCalendar + @param year {CDate|number} The date to duplicate or the year for the date. + @param [month] {number} The month for the date. + @param [day] {number} The day for the date. + @return {CDate} The new date. + @throws Error if not a valid date or a different calendar used. */ + newDate: function(year, month, day) { + if (year == null) { + return this.today(); + } + if (year.year) { + this._validate(year, month, day, + _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate); + day = year.day(); + month = year.month(); + year = year.year(); + } + return new CDate(this, year, month, day); + }, + + /** Create a new date for today. + @memberof BaseCalendar + @return {CDate} Today's date. */ + today: function() { + return this.fromJSDate(new Date()); + }, + + /** Retrieve the epoch designator for this date. + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {string} The current epoch. + @throws Error if an invalid year or a different calendar used. */ + epoch: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, + _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear); + return (date.year() < 0 ? this.local.epochs[0] : this.local.epochs[1]); + }, + + /** Format the year, if not a simple sequential number + @memberof BaseCalendar + @param year {CDate|number} The date to format or the year to format. + @return {string} The formatted year. + @throws Error if an invalid year or a different calendar used. */ + formatYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, + _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear); + return (date.year() < 0 ? '-' : '') + pad(Math.abs(date.year()), 4) + }, + + /** Retrieve the number of months in a year. + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of months. + @throws Error if an invalid year or a different calendar used. */ + monthsInYear: function(year) { + this._validate(year, this.minMonth, this.minDay, + _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear); + return 12; + }, + + /** Calculate the month's ordinal position within the year - + for those calendars that don't start at month 1! + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param month {number} The month to examine. + @return {number} The ordinal position, starting from minMonth. + @throws Error if an invalid year/month or a different calendar used. */ + monthOfYear: function(year, month) { + var date = this._validate(year, month, this.minDay, + _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth); + return (date.month() + this.monthsInYear(date) - this.firstMonth) % + this.monthsInYear(date) + this.minMonth; + }, + + /** Calculate actual month from ordinal position, starting from minMonth. + @memberof BaseCalendar + @param year {number} The year to examine. + @param ord {number} The month's ordinal position. + @return {number} The month's number. + @throws Error if an invalid year/month. */ + fromMonthOfYear: function(year, ord) { + var m = (ord + this.firstMonth - 2 * this.minMonth) % + this.monthsInYear(year) + this.minMonth; + this._validate(year, m, this.minDay, + _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth); + return m; + }, + + /** Retrieve the number of days in a year. + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of days. + @throws Error if an invalid year or a different calendar used. */ + daysInYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, + _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear); + return (this.leapYear(date) ? 366 : 365); + }, + + /** Retrieve the day of the year for a date. + @memberof BaseCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The day of the year. + @throws Error if an invalid date or a different calendar used. */ + dayOfYear: function(year, month, day) { + var date = this._validate(year, month, day, + _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate); + return date.toJD() - this.newDate(date.year(), + this.fromMonthOfYear(date.year(), this.minMonth), this.minDay).toJD() + 1; + }, + + /** Retrieve the number of days in a week. + @memberof BaseCalendar + @return {number} The number of days. */ + daysInWeek: function() { + return 7; + }, + + /** Retrieve the day of the week for a date. + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The day of the week: 0 to number of days - 1. + @throws Error if an invalid date or a different calendar used. */ + dayOfWeek: function(year, month, day) { + var date = this._validate(year, month, day, + _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate); + return (Math.floor(this.toJD(date)) + 2) % this.daysInWeek(); + }, + + /** Retrieve additional information about a date. + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {object} Additional information - contents depends on calendar. + @throws Error if an invalid date or a different calendar used. */ + extraInfo: function(year, month, day) { + this._validate(year, month, day, + _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate); + return {}; + }, + + /** Add period(s) to a date. + Cater for no year zero. + @memberof BaseCalendar + @param date {CDate} The starting date. + @param offset {number} The number of periods to adjust by. + @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day. + @return {CDate} The updated date. + @throws Error if a different calendar used. */ + add: function(date, offset, period) { + this._validate(date, this.minMonth, this.minDay, + _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate); + return this._correctAdd(date, this._add(date, offset, period), offset, period); + }, + + /** Add period(s) to a date. + @memberof BaseCalendar + @private + @param date {CDate} The starting date. + @param offset {number} The number of periods to adjust by. + @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day. + @return {CDate} The updated date. */ + _add: function(date, offset, period) { + this._validateLevel++; + if (period === 'd' || period === 'w') { + var jd = date.toJD() + offset * (period === 'w' ? this.daysInWeek() : 1); + var d = date.calendar().fromJD(jd); + this._validateLevel--; + return [d.year(), d.month(), d.day()]; + } + try { + var y = date.year() + (period === 'y' ? offset : 0); + var m = date.monthOfYear() + (period === 'm' ? offset : 0); + var d = date.day();// + (period === 'd' ? offset : 0) + + //(period === 'w' ? offset * this.daysInWeek() : 0); + var resyncYearMonth = function(calendar) { + while (m < calendar.minMonth) { + y--; + m += calendar.monthsInYear(y); + } + var yearMonths = calendar.monthsInYear(y); + while (m > yearMonths - 1 + calendar.minMonth) { + y++; + m -= yearMonths; + yearMonths = calendar.monthsInYear(y); + } + }; + if (period === 'y') { + if (date.month() !== this.fromMonthOfYear(y, m)) { // Hebrew + m = this.newDate(y, date.month(), this.minDay).monthOfYear(); + } + m = Math.min(m, this.monthsInYear(y)); + d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m))); + } + else if (period === 'm') { + resyncYearMonth(this); + d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m))); + } + var ymd = [y, this.fromMonthOfYear(y, m), d]; + this._validateLevel--; + return ymd; + } + catch (e) { + this._validateLevel--; + throw e; + } + }, + + /** Correct a candidate date after adding period(s) to a date. + Handle no year zero if necessary. + @memberof BaseCalendar + @private + @param date {CDate} The starting date. + @param ymd {number[]} The added date. + @param offset {number} The number of periods to adjust by. + @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day. + @return {CDate} The updated date. */ + _correctAdd: function(date, ymd, offset, period) { + if (!this.hasYearZero && (period === 'y' || period === 'm')) { + if (ymd[0] === 0 || // In year zero + (date.year() > 0) !== (ymd[0] > 0)) { // Crossed year zero + var adj = {y: [1, 1, 'y'], m: [1, this.monthsInYear(-1), 'm'], + w: [this.daysInWeek(), this.daysInYear(-1), 'd'], + d: [1, this.daysInYear(-1), 'd']}[period]; + var dir = (offset < 0 ? -1 : +1); + ymd = this._add(date, offset * adj[0] + dir * adj[1], adj[2]); + } + } + return date.date(ymd[0], ymd[1], ymd[2]); + }, + + /** Set a portion of the date. + @memberof BaseCalendar + @param date {CDate} The starting date. + @param value {number} The new value for the period. + @param period {string} One of 'y' for year, 'm' for month, 'd' for day. + @return {CDate} The updated date. + @throws Error if an invalid date or a different calendar used. */ + set: function(date, value, period) { + this._validate(date, this.minMonth, this.minDay, + _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate); + var y = (period === 'y' ? value : date.year()); + var m = (period === 'm' ? value : date.month()); + var d = (period === 'd' ? value : date.day()); + if (period === 'y' || period === 'm') { + d = Math.min(d, this.daysInMonth(y, m)); + } + return date.date(y, m, d); + }, + + /** Determine whether a date is valid for this calendar. + @memberof BaseCalendar + @param year {number} The year to examine. + @param month {number} The month to examine. + @param day {number} The day to examine. + @return {boolean} true if a valid date, false if not. */ + isValid: function(year, month, day) { + this._validateLevel++; + var valid = (this.hasYearZero || year !== 0); + if (valid) { + var date = this.newDate(year, month, this.minDay); + valid = (month >= this.minMonth && month - this.minMonth < this.monthsInYear(date)) && + (day >= this.minDay && day - this.minDay < this.daysInMonth(date)); + } + this._validateLevel--; + return valid; + }, + + /** Convert the date to a standard (Gregorian) JavaScript Date. + @memberof BaseCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {Date} The equivalent JavaScript date. + @throws Error if an invalid date or a different calendar used. */ + toJSDate: function(year, month, day) { + var date = this._validate(year, month, day, + _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate); + return _exports.instance().fromJD(this.toJD(date)).toJSDate(); + }, + + /** Convert the date from a standard (Gregorian) JavaScript Date. + @memberof BaseCalendar + @param jsd {Date} The JavaScript date. + @return {CDate} The equivalent calendar date. */ + fromJSDate: function(jsd) { + return this.fromJD(_exports.instance().fromJSDate(jsd).toJD()); + }, + + /** Check that a candidate date is from the same calendar and is valid. + @memberof BaseCalendar + @private + @param year {CDate|number} The date to validate or the year to validate. + @param [month] {number} The month to validate. + @param [day] {number} The day to validate. + @param error {string} Rrror message if invalid. + @throws Error if different calendars used or invalid date. */ + _validate: function(year, month, day, error) { + if (year.year) { + if (this._validateLevel === 0 && this.name !== year.calendar().name) { + throw (_exports.local.differentCalendars || _exports.regionalOptions[''].differentCalendars). + replace(/\{0\}/, this.local.name).replace(/\{1\}/, year.calendar().local.name); + } + return year; + } + try { + this._validateLevel++; + if (this._validateLevel === 1 && !this.isValid(year, month, day)) { + throw error.replace(/\{0\}/, this.local.name); + } + var date = this.newDate(year, month, day); + this._validateLevel--; + return date; + } + catch (e) { + this._validateLevel--; + throw e; + } + } +}); + +/** Implementation of the Proleptic Gregorian Calendar. + See http://en.wikipedia.org/wiki/Gregorian_calendar + and http://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar. + @class GregorianCalendar + @augments BaseCalendar + @param [language=''] {string} The language code (default English) for localisation. */ +function GregorianCalendar(language) { + this.local = this.regionalOptions[language] || this.regionalOptions['']; +} + +GregorianCalendar.prototype = new BaseCalendar; + +assign(GregorianCalendar.prototype, { + /** The calendar name. + @memberof GregorianCalendar */ + name: 'Gregorian', + /** Julian date of start of Gregorian epoch: 1 January 0001 CE. + @memberof GregorianCalendar */ + jdEpoch: 1721425.5, + /** Days per month in a common year. + @memberof GregorianCalendar */ + daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + /** true if has a year zero, false if not. + @memberof GregorianCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof GregorianCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof GregorianCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof GregorianCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof GregorianCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + digits: null, + dateFormat: 'mm/dd/yyyy', + firstDay: 0, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof GregorianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, + _exports.local.invalidYear || _exports.regionalOptions[''].invalidYear); + var year = date.year() + (date.year() < 0 ? 1 : 0); // No year zero + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + }, + + /** Determine the week of the year for a date - ISO 8601. + @memberof GregorianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year, starting from 1. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Thursday of this week starting on Monday + var checkDate = this.newDate(year, month, day); + checkDate.add(4 - (checkDate.dayOfWeek() || 7), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a month. + @memberof GregorianCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, + _exports.local.invalidMonth || _exports.regionalOptions[''].invalidMonth); + return this.daysPerMonth[date.month() - 1] + + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0); + }, + + /** Determine whether this date is a week day. + @memberof GregorianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return (this.dayOfWeek(year, month, day) || 7) < 6; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof GregorianCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, + _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate); + year = date.year(); + month = date.month(); + day = date.day(); + if (year < 0) { year++; } // No year zero + // Jean Meeus algorithm, "Astronomical Algorithms", 1991 + if (month < 3) { + month += 12; + year--; + } + var a = Math.floor(year / 100); + var b = 2 - a + Math.floor(a / 4); + return Math.floor(365.25 * (year + 4716)) + + Math.floor(30.6001 * (month + 1)) + day + b - 1524.5; + }, + + /** Create a new date from a Julian date. + @memberof GregorianCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + // Jean Meeus algorithm, "Astronomical Algorithms", 1991 + var z = Math.floor(jd + 0.5); + var a = Math.floor((z - 1867216.25) / 36524.25); + a = z + 1 + a - Math.floor(a / 4); + var b = a + 1524; + var c = Math.floor((b - 122.1) / 365.25); + var d = Math.floor(365.25 * c); + var e = Math.floor((b - d) / 30.6001); + var day = b - d - Math.floor(e * 30.6001); + var month = e - (e > 13.5 ? 13 : 1); + var year = c - (month > 2.5 ? 4716 : 4715); + if (year <= 0) { year--; } // No year zero + return this.newDate(year, month, day); + }, + + /** Convert this date to a standard (Gregorian) JavaScript Date. + @memberof GregorianCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {Date} The equivalent JavaScript date. + @throws Error if an invalid date or a different calendar used. */ + toJSDate: function(year, month, day) { + var date = this._validate(year, month, day, + _exports.local.invalidDate || _exports.regionalOptions[''].invalidDate); + var jsd = new Date(date.year(), date.month() - 1, date.day()); + jsd.setHours(0); + jsd.setMinutes(0); + jsd.setSeconds(0); + jsd.setMilliseconds(0); + // Hours may be non-zero on daylight saving cut-over: + // > 12 when midnight changeover, but then cannot generate + // midnight datetime, so jump to 1AM, otherwise reset. + jsd.setHours(jsd.getHours() > 12 ? jsd.getHours() + 2 : 0); + return jsd; + }, + + /** Create a new date from a standard (Gregorian) JavaScript Date. + @memberof GregorianCalendar + @param jsd {Date} The JavaScript date to convert. + @return {CDate} The equivalent date. */ + fromJSDate: function(jsd) { + return this.newDate(jsd.getFullYear(), jsd.getMonth() + 1, jsd.getDate()); + } +}); + +// Singleton manager +var _exports = module.exports = new Calendars(); + +// Date template +_exports.cdate = CDate; + +// Base calendar template +_exports.baseCalendar = BaseCalendar; + +// Gregorian calendar implementation +_exports.calendars.gregorian = GregorianCalendar; + diff --git a/dist/plus.js b/dist/plus.js new file mode 100644 index 0000000..811a120 --- /dev/null +++ b/dist/plus.js @@ -0,0 +1,452 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Calendars extras for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +var assign = require('object-assign'); +var main = require('./main'); + + +assign(main.regionalOptions[''], { + invalidArguments: 'Invalid arguments', + invalidFormat: 'Cannot format a date from another calendar', + missingNumberAt: 'Missing number at position {0}', + unknownNameAt: 'Unknown name at position {0}', + unexpectedLiteralAt: 'Unexpected literal at position {0}', + unexpectedText: 'Additional text found at end' +}); +main.local = main.regionalOptions['']; + +assign(main.cdate.prototype, { + + /** Format this date. + Found in the jquery.calendars.plus.js module. + @memberof CDate + @param [format] {string} The date format to use (see formatDate). + @param [settings] {object} Options for the formatDate function. + @return {string} The formatted date. */ + formatDate: function(format, settings) { + if (typeof format !== 'string') { + settings = format; + format = ''; + } + return this._calendar.formatDate(format || '', this, settings); + } +}); + +assign(main.baseCalendar.prototype, { + + UNIX_EPOCH: main.instance().newDate(1970, 1, 1).toJD(), + SECS_PER_DAY: 24 * 60 * 60, + TICKS_EPOCH: main.instance().jdEpoch, // 1 January 0001 CE + TICKS_PER_DAY: 24 * 60 * 60 * 10000000, + + /** Date form for ATOM (RFC 3339/ISO 8601). + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + ATOM: 'yyyy-mm-dd', + /** Date form for cookies. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + COOKIE: 'D, dd M yyyy', + /** Date form for full date. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + FULL: 'DD, MM d, yyyy', + /** Date form for ISO 8601. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + ISO_8601: 'yyyy-mm-dd', + /** Date form for Julian date. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + JULIAN: 'J', + /** Date form for RFC 822. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RFC_822: 'D, d M yy', + /** Date form for RFC 850. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RFC_850: 'DD, dd-M-yy', + /** Date form for RFC 1036. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RFC_1036: 'D, d M yy', + /** Date form for RFC 1123. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RFC_1123: 'D, d M yyyy', + /** Date form for RFC 2822. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RFC_2822: 'D, d M yyyy', + /** Date form for RSS (RFC 822). + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RSS: 'D, d M yy', + /** Date form for Windows ticks. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + TICKS: '!', + /** Date form for Unix timestamp. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + TIMESTAMP: '@', + /** Date form for W3c (ISO 8601). + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + W3C: 'yyyy-mm-dd', + + /** Format a date object into a string value. + The format can be combinations of the following: + + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar + @param [format] {string} The desired format of the date (defaults to calendar format). + @param date {CDate} The date value to format. + @param [settings] {object} Addition options, whose attributes include: + @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday. + @property [dayNames] {string[]} Names of the days from Sunday. + @property [monthNamesShort] {string[]} Abbreviated names of the months. + @property [monthNames] {string[]} Names of the months. + @property [calculateWeek] {CalendarsPickerCalculateWeek} Function that determines week of the year. + @property [localNumbers=false] {boolean} true to localise numbers (if available), + false to use normal Arabic numerals. + @return {string} The date in the above format. + @throws Errors if the date is from a different calendar. */ + formatDate: function(format, date, settings) { + if (typeof format !== 'string') { + settings = date; + date = format; + format = ''; + } + if (!date) { + return ''; + } + if (date.calendar() !== this) { + throw main.local.invalidFormat || main.regionalOptions[''].invalidFormat; + } + format = format || this.local.dateFormat; + settings = settings || {}; + var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort; + var dayNames = settings.dayNames || this.local.dayNames; + var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort; + var monthNames = settings.monthNames || this.local.monthNames; + var calculateWeek = settings.calculateWeek || this.local.calculateWeek; + // Check whether a format character is doubled + var doubled = function(match, step) { + var matches = 1; + while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) { + matches++; + } + iFormat += matches - 1; + return Math.floor(matches / (step || 1)) > 1; + }; + // Format a number, with leading zeroes if necessary + var formatNumber = function(match, value, len, step) { + var num = '' + value; + if (doubled(match, step)) { + while (num.length < len) { + num = '0' + num; + } + } + return num; + }; + // Format a name, short or long as requested + var formatName = function(match, value, shortNames, longNames) { + return (doubled(match) ? longNames[value] : shortNames[value]); + }; + // Localise numbers if requested and available + var digits = this.local.digits; + var localiseNumbers = function(value) { + return (settings.localNumbers && digits ? digits(value) : value); + }; + var output = ''; + var literal = false; + for (var iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) { + if (format.charAt(iFormat) === "'" && !doubled("'")) { + literal = false; + } + else { + output += format.charAt(iFormat); + } + } + else { + switch (format.charAt(iFormat)) { + case 'd': output += localiseNumbers(formatNumber('d', date.day(), 2)); break; + case 'D': output += formatName('D', date.dayOfWeek(), + dayNamesShort, dayNames); break; + case 'o': output += formatNumber('o', date.dayOfYear(), 3); break; + case 'w': output += formatNumber('w', date.weekOfYear(), 2); break; + case 'm': output += localiseNumbers(formatNumber('m', date.month(), 2)); break; + case 'M': output += formatName('M', date.month() - this.minMonth, + monthNamesShort, monthNames); break; + case 'y': + output += (doubled('y', 2) ? date.year() : + (date.year() % 100 < 10 ? '0' : '') + date.year() % 100); + break; + case 'Y': + doubled('Y', 2); + output += date.formatYear(); + break; + case 'J': output += date.toJD(); break; + case '@': output += (date.toJD() - this.UNIX_EPOCH) * this.SECS_PER_DAY; break; + case '!': output += (date.toJD() - this.TICKS_EPOCH) * this.TICKS_PER_DAY; break; + case "'": + if (doubled("'")) { + output += "'"; + } + else { + literal = true; + } + break; + default: + output += format.charAt(iFormat); + } + } + } + return output; + }, + + /** Parse a string value into a date object. + See formatDate for the possible formats, plus: + + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar + @param format {string} The expected format of the date ('' for default calendar format). + @param value {string} The date in the above format. + @param [settings] {object} Additional options whose attributes include: + @property [shortYearCutoff] {number} The cutoff year for determining the century. + @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday. + @property [dayNames] {string[]} Names of the days from Sunday. + @property [monthNamesShort] {string[]} Abbreviated names of the months. + @property [monthNames] {string[]} Names of the months. + @return {CDate} The extracted date value or null if value is blank. + @throws Errors if the format and/or value are missing, + if the value doesn't match the format, or if the date is invalid. */ + parseDate: function(format, value, settings) { + if (value == null) { + throw main.local.invalidArguments || main.regionalOptions[''].invalidArguments; + } + value = (typeof value === 'object' ? value.toString() : value + ''); + if (value === '') { + return null; + } + format = format || this.local.dateFormat; + settings = settings || {}; + var shortYearCutoff = settings.shortYearCutoff || this.shortYearCutoff; + shortYearCutoff = (typeof shortYearCutoff !== 'string' ? shortYearCutoff : + this.today().year() % 100 + parseInt(shortYearCutoff, 10)); + var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort; + var dayNames = settings.dayNames || this.local.dayNames; + var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort; + var monthNames = settings.monthNames || this.local.monthNames; + var jd = -1; + var year = -1; + var month = -1; + var day = -1; + var doy = -1; + var shortYear = false; + var literal = false; + // Check whether a format character is doubled + var doubled = function(match, step) { + var matches = 1; + while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) { + matches++; + } + iFormat += matches - 1; + return Math.floor(matches / (step || 1)) > 1; + }; + // Extract a number from the string value + var getNumber = function(match, step) { + var isDoubled = doubled(match, step); + var size = [2, 3, isDoubled ? 4 : 2, isDoubled ? 4 : 2, 10, 11, 20]['oyYJ@!'.indexOf(match) + 1]; + var digits = new RegExp('^-?\\d{1,' + size + '}'); + var num = value.substring(iValue).match(digits); + if (!num) { + throw (main.local.missingNumberAt || main.regionalOptions[''].missingNumberAt). + replace(/\{0\}/, iValue); + } + iValue += num[0].length; + return parseInt(num[0], 10); + }; + // Extract a name from the string value and convert to an index + var calendar = this; + var getName = function(match, shortNames, longNames, step) { + var names = (doubled(match, step) ? longNames : shortNames); + for (var i = 0; i < names.length; i++) { + if (value.substr(iValue, names[i].length).toLowerCase() === names[i].toLowerCase()) { + iValue += names[i].length; + return i + calendar.minMonth; + } + } + throw (main.local.unknownNameAt || main.regionalOptions[''].unknownNameAt). + replace(/\{0\}/, iValue); + }; + // Confirm that a literal character matches the string value + var checkLiteral = function() { + if (value.charAt(iValue) !== format.charAt(iFormat)) { + throw (main.local.unexpectedLiteralAt || + main.regionalOptions[''].unexpectedLiteralAt).replace(/\{0\}/, iValue); + } + iValue++; + }; + var iValue = 0; + for (var iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) { + if (format.charAt(iFormat) === "'" && !doubled("'")) { + literal = false; + } + else { + checkLiteral(); + } + } + else { + switch (format.charAt(iFormat)) { + case 'd': day = getNumber('d'); break; + case 'D': getName('D', dayNamesShort, dayNames); break; + case 'o': doy = getNumber('o'); break; + case 'w': getNumber('w'); break; + case 'm': month = getNumber('m'); break; + case 'M': month = getName('M', monthNamesShort, monthNames); break; + case 'y': + var iSave = iFormat; + shortYear = !doubled('y', 2); + iFormat = iSave; + year = getNumber('y', 2); + break; + case 'Y': year = getNumber('Y', 2); break; + case 'J': + jd = getNumber('J') + 0.5; + if (value.charAt(iValue) === '.') { + iValue++; + getNumber('J'); + } + break; + case '@': jd = getNumber('@') / this.SECS_PER_DAY + this.UNIX_EPOCH; break; + case '!': jd = getNumber('!') / this.TICKS_PER_DAY + this.TICKS_EPOCH; break; + case '*': iValue = value.length; break; + case "'": + if (doubled("'")) { + checkLiteral(); + } + else { + literal = true; + } + break; + default: checkLiteral(); + } + } + } + if (iValue < value.length) { + throw main.local.unexpectedText || main.regionalOptions[''].unexpectedText; + } + if (year === -1) { + year = this.today().year(); + } + else if (year < 100 && shortYear) { + year += (shortYearCutoff === -1 ? 1900 : this.today().year() - + this.today().year() % 100 - (year <= shortYearCutoff ? 0 : 100)); + } + if (doy > -1) { + month = 1; + day = doy; + for (var dim = this.daysInMonth(year, month); day > dim; dim = this.daysInMonth(year, month)) { + month++; + day -= dim; + } + } + return (jd > -1 ? this.fromJD(jd) : this.newDate(year, month, day)); + }, + + /** A date may be specified as an exact value or a relative one. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar + @param dateSpec {CDate|number|string} The date as an object or string in the given format or + an offset - numeric days from today, or string amounts and periods, e.g. '+1m +2w'. + @param defaultDate {CDate} The date to use if no other supplied, may be null. + @param currentDate {CDate} The current date as a possible basis for relative dates, + if null today is used (optional) + @param [dateFormat] {string} The expected date format - see formatDate. + @param [settings] {object} Additional options whose attributes include: + @property [shortYearCutoff] {number} The cutoff year for determining the century. + @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday. + @property [dayNames] {string[]} Names of the days from Sunday. + @property [monthNamesShort] {string[]} Abbreviated names of the months. + @property [monthNames] {string[]} Names of the months. + @return {CDate} The decoded date. */ + determineDate: function(dateSpec, defaultDate, currentDate, dateFormat, settings) { + if (currentDate && typeof currentDate !== 'object') { + settings = dateFormat; + dateFormat = currentDate; + currentDate = null; + } + if (typeof dateFormat !== 'string') { + settings = dateFormat; + dateFormat = ''; + } + var calendar = this; + var offsetString = function(offset) { + try { + return calendar.parseDate(dateFormat, offset, settings); + } + catch (e) { + // Ignore + } + offset = offset.toLowerCase(); + var date = (offset.match(/^c/) && currentDate ? + currentDate.newDate() : null) || calendar.today(); + var pattern = /([+-]?[0-9]+)\s*(d|w|m|y)?/g; + var matches = pattern.exec(offset); + while (matches) { + date.add(parseInt(matches[1], 10), matches[2] || 'd'); + matches = pattern.exec(offset); + } + return date; + }; + defaultDate = (defaultDate ? defaultDate.newDate() : null); + dateSpec = (dateSpec == null ? defaultDate : + (typeof dateSpec === 'string' ? offsetString(dateSpec) : (typeof dateSpec === 'number' ? + (isNaN(dateSpec) || dateSpec === Infinity || dateSpec === -Infinity ? defaultDate : + calendar.today().add(dateSpec, 'd')) : calendar.newDate(dateSpec)))); + return dateSpec; + } +}); + diff --git a/dist/regional/af.js b/dist/regional/af.js new file mode 100644 index 0000000..f6dd92a --- /dev/null +++ b/dist/regional/af.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Afrikaans localisation for Gregorian/Julian calendars for jQuery. + Written by Renier Pretorius and Ruediger Thiede. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['af'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie', + 'Julie','Augustus','September','Oktober','November','Desember'], + monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', + 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], + dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'], + dayNamesShort: ['Son', 'Maan', 'Dins', 'Woens', 'Don', 'Vry', 'Sat'], + dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['af'] = + _gregorian.prototype.regionalOptions['af']; +} diff --git a/dist/regional/am.js b/dist/regional/am.js new file mode 100644 index 0000000..86eb653 --- /dev/null +++ b/dist/regional/am.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Amharic (አማርኛ) localisation for Gregorian/Julian calendars for jQuery. + Leyu Sisay. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['am'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['ጃንዋሪ','ፈብርዋሪ','ማርች','አፕሪል','ሜይ','ጁን', + 'ጁላይ','ኦገስት','ሴፕቴምበር','ኦክቶበር','ኖቬምበር','ዲሴምበር'], + monthNamesShort: ['ጃንዋ', 'ፈብር', 'ማርች', 'አፕሪ', 'ሜይ', 'ጁን', + 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክቶ', 'ኖቬም', 'ዲሴም'], + dayNames: ['ሰንዴይ', 'መንዴይ', 'ትዩስዴይ', 'ዌንስዴይ', 'ተርሰዴይ', 'ፍራይዴይ', 'ሳተርዴይ'], + dayNamesShort: ['ሰንዴ', 'መንዴ', 'ትዩስ', 'ዌንስ', 'ተርሰ', 'ፍራይ', 'ሳተር'], + dayNamesMin: ['ሰን', 'መን', 'ትዩ', 'ዌን', 'ተር', 'ፍራ', 'ሳተ'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['am'] = + _gregorian.prototype.regionalOptions['am']; +} diff --git a/dist/regional/ar-DZ.js b/dist/regional/ar-DZ.js new file mode 100644 index 0000000..25ff2f1 --- /dev/null +++ b/dist/regional/ar-DZ.js @@ -0,0 +1,36 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Algerian (and Tunisian) Arabic localisation for Gregorian/Julian calendars for jQuery. + Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ar-DZ'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', + 'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'], + monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 6, + isRTL: true +}; +if (_julian) { + _julian.prototype.regionalOptions['ar-DZ'] = + _gregorian.prototype.regionalOptions['ar-DZ']; +} diff --git a/dist/regional/ar-EG.js b/dist/regional/ar-EG.js new file mode 100644 index 0000000..fb02116 --- /dev/null +++ b/dist/regional/ar-EG.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Arabic localisation for Gregorian/Julian calendars for jQuery. + Mahmoud Khaled -- mahmoud.khaled@badrit.com + NOTE: monthNames are the new months names */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ar-EG'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['يناير', 'فبراير', 'مارس', 'إبريل', 'مايو', 'يونية', + 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + dayNamesMin: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 6, + isRTL: true +}; +if (_julian) { + _julian.prototype.regionalOptions['ar-EG'] = + _gregorian.prototype.regionalOptions['ar-EG']; +} diff --git a/dist/regional/ar.js b/dist/regional/ar.js new file mode 100644 index 0000000..fd5b51f --- /dev/null +++ b/dist/regional/ar.js @@ -0,0 +1,38 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Arabic localisation for Gregorian/Julian calendars for jQuery. + Khaled Al Horani -- خالد الحوراني -- koko.dw@gmail.com. */ +/* NOTE: monthNames are the original months names and they are the Arabic names, + not the new months name فبراير - يناير and there isn't any Arabic roots for these months */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ar'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران', + 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + digits: main.substituteDigits(['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩']), + dateFormat: 'dd/mm/yyyy', + firstDay: 6, + isRTL: true +}; +if (_julian) { + _julian.prototype.regionalOptions['ar'] = + _gregorian.prototype.regionalOptions['ar']; +} diff --git a/dist/regional/az.js b/dist/regional/az.js new file mode 100644 index 0000000..d35888d --- /dev/null +++ b/dist/regional/az.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Azerbaijani localisation for Gregorian/Julian calendars for jQuery. + Written by Jamil Najafov (necefov33@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['az'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun', + 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'], + monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun', + 'İyul','Avq','Sen','Okt','Noy','Dek'], + dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'], + dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'], + dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['az'] = + _gregorian.prototype.regionalOptions['az']; +} diff --git a/dist/regional/bg.js b/dist/regional/bg.js new file mode 100644 index 0000000..96c9bd8 --- /dev/null +++ b/dist/regional/bg.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Bulgarian localisation for Gregorian/Julian calendars for jQuery. + Written by Stoyan Kyosev (http://svest.org). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['bg'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Януари','Февруари','Март','Април','Май','Юни', + 'Юли','Август','Септември','Октомври','Ноември','Декември'], + monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни', + 'Юли','Авг','Сеп','Окт','Нов','Дек'], + dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'], + dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'], + dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['bg'] = + _gregorian.prototype.regionalOptions['bg']; +} diff --git a/dist/regional/bs.js b/dist/regional/bs.js new file mode 100644 index 0000000..2db001e --- /dev/null +++ b/dist/regional/bs.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Bosnian localisation for Gregorian/Julian calendars for jQuery. + Kenan Konjo. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['bs'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Mart','April','Maj','Juni', + 'Juli','August','Septembar','Oktobar','Novembar','Decembar'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + digits: null, + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['bs'] = + _gregorian.prototype.regionalOptions['bs']; +} diff --git a/dist/regional/ca.js b/dist/regional/ca.js new file mode 100644 index 0000000..488d5e6 --- /dev/null +++ b/dist/regional/ca.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Catalan localisation for Gregorian/Julian calendars for jQuery. + Writers: (joan.leon@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ca'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Gener','Febrer','Març','Abril','Maig','Juny', + 'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'], + monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun', + 'Jul','Ago','Set','Oct','Nov','Des'], + dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'], + dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'], + dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['ca'] = + _gregorian.prototype.regionalOptions['ca']; +} diff --git a/dist/regional/cs.js b/dist/regional/cs.js new file mode 100644 index 0000000..2fa5528 --- /dev/null +++ b/dist/regional/cs.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Czech localisation for Gregorian/Julian calendars for jQuery. + Written by Tomas Muller (tomas@tomas-muller.net). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['cs'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['leden','únor','březen','duben','květen','červen', + 'červenec','srpen','září','říjen','listopad','prosinec'], + monthNamesShort: ['led','úno','bře','dub','kvě','čer', + 'čvc','srp','zář','říj','lis','pro'], + dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'], + dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], + dayNamesMin: ['ne','po','út','st','čt','pá','so'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['cs'] = + _gregorian.prototype.regionalOptions['cs']; +} diff --git a/dist/regional/da.js b/dist/regional/da.js new file mode 100644 index 0000000..ab1a99d --- /dev/null +++ b/dist/regional/da.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Danish localisation for Gregorian/Julian calendars for jQuery. + Written by Jan Christensen ( deletestuff@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['da'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Marts','April','Maj','Juni', + 'Juli','August','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], + dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], + dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], + digits: null, + dateFormat: 'dd-mm-yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['da'] = + _gregorian.prototype.regionalOptions['da']; +} diff --git a/dist/regional/de-CH.js b/dist/regional/de-CH.js new file mode 100644 index 0000000..431acc3 --- /dev/null +++ b/dist/regional/de-CH.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Swiss-German localisation for Gregorian/Julian calendars for jQuery. + Written by Douglas Jose & Juerg Meier. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['de-CH'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','März','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Dezember'], + monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dez'], + dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], + dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], + dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['de-CH'] = + _gregorian.prototype.regionalOptions['de-CH']; +} diff --git a/dist/regional/de.js b/dist/regional/de.js new file mode 100644 index 0000000..43fed90 --- /dev/null +++ b/dist/regional/de.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + German localisation for Gregorian/Julian calendars for jQuery. + Written by Milian Wolff (mail@milianw.de). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['de'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','März','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Dezember'], + monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dez'], + dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], + dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], + dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['de'] = + _gregorian.prototype.regionalOptions['de']; +} diff --git a/dist/regional/el.js b/dist/regional/el.js new file mode 100644 index 0000000..b7cf6f0 --- /dev/null +++ b/dist/regional/el.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Greek localisation for Gregorian/Julian calendars for jQuery. + Written by Alex Cicovic (http://www.alexcicovic.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['el'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος', + 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'], + monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν', + 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'], + dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'], + dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'], + dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['el'] = + _gregorian.prototype.regionalOptions['el']; +} diff --git a/dist/regional/en-AU.js b/dist/regional/en-AU.js new file mode 100644 index 0000000..9e6f2de --- /dev/null +++ b/dist/regional/en-AU.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + English/Australia localisation for Gregorian/Julian calendars for jQuery. + Based on en-GB. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['en-AU'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['en-AU'] = + _gregorian.prototype.regionalOptions['en-AU']; +} diff --git a/dist/regional/en-GB.js b/dist/regional/en-GB.js new file mode 100644 index 0000000..7dc3eb1 --- /dev/null +++ b/dist/regional/en-GB.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + English/UK localisation for Gregorian/Julian calendars for jQuery. + Stuart. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['en-GB'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['en-GB'] = + _gregorian.prototype.regionalOptions['en-GB']; +} diff --git a/dist/regional/en-NZ.js b/dist/regional/en-NZ.js new file mode 100644 index 0000000..4e9333f --- /dev/null +++ b/dist/regional/en-NZ.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + English/New Zealand localisation for Gregorian/Julian calendars for jQuery. + Based on en-GB. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['en-NZ'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['en-NZ'] = + _gregorian.prototype.regionalOptions['en-NZ']; +} diff --git a/dist/regional/eo.js b/dist/regional/eo.js new file mode 100644 index 0000000..0248711 --- /dev/null +++ b/dist/regional/eo.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Esperanto localisation for Gregorian/Julian calendars for jQuery. + Written by Olivier M. (olivierweb@ifrance.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['eo'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio', + 'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aŭg','Sep','Okt','Nov','Dec'], + dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'], + dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['eo'] = + _gregorian.prototype.regionalOptions['eo']; +} diff --git a/dist/regional/es-AR.js b/dist/regional/es-AR.js new file mode 100644 index 0000000..8e2eca3 --- /dev/null +++ b/dist/regional/es-AR.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Spanish/Argentina localisation for Gregorian/Julian calendars for jQuery. + Written by Esteban Acosta Villafane (esteban.acosta@globant.com) of Globant (http://www.globant.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['es-AR'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', + 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], + monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', + 'Jul','Ago','Sep','Oct','Nov','Dic'], + dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['es-AR'] = + _gregorian.prototype.regionalOptions['es-AR']; +} diff --git a/dist/regional/es-PE.js b/dist/regional/es-PE.js new file mode 100644 index 0000000..6a72b1a --- /dev/null +++ b/dist/regional/es-PE.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Spanish/Perú localisation for Gregorian/Julian calendars for jQuery. + Written by Fischer Tirado (fishdev@globant.com) of ASIX (http://www.asixonline.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['es-PE'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', + 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], + monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', + 'Jul','Ago','Sep','Oct','Nov','Dic'], + dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mié','Jue','Vie','Sab'], + dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['es-PE'] = + _gregorian.prototype.regionalOptions['es-PE']; +} diff --git a/dist/regional/es.js b/dist/regional/es.js new file mode 100644 index 0000000..2c13ab6 --- /dev/null +++ b/dist/regional/es.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Spanish localisation for Gregorian/Julian calendars for jQuery. + Traducido por Vester (xvester@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['es'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', + 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], + monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', + 'Jul','Ago','Sep','Oct','Nov','Dic'], + dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['es'] = + _gregorian.prototype.regionalOptions['es']; +} diff --git a/dist/regional/et.js b/dist/regional/et.js new file mode 100644 index 0000000..c2c5194 --- /dev/null +++ b/dist/regional/et.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Estonian localisation for Gregorian/Julian calendars for jQuery. + Written by Mart Sõmermaa (mrts.pydev at gmail com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['et'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni', + 'Juuli','August','September','Oktoober','November','Detsember'], + monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni', + 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'], + dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'], + dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'], + dayNamesMin: ['P','E','T','K','N','R','L'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['et'] = + _gregorian.prototype.regionalOptions['et']; +} diff --git a/dist/regional/eu.js b/dist/regional/eu.js new file mode 100644 index 0000000..cc3e267 --- /dev/null +++ b/dist/regional/eu.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Basque localisation for Gregorian/Julian calendars for jQuery. + Karrikas-ek itzulia (karrikas@karrikas.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['eu'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Urtarrila','Otsaila','Martxoa','Apirila','Maiatza','Ekaina', + 'Uztaila','Abuztua','Iraila','Urria','Azaroa','Abendua'], + monthNamesShort: ['Urt','Ots','Mar','Api','Mai','Eka', + 'Uzt','Abu','Ira','Urr','Aza','Abe'], + dayNames: ['Igandea','Astelehena','Asteartea','Asteazkena','Osteguna','Ostirala','Larunbata'], + dayNamesShort: ['Iga','Ast','Ast','Ast','Ost','Ost','Lar'], + dayNamesMin: ['Ig','As','As','As','Os','Os','La'], + digits: null, + dateFormat: 'yyyy/mm/dd', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['eu'] = + _gregorian.prototype.regionalOptions['eu']; +} diff --git a/dist/regional/fa.js b/dist/regional/fa.js new file mode 100644 index 0000000..dc587d4 --- /dev/null +++ b/dist/regional/fa.js @@ -0,0 +1,36 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Farsi/Persian localisation for Gregorian/Julian calendars for jQuery. + Javad Mowlanezhad -- jmowla@gmail.com */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['fa'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور', + 'مهر','آبان','آذر','دي','بهمن','اسفند'], + monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], + dayNames: ['يکشنبه','دوشنبه','سه‌شنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'], + dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'], + dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'], + digits: main.substituteDigits(['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']), + dateFormat: 'yyyy/mm/dd', + firstDay: 6, + isRTL: true +}; +if (_julian) { + _julian.prototype.regionalOptions['fa'] = + _gregorian.prototype.regionalOptions['fa']; +} diff --git a/dist/regional/fi.js b/dist/regional/fi.js new file mode 100644 index 0000000..3bc6784 --- /dev/null +++ b/dist/regional/fi.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Finnish localisation for Gregorian/Julian calendars for jQuery. + Written by Harri Kilpiö (harrikilpio@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['fi'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu', + 'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'], + monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä', + 'Heinä','Elo','Syys','Loka','Marras','Joulu'], + dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'], + dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'], + dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['fi'] = + _gregorian.prototype.regionalOptions['fi']; +} diff --git a/dist/regional/fo.js b/dist/regional/fo.js new file mode 100644 index 0000000..874dfbc --- /dev/null +++ b/dist/regional/fo.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Faroese localisation for Gregorian/Julian calendars for jQuery. + Written by Sverri Mohr Olsen, sverrimo@gmail.com */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['fo'] = { + name: 'Gregorianskur', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni', + 'Juli','August','September','Oktober','November','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', + 'Jul','Aug','Sep','Okt','Nov','Des'], + dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'], + dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'], + dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'], + digits: null, + dateFormat: 'dd-mm-yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['fo'] = + _gregorian.prototype.regionalOptions['fo']; +} diff --git a/dist/regional/fr-CH.js b/dist/regional/fr-CH.js new file mode 100644 index 0000000..5e71823 --- /dev/null +++ b/dist/regional/fr-CH.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Swiss French localisation for Gregorian/Julian calendars for jQuery. + Written by Martin Voelkle (martin.voelkle@e-tc.ch). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['fr-CH'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', + 'Jul','Aoû','Sep','Oct','Nov','Déc'], + dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], + dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['fr-CH'] = + _gregorian.prototype.regionalOptions['fr-CH']; +} diff --git a/dist/regional/fr.js b/dist/regional/fr.js new file mode 100644 index 0000000..1060681 --- /dev/null +++ b/dist/regional/fr.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + French localisation for Gregorian/Julian calendars for jQuery. + Stéphane Nahmani (sholby@sholby.net). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['fr'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', + 'Jul','Aoû','Sep','Oct','Nov','Déc'], + dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], + dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['fr'] = + _gregorian.prototype.regionalOptions['fr']; +} diff --git a/dist/regional/gl.js b/dist/regional/gl.js new file mode 100644 index 0000000..6f7b3b2 --- /dev/null +++ b/dist/regional/gl.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Iniciacion en galego para a extensión 'UI date picker' para jQuery. + Traducido por Manuel (McNuel@gmx.net). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['gl'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño', + 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'], + monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ', + 'Xul','Ago','Set','Out','Nov','Dec'], + dayNames: ['Domingo','Luns','Martes','Mércores','Xoves','Venres','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mér','Xov','Ven','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Me','Xo','Ve','Sá'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['gl'] = + _gregorian.prototype.regionalOptions['gl']; +} diff --git a/dist/regional/gu.js b/dist/regional/gu.js new file mode 100644 index 0000000..cb78f5c --- /dev/null +++ b/dist/regional/gu.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Gujarati (ગુજરાતી) localisation for Gregorian/Julian calendars for jQuery. + Naymesh Mistry (naymesh@yahoo.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['gu'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['જાન્યુઆરી','ફેબ્રુઆરી','માર્ચ','એપ્રિલ','મે','જૂન', + 'જુલાઈ','ઑગસ્ટ','સપ્ટેમ્બર','ઑક્ટોબર','નવેમ્બર','ડિસેમ્બર'], + monthNamesShort: ['જાન્યુ','ફેબ્રુ','માર્ચ','એપ્રિલ','મે','જૂન', + 'જુલાઈ','ઑગસ્ટ','સપ્ટે','ઑક્ટો','નવે','ડિસે'], + dayNames: ['રવિવાર','સોમવાર','મંગળવાર','બુધવાર','ગુરુવાર','શુક્રવાર','શનિવાર'], + dayNamesShort: ['રવિ','સોમ','મંગળ','બુધ','ગુરુ','શુક્ર','શનિ'], + dayNamesMin: ['ર','સો','મં','બુ','ગુ','શુ','શ'], + digits: main.substituteDigits(['૦', '૧', '૨', '૩', '૪', '૫', '૬', '૭', '૮', '૯']), + dateFormat: 'dd-M-yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['gu'] = + _gregorian.prototype.regionalOptions['gu']; +} diff --git a/dist/regional/he.js b/dist/regional/he.js new file mode 100644 index 0000000..4fff3ff --- /dev/null +++ b/dist/regional/he.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Hebrew localisation for Gregorian/Julian calendars for jQuery. + Written by Amir Hardon (ahardon at gmail dot com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['he'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני', + 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'], + monthNamesShort: ['1','2','3','4','5','6', + '7','8','9','10','11','12'], + dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'], + dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], + dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: true +}; +if (_julian) { + _julian.prototype.regionalOptions['he'] = + _gregorian.prototype.regionalOptions['he']; +} diff --git a/dist/regional/hi-IN.js b/dist/regional/hi-IN.js new file mode 100644 index 0000000..80f3051 --- /dev/null +++ b/dist/regional/hi-IN.js @@ -0,0 +1,35 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Hindi INDIA localisation for Gregorian/Julian calendars for jQuery. + Written by Pawan Kumar Singh. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['hi-IN'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['जनवरी',' फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून','जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + monthNamesShort: ['जन', 'फर', 'मार्च','अप्रै', 'मई', 'जून','जुलाई', 'अग', 'सित', 'अक्टू', 'नव', 'दिस'], + dayNames: ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार'], + dayNamesShort: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'], + dayNamesMin: ['र','सो','मं','बु','गु','शु','श'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['hi-IN'] = + _gregorian.prototype.regionalOptions['hi-IN']; +} diff --git a/dist/regional/hr.js b/dist/regional/hr.js new file mode 100644 index 0000000..b422e99 --- /dev/null +++ b/dist/regional/hr.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Croatian localisation for Gregorian/Julian calendars for jQuery. + Written by Vjekoslav Nesek. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['hr'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj', + 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'], + monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip', + 'Srp','Kol','Ruj','Lis','Stu','Pro'], + dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + digits: null, + dateFormat: 'dd.mm.yyyy.', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['hr'] = + _gregorian.prototype.regionalOptions['hr']; +} diff --git a/dist/regional/hu.js b/dist/regional/hu.js new file mode 100644 index 0000000..2a3d3d2 --- /dev/null +++ b/dist/regional/hu.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Hungarian localisation for Gregorian/Julian calendars for jQuery. + Written by Istvan Karaszi (jquerycalendar@spam.raszi.hu). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['hu'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június', + 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'], + monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún', + 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'], + dayNames: ['Vasárnap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'], + dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'], + dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], + digits: null, + dateFormat: 'yyyy-mm-dd', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['hu'] = + _gregorian.prototype.regionalOptions['hu']; +} diff --git a/dist/regional/hy.js b/dist/regional/hy.js new file mode 100644 index 0000000..5e5bd9c --- /dev/null +++ b/dist/regional/hy.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Armenian localisation for Gregorian/Julian calendars for jQuery. + Written by Levon Zakaryan (levon.zakaryan@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['hy'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս', + 'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'], + monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս', + 'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'], + dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'], + dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], + dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['hy'] = + _gregorian.prototype.regionalOptions['hy']; +} diff --git a/dist/regional/id.js b/dist/regional/id.js new file mode 100644 index 0000000..784543f --- /dev/null +++ b/dist/regional/id.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Indonesian localisation for Gregorian/Julian calendars for jQuery. + Written by Deden Fathurahman (dedenf@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['id'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januari','Februari','Maret','April','Mei','Juni', + 'Juli','Agustus','September','Oktober','Nopember','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', + 'Jul','Agus','Sep','Okt','Nop','Des'], + dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'], + dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'], + dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['id'] = + _gregorian.prototype.regionalOptions['id']; +} diff --git a/dist/regional/is.js b/dist/regional/is.js new file mode 100644 index 0000000..a7cfff6 --- /dev/null +++ b/dist/regional/is.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Icelandic localisation for Gregorian/Julian calendars for jQuery. + Written by Haukur H. Thorsson (haukur@eskill.is). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['is'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní', + 'Júlí','Ágúst','September','Október','Nóvember','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún', + 'Júl','Ágú','Sep','Okt','Nóv','Des'], + dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'], + dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'], + dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['is'] = + _gregorian.prototype.regionalOptions['is']; +} diff --git a/dist/regional/it.js b/dist/regional/it.js new file mode 100644 index 0000000..d8bba57 --- /dev/null +++ b/dist/regional/it.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Italian localisation for Gregorian/Julian calendars for jQuery. + Written by Apaella (apaella@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['it'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno', + 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'], + monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu', + 'Lug','Ago','Set','Ott','Nov','Dic'], + dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'], + dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'], + dayNamesMin: ['Do','Lu','Ma','Me','Gio','Ve','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['it'] = + _gregorian.prototype.regionalOptions['it']; +} diff --git a/dist/regional/ja.js b/dist/regional/ja.js new file mode 100644 index 0000000..c7480e7 --- /dev/null +++ b/dist/regional/ja.js @@ -0,0 +1,38 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Japanese localisation for Gregorian/Julian calendars for jQuery. + Written by Kentaro SATO (kentaro@ranvis.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ja'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['1月','2月','3月','4月','5月','6月', + '7月','8月','9月','10月','11月','12月'], + monthNamesShort: ['1月','2月','3月','4月','5月','6月', + '7月','8月','9月','10月','11月','12月'], + dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'], + dayNamesShort: ['日','月','火','水','木','金','土'], + dayNamesMin: ['日','月','火','水','木','金','土'], + digits: main.substituteChineseDigits( + ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九'], ['', '十', '百', '千']), + dateFormat: 'yyyy/mm/dd', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['ja'] = + _gregorian.prototype.regionalOptions['ja']; +} diff --git a/dist/regional/ka.js b/dist/regional/ka.js new file mode 100644 index 0000000..9e4ae79 --- /dev/null +++ b/dist/regional/ka.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Georgian localisation for Gregorian/Julian calendars for jQuery. + Andrei Gorbushkin. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ka'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი', + 'ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'], + monthNamesShort: ['იან', 'თებ', 'მარ', 'აპრ', 'მაისი', 'ივნ', + 'ივლ', 'აგვ', 'სექ', 'ოქტ', 'ნოე', 'დეკ'], + dayNames: ['კვირა', 'ორშაბათი', 'სამშაბათი', 'ოთხშაბათი', 'ხუთშაბათი', 'პარასკევი', 'შაბათი'], + dayNamesShort: ['კვ', 'ორშ', 'სამ', 'ოთხ', 'ხუთ', 'პარ', 'შაბ'], + dayNamesMin: ['კვ','ორ','სმ','ოთ', 'ხშ', 'პრ','შბ'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['ka'] = + _gregorian.prototype.regionalOptions['ka']; +} diff --git a/dist/regional/km.js b/dist/regional/km.js new file mode 100644 index 0000000..7b734cb --- /dev/null +++ b/dist/regional/km.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Khmer initialisation for Gregorian/Julian calendars for jQuery. + Written by Sovichet Tep (sovichet.tep@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['km'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['ខែ​មករា','ខែ​កុម្ភៈ','ខែ​មិនា','ខែ​មេសា','ខែ​ឧសភា','ខែ​មិថុនា', + 'ខែ​កក្កដា','ខែ​សីហា','ខែ​កញ្ញា','ខែ​តុលា','ខែ​វិច្ឆិកា','ខែ​ធ្នូ'], + monthNamesShort: ['មក', 'កុ', 'មិនា', 'មេ', 'ឧស', 'មិថុ', + 'កក្ក', 'សី', 'កញ្ញា', 'តុលា', 'វិច្ឆិ', 'ធ្នូ'], + dayNames: ['ថ្ងៃ​អាទិត្យ', 'ថ្ងៃ​ចន្ទ', 'ថ្ងៃ​អង្គារ', 'ថ្ងៃ​ពុធ', 'ថ្ងៃ​ព្រហស្បត្តិ៍', 'ថ្ងៃ​សុក្រ', 'ថ្ងៃ​សៅរ៍'], + dayNamesShort: ['អា', 'ចន្ទ', 'អង្គ', 'ពុធ', 'ព្រហ', 'សុ', 'សៅរ៍'], + dayNamesMin: ['អា','ច','អ','ពុ','ព្រ','សុ','ស'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['km'] = + _gregorian.prototype.regionalOptions['km']; +} diff --git a/dist/regional/ko.js b/dist/regional/ko.js new file mode 100644 index 0000000..3763ba4 --- /dev/null +++ b/dist/regional/ko.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Korean localisation for Gregorian/Julian calendars for jQuery. + Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ko'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['1월','2월','3월','4월','5월','6월', + '7월','8월','9월','10월','11월','12월'], + monthNamesShort: ['1월','2월','3월','4월','5월','6월', + '7월','8월','9월','10월','11월','12월'], + dayNames: ['일요일','월요일','화요일','수요일','목요일','금요일','토요일'], + dayNamesShort: ['일','월','화','수','목','금','토'], + dayNamesMin: ['일','월','화','수','목','금','토'], + digits: null, + dateFormat: 'yyyy-mm-dd', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['ko'] = + _gregorian.prototype.regionalOptions['ko']; +} diff --git a/dist/regional/lt.js b/dist/regional/lt.js new file mode 100644 index 0000000..25b7222 --- /dev/null +++ b/dist/regional/lt.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Lithuanian localisation for Gregorian/Julian calendars for jQuery. + Arturas Paleicikas . */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['lt'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis', + 'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'], + monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir', + 'Lie','Rugp','Rugs','Spa','Lap','Gru'], + dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'], + dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'], + dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'], + digits: null, + dateFormat: 'yyyy-mm-dd', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['lt'] = + _gregorian.prototype.regionalOptions['lt']; +} diff --git a/dist/regional/lv.js b/dist/regional/lv.js new file mode 100644 index 0000000..68d32cc --- /dev/null +++ b/dist/regional/lv.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Latvian localisation for Gregorian/Julian calendars for jQuery. + Arturas Paleicikas . */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['lv'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs', + 'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn', + 'Jūl','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'], + dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'], + dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'], + digits: null, + dateFormat: 'dd-mm-yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['lv'] = + _gregorian.prototype.regionalOptions['lv']; +} diff --git a/dist/regional/me-ME.js b/dist/regional/me-ME.js new file mode 100644 index 0000000..a754593 --- /dev/null +++ b/dist/regional/me-ME.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Montenegrin localisation for Gregorian/Julian calendars for jQuery. + By Miloš Milošević - fleka d.o.o. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['me-ME'] = { + name: 'Gregorijanski', + epochs: ['pne', 'ne'], + monthNames: ['Januar','Februar','Mart','April','Maj','Jun', + 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', + 'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'], + dayNames: ['Neđelja', 'Poneđeljak', 'Utorak', 'Srijeda', 'Četvrtak', 'Petak', 'Subota'], + dayNamesShort: ['Neđ', 'Pon', 'Uto', 'Sri', 'Čet', 'Pet', 'Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['me-ME'] = + _gregorian.prototype.regionalOptions['me-ME']; +} diff --git a/dist/regional/me.js b/dist/regional/me.js new file mode 100644 index 0000000..6c8e9d3 --- /dev/null +++ b/dist/regional/me.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Montenegrin localisation for Gregorian/Julian calendars for jQuery. + By Miloš Milošević - fleka d.o.o. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['me'] = { + name: 'Грегоријански', + epochs: ['пне', 'не'], + monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун', + 'Јул','Август','Септембар','Октобар','Новембар','Децембар'], + monthNamesShort: ['Јан', 'Феб', 'Мар', 'Апр', 'Мај', 'Јун', + 'Јул', 'Авг', 'Сеп', 'Окт', 'Нов', 'Дец'], + dayNames: ['Неђеља', 'Понеђељак', 'Уторак', 'Сриједа', 'Четвртак', 'Петак', 'Субота'], + dayNamesShort: ['Неђ', 'Пон', 'Уто', 'Сри', 'Чет', 'Пет', 'Суб'], + dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['me'] = + _gregorian.prototype.regionalOptions['me']; +} diff --git a/dist/regional/mk.js b/dist/regional/mk.js new file mode 100644 index 0000000..8a68af9 --- /dev/null +++ b/dist/regional/mk.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Македонски MK localisation for Gregorian/Julian calendars for jQuery. + Hajan Selmani (hajan [at] live [dot] com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['mk'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Јануари','Февруари','Март','Април','Мај','Јуни', + 'Јули','Август','Септември','Октомври','Ноември','Декември'], + monthNamesShort: ['Јан', 'Фев', 'Мар', 'Апр', 'Мај', 'Јун', + 'Јул', 'Авг', 'Сеп', 'Окт', 'Нов', 'Дек'], + dayNames: ['Недела', 'Понеделник', 'Вторник', 'Среда', 'Четврток', 'Петок', 'Сабота'], + dayNamesShort: ['Нед', 'Пон', 'Вто', 'Сре', 'Чет', 'Пет', 'Саб'], + dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Са'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['mk'] = + _gregorian.prototype.regionalOptions['mk']; +} diff --git a/dist/regional/ml.js b/dist/regional/ml.js new file mode 100644 index 0000000..5ab5e51 --- /dev/null +++ b/dist/regional/ml.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Malayalam localisation for Gregorian/Julian calendars for jQuery. + Saji Nediyanchath (saji89@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ml'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍', + 'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'], + monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍', + 'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'], + dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['ml'] = + _gregorian.prototype.regionalOptions['ml']; +} diff --git a/dist/regional/ms.js b/dist/regional/ms.js new file mode 100644 index 0000000..ddbd6ee --- /dev/null +++ b/dist/regional/ms.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Malaysian localisation for Gregorian/Julian calendars for jQuery. + Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ms'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januari','Februari','Mac','April','Mei','Jun', + 'Julai','Ogos','September','Oktober','November','Disember'], + monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun', + 'Jul','Ogo','Sep','Okt','Nov','Dis'], + dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'], + dayNamesShort: ['Aha','Isn','Sel','Rab','Kha','Jum','Sab'], + dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['ms'] = + _gregorian.prototype.regionalOptions['ms']; +} diff --git a/dist/regional/mt.js b/dist/regional/mt.js new file mode 100644 index 0000000..76a91e4 --- /dev/null +++ b/dist/regional/mt.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Maltese localisation for Gregorian/Julian calendars for jQuery. + Written by Chritian Sciberras (uuf6429@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['mt'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Jannar','Frar','Marzu','April','Mejju','Ġunju', + 'Lulju','Awissu','Settembru','Ottubru','Novembru','Diċembru'], + monthNamesShort: ['Jan', 'Fra', 'Mar', 'Apr', 'Mej', 'Ġun', + 'Lul', 'Awi', 'Set', 'Ott', 'Nov', 'Diċ'], + dayNames: ['Il-Ħadd', 'It-Tnejn', 'It-Tlieta', 'L-Erbgħa', 'Il-Ħamis', 'Il-Ġimgħa', 'Is-Sibt'], + dayNamesShort: ['Ħad', 'Tne', 'Tli', 'Erb', 'Ħam', 'Ġim', 'Sib'], + dayNamesMin: ['Ħ','T','T','E','Ħ','Ġ','S'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['mt'] = + _gregorian.prototype.regionalOptions['mt']; +} diff --git a/dist/regional/nl-BE.js b/dist/regional/nl-BE.js new file mode 100644 index 0000000..0ae80b8 --- /dev/null +++ b/dist/regional/nl-BE.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Dutch/Belgian localisation for Gregorian/Julian calendars for jQuery. + Written by Mathias Bynens . */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['nl-BE'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun', + 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], + dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], + dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['nl-BE'] = + _gregorian.prototype.regionalOptions['nl-BE']; +} diff --git a/dist/regional/nl.js b/dist/regional/nl.js new file mode 100644 index 0000000..87f8218 --- /dev/null +++ b/dist/regional/nl.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Dutch localisation for Gregorian/Julian calendars for jQuery. + Written by Mathias Bynens . */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['nl'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun', + 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], + dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], + dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + digits: null, + dateFormat: 'dd-mm-yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['nl'] = + _gregorian.prototype.regionalOptions['nl']; +} diff --git a/dist/regional/no.js b/dist/regional/no.js new file mode 100644 index 0000000..992dc1a --- /dev/null +++ b/dist/regional/no.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Norwegian localisation for Gregorian/Julian calendars for jQuery. + Written by Naimdjon Takhirov (naimdjon@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['no'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Mars','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun', + 'Jul','Aug','Sep','Okt','Nov','Des'], + dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], + dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], + dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['no'] = + _gregorian.prototype.regionalOptions['no']; +} diff --git a/dist/regional/pa.js b/dist/regional/pa.js new file mode 100644 index 0000000..9706894 --- /dev/null +++ b/dist/regional/pa.js @@ -0,0 +1,36 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Punjabi localisation for Gregorian/Julian calendars for jQuery. + Sarbjit Singh (sanbroz@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['pa'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['ਜਨਵਰੀ','ਫ਼ਰਵਰੀ','ਮਾਰਚ','ਅਪ੍ਰੈਲ','ਮਈ','ਜੂਨ', + 'ਜੁਲਾਈ','ਅਗਸਤ','ਸਤੰਬਰ','ਅਕਤੂਬਰ','ਨਵੰਬਰ','ਦਸੰਬਰ'], + monthNamesShort: ['ਜਨ', 'ਫ਼ਰ', 'ਮਾਰ', 'ਅਪ੍ਰੈ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾ', 'ਅਗ', 'ਸਤੰ', 'ਅਕ', 'ਨਵੰ', 'ਦਸੰ'], + dayNames: ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', 'ਬੁੱਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨਿੱਚਰਵਾਰ'], + dayNamesShort: ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁੱਧ', 'ਵੀਰ', 'ਸ਼ੁੱਕਰ', 'ਸ਼ਨਿੱਚਰ'], + dayNamesMin: ['ਐ', 'ਸੋ', 'ਮੰ', 'ਬੁੱ', 'ਵੀ', 'ਸ਼ੁੱ', 'ਸ਼'], + digits: main.substituteDigits(['੦', '੧', '੨', '੩', '੪', '੫', '੬', '੭', '੮', '੯']), + dateFormat: 'dd-mm-yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['pa'] = + _gregorian.prototype.regionalOptions['pa']; +} diff --git a/dist/regional/pl.js b/dist/regional/pl.js new file mode 100644 index 0000000..47e20a8 --- /dev/null +++ b/dist/regional/pl.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Polish localisation for Gregorian/Julian calendars for jQuery. + Written by Jacek Wysocki (jacek.wysocki@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['pl'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec', + 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'], + monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze', + 'Lip','Sie','Wrz','Pa','Lis','Gru'], + dayNames: ['Niedziela','Poniedzialek','Wtorek','Środa','Czwartek','Piątek','Sobota'], + dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'], + dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'], + digits: null, + dateFormat: 'yyyy-mm-dd', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['pl'] = + _gregorian.prototype.regionalOptions['pl']; +} diff --git a/dist/regional/pt-BR.js b/dist/regional/pt-BR.js new file mode 100644 index 0000000..c9f282b --- /dev/null +++ b/dist/regional/pt-BR.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Brazilian Portuguese localisation for Gregorian/Julian calendars for jQuery. + Written by Leonildo Costa Silva (leocsilva@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['pt-BR'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', + 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', + 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['pt-BR'] = + _gregorian.prototype.regionalOptions['pt-BR']; +} diff --git a/dist/regional/rm.js b/dist/regional/rm.js new file mode 100644 index 0000000..0ed3edd --- /dev/null +++ b/dist/regional/rm.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Romansh localisation for Gregorian/Julian calendars for jQuery. + Yvonne Gienal (yvonne.gienal@educa.ch). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['rm'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', + 'Fanadur','Avust','Settember','October','November','December'], + monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', + 'Fan','Avu','Sett','Oct','Nov','Dec'], + dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'], + dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'], + dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['rm'] = + _gregorian.prototype.regionalOptions['rm']; +} diff --git a/dist/regional/ro.js b/dist/regional/ro.js new file mode 100644 index 0000000..23d9d52 --- /dev/null +++ b/dist/regional/ro.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Romanian localisation for Gregorian/Julian calendars for jQuery. + Written by Edmond L. (ll_edmond@walla.com) and Ionut G. Stan (ionut.g.stan@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ro'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie', + 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'], + monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun', + 'Iul', 'Aug', 'Sep', 'Oct', 'Noi', 'Dec'], + dayNames: ['Duminică', 'Luni', 'Marti', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'], + dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'], + dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['ro'] = + _gregorian.prototype.regionalOptions['ro']; +} diff --git a/dist/regional/ru.js b/dist/regional/ru.js new file mode 100644 index 0000000..a0f9fef --- /dev/null +++ b/dist/regional/ru.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Russian localisation for Gregorian/Julian calendars for jQuery. + Written by Andrew Stromnov (stromnov@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ru'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', + 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], + monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', + 'Июл','Авг','Сен','Окт','Ноя','Дек'], + dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'], + dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'], + dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['ru'] = + _gregorian.prototype.regionalOptions['ru']; +} diff --git a/dist/regional/sk.js b/dist/regional/sk.js new file mode 100644 index 0000000..c579508 --- /dev/null +++ b/dist/regional/sk.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Slovak localisation for Gregorian/Julian calendars for jQuery. + Written by Vojtech Rinik (vojto@hmm.sk). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['sk'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Január','Február','Marec','Apríl','Máj','Jún', + 'Júl','August','September','Október','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún', + 'Júl','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Nedel\'a','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'], + dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'], + dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['sk'] = + _gregorian.prototype.regionalOptions['sk']; +} diff --git a/dist/regional/sl.js b/dist/regional/sl.js new file mode 100644 index 0000000..7e37fae --- /dev/null +++ b/dist/regional/sl.js @@ -0,0 +1,38 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Slovenian localisation for Gregorian/Julian calendars for jQuery. + Written by Jaka Jancar (jaka@kubje.org). */ +/* c = č, s = š z = ž C = Č S = Š Z = Ž */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['sl'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Marec','April','Maj','Junij', + 'Julij','Avgust','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Avg','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','Četrtek','Petek','Sobota'], + dayNamesShort: ['Ned','Pon','Tor','Sre','Čet','Pet','Sob'], + dayNamesMin: ['Ne','Po','To','Sr','Če','Pe','So'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['sl'] = + _gregorian.prototype.regionalOptions['sl']; +} diff --git a/dist/regional/sq.js b/dist/regional/sq.js new file mode 100644 index 0000000..75081bf --- /dev/null +++ b/dist/regional/sq.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Albanian localisation for Gregorian/Julian calendars for jQuery. + Written by Flakron Bytyqi (flakron@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['sq'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor', + 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'], + monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer', + 'Kor','Gus','Sht','Tet','Nën','Dhj'], + dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'], + dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'], + dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['sq'] = + _gregorian.prototype.regionalOptions['sq']; +} diff --git a/dist/regional/sr-SR.js b/dist/regional/sr-SR.js new file mode 100644 index 0000000..90d7a20 --- /dev/null +++ b/dist/regional/sr-SR.js @@ -0,0 +1,36 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Serbian localisation for Gregorian/Julian calendars for jQuery. + Written by Dejan Dimić. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['sr-SR'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Mart','April','Maj','Jun', + 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Avg','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['sr-SR'] = + _gregorian.prototype.regionalOptions['sr-SR']; +} diff --git a/dist/regional/sr.js b/dist/regional/sr.js new file mode 100644 index 0000000..b0a99e1 --- /dev/null +++ b/dist/regional/sr.js @@ -0,0 +1,36 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Serbian localisation for Gregorian/Julian calendars for jQuery. + Written by Dejan Dimić. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['sr'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун', + 'Јул','Август','Септембар','Октобар','Новембар','Децембар'], + monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун','Јул','Авг','Сеп','Окт','Нов','Дец'], + dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'], + dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'], + dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['sr'] = + _gregorian.prototype.regionalOptions['sr']; +} diff --git a/dist/regional/sv.js b/dist/regional/sv.js new file mode 100644 index 0000000..02c4552 --- /dev/null +++ b/dist/regional/sv.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Swedish localisation for Gregorian/Julian calendars for jQuery. + Written by Anders Ekdahl (anders@nomadiz.se). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['sv'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januari','Februari','Mars','April','Maj','Juni', + 'Juli','Augusti','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'], + dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'], + dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'], + digits: null, + dateFormat: 'yyyy-mm-dd', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['sv'] = + _gregorian.prototype.regionalOptions['sv']; +} diff --git a/dist/regional/ta.js b/dist/regional/ta.js new file mode 100644 index 0000000..a5167eb --- /dev/null +++ b/dist/regional/ta.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Tamil (UTF-8) localisation for Gregorian/Julian calendars for jQuery. + Written by S A Sureshkumar (saskumar@live.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ta'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி', + 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'], + monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி', + 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'], + dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'], + dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'], + dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['ta'] = + _gregorian.prototype.regionalOptions['ta']; +} diff --git a/dist/regional/th.js b/dist/regional/th.js new file mode 100644 index 0000000..91123df --- /dev/null +++ b/dist/regional/th.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Thai localisation for Gregorian/Julian calendars for jQuery. + Written by pipo (pipo@sixhead.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['th'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน', + 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'], + monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.', + 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'], + dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'], + dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], + dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['th'] = + _gregorian.prototype.regionalOptions['th']; +} diff --git a/dist/regional/tr.js b/dist/regional/tr.js new file mode 100644 index 0000000..3cb7dac --- /dev/null +++ b/dist/regional/tr.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Turkish localisation for Gregorian/Julian calendars for jQuery. + Written by Izzet Emre Erkan (kara@karalamalar.net). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['tr'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran', + 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'], + monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz', + 'Tem','Ağu','Eyl','Eki','Kas','Ara'], + dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'], + dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], + dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['tr'] = + _gregorian.prototype.regionalOptions['tr']; +} diff --git a/dist/regional/tt.js b/dist/regional/tt.js new file mode 100644 index 0000000..e1fed12 --- /dev/null +++ b/dist/regional/tt.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Tatar localisation for Gregorian/Julian calendars for jQuery. + Written by Ирек Хаҗиев (khazirek@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['tt'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Гынвар','Февраль','Март','Апрель','Май','Июнь', + 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], + monthNamesShort: ['Гыйн','Фев','Мар','Апр','Май','Июн', + 'Июл','Авг','Сен','Окт','Ноя','Дек'], + dayNames: ['якшәмбе','дүшәмбе','сишәмбе','чәршәмбе','пәнҗешәмбе','җомга','шимбә'], + dayNamesShort: ['якш','дүш','сиш','чәр','пән','җом','шим'], + dayNamesMin: ['Як','Дү','Си','Чә','Пә','Җо','Ши'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['tt'] = + _gregorian.prototype.regionalOptions['tt']; +} diff --git a/dist/regional/uk.js b/dist/regional/uk.js new file mode 100644 index 0000000..ba7254d --- /dev/null +++ b/dist/regional/uk.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Ukrainian localisation for Gregorian/Julian calendars for jQuery. + Written by Maxim Drogobitskiy (maxdao@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['uk'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень', + 'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'], + monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер', + 'Лип','Сер','Вер','Жов','Лис','Гру'], + dayNames: ['неділя','понеділок','вівторок','середа','четвер','п\'ятниця','субота'], + dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'], + dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['uk'] = + _gregorian.prototype.regionalOptions['uk']; +} diff --git a/dist/regional/ur.js b/dist/regional/ur.js new file mode 100644 index 0000000..a6a7c5d --- /dev/null +++ b/dist/regional/ur.js @@ -0,0 +1,39 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Urdu localisation for Gregorian/Julian calendars for jQuery. + Mansoor Munib -- mansoormunib@gmail.com + Thanks to Habib Ahmed, ObaidUllah Anwar. */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['ur'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['جنوری','فروری','مارچ','اپریل','مئی','جون', + 'جولائی','اگست','ستمبر','اکتوبر','نومبر','دسمبر'], + monthNamesShort: ['1','2','3','4','5','6', + '7','8','9','10','11','12'], + dayNames: ['اتوار','پير','منگل','بدھ','جمعرات','جمعہ','ہفتہ'], + dayNamesShort: ['اتوار','پير','منگل','بدھ','جمعرات','جمعہ','ہفتہ'], + dayNamesMin: ['اتوار','پير','منگل','بدھ','جمعرات','جمعہ','ہفتہ'], + digits: main.substituteDigits(['٠', '١', '٢', '٣', '۴', '۵', '۶', '۷', '٨', '٩']), + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + firstDay: 1, + isRTL: true +}; +if (_julian) { + _julian.prototype.regionalOptions['ur'] = + _gregorian.prototype.regionalOptions['ur']; +} diff --git a/dist/regional/vi.js b/dist/regional/vi.js new file mode 100644 index 0000000..c327838 --- /dev/null +++ b/dist/regional/vi.js @@ -0,0 +1,37 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Vietnamese localisation for Gregorian/Julian calendars for jQuery. + Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['vi'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu', + 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'], + monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', + 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'], + dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'], + dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], + dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['vi'] = + _gregorian.prototype.regionalOptions['vi']; +} diff --git a/dist/regional/zh-CN.js b/dist/regional/zh-CN.js new file mode 100644 index 0000000..cdfce3c --- /dev/null +++ b/dist/regional/zh-CN.js @@ -0,0 +1,38 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Simplified Chinese localisation for Gregorian/Julian calendars for jQuery. + Written by Cloudream (cloudream@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['zh-CN'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + digits: main.substituteChineseDigits( + ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九'], ['', '十', '百', '千']), + dateFormat: 'yyyy-mm-dd', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['zh-CN'] = + _gregorian.prototype.regionalOptions['zh-CN']; +} diff --git a/dist/regional/zh-HK.js b/dist/regional/zh-HK.js new file mode 100644 index 0000000..63f9f5a --- /dev/null +++ b/dist/regional/zh-HK.js @@ -0,0 +1,38 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Hong Kong Chinese localisation for Gregorian/Julian calendars for jQuery. + Written by SCCY (samuelcychan@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['zh-HK'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + digits: main.substituteChineseDigits( + ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九'], ['', '十', '百', '千']), + dateFormat: 'dd-mm-yyyy', + firstDay: 0, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['zh-HK'] = + _gregorian.prototype.regionalOptions['zh-HK']; +} diff --git a/dist/regional/zh-TW.js b/dist/regional/zh-TW.js new file mode 100644 index 0000000..ed482e5 --- /dev/null +++ b/dist/regional/zh-TW.js @@ -0,0 +1,38 @@ +/* + * World Calendars + * https://github.com/alexcjohnson/world-calendars + * + * Batch-converted from kbwood/calendars + * Many thanks to Keith Wood and all of the contributors to the original project! + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* http://keith-wood.name/calendars.html + Traditional Chinese localisation for Gregorian/Julian calendars for jQuery. + Written by Ressol (ressol@gmail.com). */ +var main = require('../main'); +var _gregorian = main.calendars.gregorian; +var _julian = main.calendars.julian; + +_gregorian.prototype.regionalOptions['zh-TW'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + digits: main.substituteChineseDigits( + ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九'], ['', '十', '百', '千']), + dateFormat: 'yyyy/mm/dd', + firstDay: 1, + isRTL: false +}; +if (_julian) { + _julian.prototype.regionalOptions['zh-TW'] = + _gregorian.prototype.regionalOptions['zh-TW']; +} diff --git a/jquery-src/README.md b/jquery-src/README.md new file mode 100755 index 0000000..088a4d6 --- /dev/null +++ b/jquery-src/README.md @@ -0,0 +1,13 @@ +jQuery World Calendars +====================== + +This plugin provides support for various world calendars, including a datepicker. + +* Calendars: Gregorian, Julian, Taiwanese, Thai, Persian, Islamic, Umm al-Qura, Hebrew, Ethiopian, Coptic, Nepali, Mayan, Nanakshahi, and Discworld. +* Parse and format dates in all these calendars. +* Style the datepicker using one of five themes, or use any of the standard Themeroller themes. +* Over 70 localisations for Gregorian/Julian calendars. + +Have a look at the plugin Web site, http://keith-wood.name/calendars.html, for demonstrations of its abilities. + +For documentation on the functionality see http://keith-wood.name/calendarsRef.html. diff --git a/jquery-src/bower.json b/jquery-src/bower.json new file mode 100755 index 0000000..c26134d --- /dev/null +++ b/jquery-src/bower.json @@ -0,0 +1,46 @@ +{ + "name": "kbwood_calendars", + "version": "2.0.2", + "description": "This plugin provides support for various world calendars, including a datepicker. * Calendars: Gregorian, Julian, Taiwanese, Thai, Persian, Islamic, Umm al-Qura, Hebrew, Ethiopian, Coptic, Nepali, Mayan, Nanakshahi, and Discworld. * Parse and format dates in all these calendars. * Style the datepicker using one of five themes, or use any of the standard Themeroller themes. * Over 70 localisations for Gregorian/Julian calendars.", + "keywords": [ + "calendar", + "coptic", + "date", + "datepicker", + "discworld", + "ethiopian", + "gregorian", + "hebrew", + "i18n", + "input", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "taiwanese", + "thai", + "ui", + "umm al-qura", + "validation" + ], + "license": "http://keith-wood.name/licence.html", + "authors": [ + "Keith Wood" + ], + "main": "jquery.calendars.js", + "ignore": [ + "*.gif", + "*.html", + "*.json", + "*.md", + "*.png", + "jquery.calendars-*.js", + "jquery.calendars.picker-*.js", + "jquery.*.min.js" + ], + "dependencies": { + "jquery": ">=1.7" + } +} \ No newline at end of file diff --git a/jquery-src/calendar-blue.gif b/jquery-src/calendar-blue.gif new file mode 100755 index 0000000..601cbd5 Binary files /dev/null and b/jquery-src/calendar-blue.gif differ diff --git a/jquery-src/calendar-green.gif b/jquery-src/calendar-green.gif new file mode 100755 index 0000000..9dae1a3 Binary files /dev/null and b/jquery-src/calendar-green.gif differ diff --git a/jquery-src/calendar.gif b/jquery-src/calendar.gif new file mode 100755 index 0000000..d0abaa7 Binary files /dev/null and b/jquery-src/calendar.gif differ diff --git a/jquery-src/calendarsBasic.html b/jquery-src/calendarsBasic.html new file mode 100755 index 0000000..16df4c4 --- /dev/null +++ b/jquery-src/calendarsBasic.html @@ -0,0 +1,69 @@ + + + + +jQuery Calendars + + + + + + + + + + + + + + + + + + + +

jQuery Calendars

+

This page demonstrates the very basics of the + jQuery Calendars plugin. + It contains the minimum requirements for using the plugin and + can be used as the basis for your own experimentation.

+

For more detail see the documentation reference page.

+

Select a calendar:

+

Enter a date: ()

+

Check and format: +

+

Result:

+ + diff --git a/jquery-src/calendarsPickerBasic.html b/jquery-src/calendarsPickerBasic.html new file mode 100755 index 0000000..c74aeac --- /dev/null +++ b/jquery-src/calendarsPickerBasic.html @@ -0,0 +1,43 @@ + + + + +jQuery Calendars Datepicker + + + + + + + + + + + + + +

jQuery Calendars Datepicker

+

This page demonstrates the very basics of the + jQuery Calendars Datepicker plugin. + It contains the minimum requirements for using the plugin and + can be used as the basis for your own experimentation.

+

For more detail see the documentation reference page.

+

A popup datepicker

+

Or inline

+
+ + diff --git a/jquery-src/flora.calendars.picker.css b/jquery-src/flora.calendars.picker.css new file mode 100755 index 0000000..3a359e1 --- /dev/null +++ b/jquery-src/flora.calendars.picker.css @@ -0,0 +1,208 @@ +/* Flora styling for jQuery Calendars Picker v2.0.0. */ +.calendars { + background-color: #e0f4d7; + color: #000; + border: 1px solid #f90; + -moz-border-radius: 0.25em; + -webkit-border-radius: 0.25em; + border-radius: 0.25em; + font-family: Arial,Helvetica,Sans-serif; + font-size: 90%; +} +.calendars-rtl { + direction: rtl; +} +.calendars-popup { + z-index: 1000; +} +.calendars-disable { + position: absolute; + z-index: 100; + background-color: white; + opacity: 0.5; + filter: alpha(opacity=50); +} +.calendars a { + color: #000; + text-decoration: none; +} +.calendars a.calendars-disabled { + color: #888; + cursor: auto; +} +.calendars button { + margin: 0.25em; + padding: 0.125em 0em; + background-color: #fc8; + border: none; + -moz-border-radius: 0.25em; + -webkit-border-radius: 0.25em; + border-radius: 0.25em; + font-weight: bold; +} +.calendars-nav, .calendars-ctrl { + float: left; + width: 100%; + background-color: #e0f4d7; + color: #fff; + font-size: 90%; + font-weight: bold; +} +.datepick-ctrl { + background-color: #f90; +} +.calendars-cmd { + width: 30%; +} +.calendars-cmd:hover { + background-color: #b1db87; +} +.calendars-ctrl .calendars-cmd:hover { + background-color: #fa4; +} +.calendars-cmd-prevJump, .calendars-cmd-nextJump { + width: 8%; +} +a.calendars-cmd { + height: 1.5em; +} +button.calendars-cmd { + text-align: center; +} +.calendars-cmd-prev, .calendars-cmd-prevJump, .calendars-cmd-clear { + float: left; + padding-left: 2%; +} +.calendars-cmd-current, .calendars-cmd-today { + float: left; + width: 35%; + text-align: center; +} +.calendars-cmd-next, .calendars-cmd-nextJump, .calendars-cmd-close { + float: right; + padding-right: 2%; + text-align: right; +} +.calendars-rtl .calendars-cmd-prev, .calendars-rtl .calendars-cmd-prevJump, +.calendars-rtl .calendars-cmd-clear { + float: right; + padding-left: 0%; + padding-right: 2%; + text-align: right; +} +.calendars-rtl .calendars-cmd-current, .calendars-rtl .calendars-cmd-today { + float: right; +} +.calendars-rtl .calendars-cmd-next, .calendars-rtl .calendars-cmd-nextJump, +.calendars-rtl .calendars-cmd-close { + float: left; + padding-left: 2%; + padding-right: 0%; + text-align: left; +} +.calendars-month-nav { + float: left; + background-color: #b1db87; + text-align: center; +} +.calendars-month-nav div { + float: left; + width: 12.5%; + margin: 1%; + padding: 1%; +} +.calendars-month-nav span { + color: #888; +} +.calendars-month-row { + clear: left; +} +.calendars-month { + float: left; + width: 15em; + border: 1px solid #83c948; + text-align: center; +} +.calendars-month-header, .calendars-month-header select, .calendars-month-header input { + height: 1.5em; + background-color: #83c948; + color: #fff; + font-weight: bold; +} +.calendars-month-header select, .calendars-month-header input { + height: 1.4em; + border: none; +} +.calendars-month-header input { + position: absolute; + display: none; +} +.calendars-month table { + width: 100%; + border-collapse: collapse; +} +.calendars-month thead { + border-bottom: 1px solid #aaa; +} +.calendars-month th, .calendars-month td { + margin: 0em; + padding: 0em; + font-weight: normal; + text-align: center; +} +.calendars-month th { + border: 1px solid #b1db87; +} +.calendars-month th, .calendars-month th a { + background-color: #b1db87; + color: #000; + border: 1px solid #b1db87; +} +.calendars-month td { + background-color: #fff; + color: #666; + border: 1px solid #b1db87; +} +.calendars-month td.calendars-week * { + background-color: #b1db87; + color: #666; + border: none; +} +.calendars-month a { + display: block; + width: 100%; + padding: 0.125em 0em; + text-decoration: none; +} +.calendars-month span { + display: block; + width: 100%; + padding: 0.125em 0em; +} +.calendars-month td span { + color: #888; +} +.calendars-month td .calendars-other-month { + background-color: #e0f4d7; +} +.calendars-month td .calendars-weekend { + background-color: #e0f4d7; +} +.calendars-month td .calendars-today { + background-color: #b1db87; +} +.calendars-month td .calendars-highlight { + background-color: #fc8; +} +.calendars-month td .calendars-selected { + background-color: #f90; + color: #fff; +} +.calendars-status { + clear: both; + background-color: #b1db87; + text-align: center; +} +.calendars-clear-fix { + clear: both; +} diff --git a/jquery-src/humanity.calendars.picker.css b/jquery-src/humanity.calendars.picker.css new file mode 100755 index 0000000..cb69417 --- /dev/null +++ b/jquery-src/humanity.calendars.picker.css @@ -0,0 +1,197 @@ +/* Humanity styling for jQuery Calendars Picker v2.0.0. */ +.calendars { + background-color: #f4f0ec; + color: #1e1b1c; + border: 1px solid #cb842e; + -moz-border-radius: 0.25em; + -webkit-border-radius: 0.25em; + border-radius: 0.25em; + font-family: Arial,Helvetica,Sans-serif; + font-size: 90%; +} +.calendars-rtl { + direction: rtl; +} +.calendars-popup { + z-index: 1000; +} +.calendars-disable { + position: absolute; + z-index: 100; + background-color: white; + opacity: 0.5; + filter: alpha(opacity=50); +} +.calendars a { + color: #1e1b1c; + text-decoration: none; +} +.calendars a.calendars-disabled { + color: #888; + cursor: auto; +} +.calendars button { + margin: 0.25em; + padding: 0.125em 0em; + background-color: #ede4d4; + border: none; + -moz-border-radius: 0.25em; + -webkit-border-radius: 0.25em; + border-radius: 0.25em; + font-weight: bold; +} +.calendars-nav, .calendars-ctrl { + float: left; + width: 100%; + background-color: #ede4d4; + font-size: 90%; + font-weight: bold; +} +.calendars-ctrl { + background-color: #cb842e; +} +.calendars-cmd { + width: 30%; +} +.calendars-cmd:hover { + background-color: #f4f0ec; +} +.calendars-cmd-prevJump, .calendars-cmd-nextJump { + width: 8%; +} +a.calendars-cmd { + height: 1.5em; +} +button.calendars-cmd { + text-align: center; +} +.calendars-cmd-prev, .calendars-cmd-prevJump, .calendars-cmd-clear { + float: left; + padding-left: 2%; +} +.calendars-cmd-current, .calendars-cmd-today { + float: left; + width: 35%; + text-align: center; +} +.calendars-cmd-next, .calendars-cmd-nextJump, .calendars-cmd-close { + float: right; + padding-right: 2%; + text-align: right; +} +.calendars-rtl .calendars-cmd-prev, .calendars-rtl .calendars-cmd-prevJump, +.calendars-rtl .calendars-cmd-clear { + float: right; + padding-left: 0%; + padding-right: 2%; + text-align: right; +} +.calendars-rtl .calendars-cmd-current, .calendars-rtl .calendars-cmd-today { + float: right; +} +.calendars-rtl .calendars-cmd-next, .calendars-rtl .calendars-cmd-nextJump, +.calendars-rtl .calendars-cmd-close { + float: left; + padding-left: 2%; + padding-right: 0%; + text-align: left; +} +.calendars-month-nav { + float: left; + text-align: center; +} +.calendars-month-nav div { + float: left; + width: 12.5%; + margin: 1%; + padding: 1%; +} +.calendars-month-nav span { + color: #888; +} +.calendars-month-row { + clear: left; +} +.calendars-month { + float: left; + width: 17em; + border: 1px solid #e0cfc2; + text-align: center; +} +.calendars-month-header, .calendars-month-header select, .calendars-month-header input { + height: 1.5em; + background-color: #cb842e; + color: #fff; + font-weight: bold; +} +.calendars-month-header select, .calendars-month-header input { + height: 1.4em; + border: none; +} +.calendars-month-header input { + position: absolute; + display: none; +} +.calendars-month table { + width: 100%; + border: 2px solid transparent; + border-collapse: collapse; +} +.calendars-month th, .calendars-month td { + margin: 0em; + padding: 0.125em; + font-weight: normal; + text-align: center; +} +.calendars-month td.calendars-week, +.calendars-month td.calendars-week * { + background-color: #cb842e; + color: #fff; + border: 1px solid #cb842e; +} +.calendars-month a { + display: block; + width: 100%; + padding: 0.125em 0em; + background-color: #ede4d4; + color: #000; + border: 1px solid #cdc3b7; + text-decoration: none; +} +.calendars-month span { + display: block; + margin-top: 0.25em; +} +.calendars-month a { + background-color: #ede4d4; + color: #444; + border: 1px solid #cdc3b7; + text-decoration: none; +} +.calendars-month td span { + color: #888; +} +.calendars-month td .calendars-other-month { + background-color: #f4f0ec; +} +.calendars-month td .calendars-today { + background-color: #f5f5b5; + border: 1px solid #d9bb73; +} +.calendars-month td .calendars-highlight { + background-color: #f5f0e5; + color: #1e1b1c; + border: 1px solid #f5ad66; +} +.calendars-month td .calendars-selected { + background-color: #cb842e; + color: #fff; + border: 1px solid #cb842e; +} +.calendars-status { + clear: both; + text-align: center; +} +.calendars-clear-fix { + clear: both; +} diff --git a/jquery-src/jquery.calendars-af.js b/jquery-src/jquery.calendars-af.js new file mode 100755 index 0000000..c500d92 --- /dev/null +++ b/jquery-src/jquery.calendars-af.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Afrikaans localisation for Gregorian/Julian calendars for jQuery. + Written by Renier Pretorius and Ruediger Thiede. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['af'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie', + 'Julie','Augustus','September','Oktober','November','Desember'], + monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', + 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], + dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'], + dayNamesShort: ['Son', 'Maan', 'Dins', 'Woens', 'Don', 'Vry', 'Sat'], + dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['af'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['af']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-am.js b/jquery-src/jquery.calendars-am.js new file mode 100755 index 0000000..1c13fa2 --- /dev/null +++ b/jquery-src/jquery.calendars-am.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Amharic (አማርኛ) localisation for Gregorian/Julian calendars for jQuery. + Leyu Sisay. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['am'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['ጃንዋሪ','ፈብርዋሪ','ማርች','አፕሪል','ሜይ','ጁን', + 'ጁላይ','ኦገስት','ሴፕቴምበር','ኦክቶበር','ኖቬምበር','ዲሴምበር'], + monthNamesShort: ['ጃንዋ', 'ፈብር', 'ማርች', 'አፕሪ', 'ሜይ', 'ጁን', + 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክቶ', 'ኖቬም', 'ዲሴም'], + dayNames: ['ሰንዴይ', 'መንዴይ', 'ትዩስዴይ', 'ዌንስዴይ', 'ተርሰዴይ', 'ፍራይዴይ', 'ሳተርዴይ'], + dayNamesShort: ['ሰንዴ', 'መንዴ', 'ትዩስ', 'ዌንስ', 'ተርሰ', 'ፍራይ', 'ሳተር'], + dayNamesMin: ['ሰን', 'መን', 'ትዩ', 'ዌን', 'ተር', 'ፍራ', 'ሳተ'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['am'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['am']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ar-DZ.js b/jquery-src/jquery.calendars-ar-DZ.js new file mode 100755 index 0000000..1c29c3b --- /dev/null +++ b/jquery-src/jquery.calendars-ar-DZ.js @@ -0,0 +1,23 @@ +/* http://keith-wood.name/calendars.html + Algerian (and Tunisian) Arabic localisation for Gregorian/Julian calendars for jQuery. + Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ar-DZ'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', + 'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'], + monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 6, + isRTL: true + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ar-DZ'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ar-DZ']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ar-EG.js b/jquery-src/jquery.calendars-ar-EG.js new file mode 100755 index 0000000..39f399a --- /dev/null +++ b/jquery-src/jquery.calendars-ar-EG.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Arabic localisation for Gregorian/Julian calendars for jQuery. + Mahmoud Khaled -- mahmoud.khaled@badrit.com + NOTE: monthNames are the new months names */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ar-EG'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['يناير', 'فبراير', 'مارس', 'إبريل', 'مايو', 'يونية', + 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'], + monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + dayNamesMin: ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 6, + isRTL: true + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ar-EG'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ar-EG']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ar.js b/jquery-src/jquery.calendars-ar.js new file mode 100755 index 0000000..c61b1e9 --- /dev/null +++ b/jquery-src/jquery.calendars-ar.js @@ -0,0 +1,25 @@ +/* http://keith-wood.name/calendars.html + Arabic localisation for Gregorian/Julian calendars for jQuery. + Khaled Al Horani -- خالد الحوراني -- koko.dw@gmail.com. */ +/* NOTE: monthNames are the original months names and they are the Arabic names, + not the new months name فبراير - يناير and there isn't any Arabic roots for these months */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ar'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران', + 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + digits: $.calendars.substituteDigits(['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩']), + dateFormat: 'dd/mm/yyyy', + firstDay: 6, + isRTL: true + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ar'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ar']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-az.js b/jquery-src/jquery.calendars-az.js new file mode 100755 index 0000000..9afe643 --- /dev/null +++ b/jquery-src/jquery.calendars-az.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Azerbaijani localisation for Gregorian/Julian calendars for jQuery. + Written by Jamil Najafov (necefov33@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['az'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun', + 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'], + monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun', + 'İyul','Avq','Sen','Okt','Noy','Dek'], + dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'], + dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'], + dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['az'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['az']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-bg.js b/jquery-src/jquery.calendars-bg.js new file mode 100755 index 0000000..ba34ded --- /dev/null +++ b/jquery-src/jquery.calendars-bg.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Bulgarian localisation for Gregorian/Julian calendars for jQuery. + Written by Stoyan Kyosev (http://svest.org). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['bg'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Януари','Февруари','Март','Април','Май','Юни', + 'Юли','Август','Септември','Октомври','Ноември','Декември'], + monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни', + 'Юли','Авг','Сеп','Окт','Нов','Дек'], + dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'], + dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'], + dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['bg'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['bg']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-bs.js b/jquery-src/jquery.calendars-bs.js new file mode 100755 index 0000000..c14493d --- /dev/null +++ b/jquery-src/jquery.calendars-bs.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Bosnian localisation for Gregorian/Julian calendars for jQuery. + Kenan Konjo. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['bs'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Mart','April','Maj','Juni', + 'Juli','August','Septembar','Oktobar','Novembar','Decembar'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + digits: null, + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['bs'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['bs']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ca.js b/jquery-src/jquery.calendars-ca.js new file mode 100755 index 0000000..0e9c3c4 --- /dev/null +++ b/jquery-src/jquery.calendars-ca.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Catalan localisation for Gregorian/Julian calendars for jQuery. + Writers: (joan.leon@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ca'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Gener','Febrer','Març','Abril','Maig','Juny', + 'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'], + monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun', + 'Jul','Ago','Set','Oct','Nov','Des'], + dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'], + dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'], + dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ca'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ca']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-cs.js b/jquery-src/jquery.calendars-cs.js new file mode 100755 index 0000000..be25349 --- /dev/null +++ b/jquery-src/jquery.calendars-cs.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Czech localisation for Gregorian/Julian calendars for jQuery. + Written by Tomas Muller (tomas@tomas-muller.net). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['cs'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['leden','únor','březen','duben','květen','červen', + 'červenec','srpen','září','říjen','listopad','prosinec'], + monthNamesShort: ['led','úno','bře','dub','kvě','čer', + 'čvc','srp','zář','říj','lis','pro'], + dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'], + dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], + dayNamesMin: ['ne','po','út','st','čt','pá','so'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['cs'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['cs']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-da.js b/jquery-src/jquery.calendars-da.js new file mode 100755 index 0000000..d8c046c --- /dev/null +++ b/jquery-src/jquery.calendars-da.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Danish localisation for Gregorian/Julian calendars for jQuery. + Written by Jan Christensen ( deletestuff@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['da'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Marts','April','Maj','Juni', + 'Juli','August','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], + dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], + dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], + digits: null, + dateFormat: 'dd-mm-yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['da'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['da']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-de-CH.js b/jquery-src/jquery.calendars-de-CH.js new file mode 100755 index 0000000..84e42aa --- /dev/null +++ b/jquery-src/jquery.calendars-de-CH.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Swiss-German localisation for Gregorian/Julian calendars for jQuery. + Written by Douglas Jose & Juerg Meier. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['de-CH'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','März','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Dezember'], + monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dez'], + dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], + dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], + dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['de-CH'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['de-CH']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-de.js b/jquery-src/jquery.calendars-de.js new file mode 100755 index 0000000..cd1cd51 --- /dev/null +++ b/jquery-src/jquery.calendars-de.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + German localisation for Gregorian/Julian calendars for jQuery. + Written by Milian Wolff (mail@milianw.de). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['de'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','März','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Dezember'], + monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dez'], + dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], + dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], + dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['de'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['de']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-el.js b/jquery-src/jquery.calendars-el.js new file mode 100755 index 0000000..007537a --- /dev/null +++ b/jquery-src/jquery.calendars-el.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Greek localisation for Gregorian/Julian calendars for jQuery. + Written by Alex Cicovic (http://www.alexcicovic.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['el'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος', + 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'], + monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν', + 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'], + dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'], + dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'], + dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['el'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['el']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-en-AU.js b/jquery-src/jquery.calendars-en-AU.js new file mode 100755 index 0000000..5428081 --- /dev/null +++ b/jquery-src/jquery.calendars-en-AU.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + English/Australia localisation for Gregorian/Julian calendars for jQuery. + Based on en-GB. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['en-AU'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['en-AU'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['en-AU']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-en-GB.js b/jquery-src/jquery.calendars-en-GB.js new file mode 100755 index 0000000..239d7bb --- /dev/null +++ b/jquery-src/jquery.calendars-en-GB.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + English/UK localisation for Gregorian/Julian calendars for jQuery. + Stuart. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['en-GB'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['en-GB'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['en-GB']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-en-NZ.js b/jquery-src/jquery.calendars-en-NZ.js new file mode 100755 index 0000000..317d9df --- /dev/null +++ b/jquery-src/jquery.calendars-en-NZ.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + English/New Zealand localisation for Gregorian/Julian calendars for jQuery. + Based on en-GB. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['en-NZ'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['en-NZ'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['en-NZ']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-eo.js b/jquery-src/jquery.calendars-eo.js new file mode 100755 index 0000000..e6487b7 --- /dev/null +++ b/jquery-src/jquery.calendars-eo.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Esperanto localisation for Gregorian/Julian calendars for jQuery. + Written by Olivier M. (olivierweb@ifrance.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['eo'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio', + 'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aŭg','Sep','Okt','Nov','Dec'], + dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'], + dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['eo'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['eo']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-es-AR.js b/jquery-src/jquery.calendars-es-AR.js new file mode 100755 index 0000000..86244af --- /dev/null +++ b/jquery-src/jquery.calendars-es-AR.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Spanish/Argentina localisation for Gregorian/Julian calendars for jQuery. + Written by Esteban Acosta Villafane (esteban.acosta@globant.com) of Globant (http://www.globant.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['es-AR'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', + 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], + monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', + 'Jul','Ago','Sep','Oct','Nov','Dic'], + dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['es-AR'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['es-AR']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-es-PE.js b/jquery-src/jquery.calendars-es-PE.js new file mode 100755 index 0000000..c429959 --- /dev/null +++ b/jquery-src/jquery.calendars-es-PE.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Spanish/Perú localisation for Gregorian/Julian calendars for jQuery. + Written by Fischer Tirado (fishdev@globant.com) of ASIX (http://www.asixonline.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['es-PE'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', + 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], + monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', + 'Jul','Ago','Sep','Oct','Nov','Dic'], + dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mié','Jue','Vie','Sab'], + dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['es-PE'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['es-PE']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-es.js b/jquery-src/jquery.calendars-es.js new file mode 100755 index 0000000..b35a06a --- /dev/null +++ b/jquery-src/jquery.calendars-es.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Spanish localisation for Gregorian/Julian calendars for jQuery. + Traducido por Vester (xvester@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['es'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', + 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], + monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', + 'Jul','Ago','Sep','Oct','Nov','Dic'], + dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['es'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['es']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-et.js b/jquery-src/jquery.calendars-et.js new file mode 100755 index 0000000..ed11011 --- /dev/null +++ b/jquery-src/jquery.calendars-et.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Estonian localisation for Gregorian/Julian calendars for jQuery. + Written by Mart Sõmermaa (mrts.pydev at gmail com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['et'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni', + 'Juuli','August','September','Oktoober','November','Detsember'], + monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni', + 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'], + dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'], + dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'], + dayNamesMin: ['P','E','T','K','N','R','L'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['et'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['et']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-eu.js b/jquery-src/jquery.calendars-eu.js new file mode 100755 index 0000000..b1cc45d --- /dev/null +++ b/jquery-src/jquery.calendars-eu.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Basque localisation for Gregorian/Julian calendars for jQuery. + Karrikas-ek itzulia (karrikas@karrikas.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['eu'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Urtarrila','Otsaila','Martxoa','Apirila','Maiatza','Ekaina', + 'Uztaila','Abuztua','Iraila','Urria','Azaroa','Abendua'], + monthNamesShort: ['Urt','Ots','Mar','Api','Mai','Eka', + 'Uzt','Abu','Ira','Urr','Aza','Abe'], + dayNames: ['Igandea','Astelehena','Asteartea','Asteazkena','Osteguna','Ostirala','Larunbata'], + dayNamesShort: ['Iga','Ast','Ast','Ast','Ost','Ost','Lar'], + dayNamesMin: ['Ig','As','As','As','Os','Os','La'], + digits: null, + dateFormat: 'yyyy/mm/dd', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['eu'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['eu']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-fa.js b/jquery-src/jquery.calendars-fa.js new file mode 100755 index 0000000..7eb5e7d --- /dev/null +++ b/jquery-src/jquery.calendars-fa.js @@ -0,0 +1,23 @@ +/* http://keith-wood.name/calendars.html + Farsi/Persian localisation for Gregorian/Julian calendars for jQuery. + Javad Mowlanezhad -- jmowla@gmail.com */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['fa'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور', + 'مهر','آبان','آذر','دي','بهمن','اسفند'], + monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], + dayNames: ['يکشنبه','دوشنبه','سه‌شنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'], + dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'], + dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'], + digits: $.calendars.substituteDigits(['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']), + dateFormat: 'yyyy/mm/dd', + firstDay: 6, + isRTL: true + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['fa'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['fa']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-fi.js b/jquery-src/jquery.calendars-fi.js new file mode 100755 index 0000000..1d57387 --- /dev/null +++ b/jquery-src/jquery.calendars-fi.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Finnish localisation for Gregorian/Julian calendars for jQuery. + Written by Harri Kilpiö (harrikilpio@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['fi'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu', + 'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'], + monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä', + 'Heinä','Elo','Syys','Loka','Marras','Joulu'], + dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'], + dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'], + dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['fi'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['fi']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-fo.js b/jquery-src/jquery.calendars-fo.js new file mode 100755 index 0000000..ce966d0 --- /dev/null +++ b/jquery-src/jquery.calendars-fo.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Faroese localisation for Gregorian/Julian calendars for jQuery. + Written by Sverri Mohr Olsen, sverrimo@gmail.com */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['fo'] = { + name: 'Gregorianskur', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni', + 'Juli','August','September','Oktober','November','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', + 'Jul','Aug','Sep','Okt','Nov','Des'], + dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'], + dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'], + dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'], + digits: null, + dateFormat: 'dd-mm-yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['fo'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['fo']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-fr-CH.js b/jquery-src/jquery.calendars-fr-CH.js new file mode 100755 index 0000000..75e5ba1 --- /dev/null +++ b/jquery-src/jquery.calendars-fr-CH.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Swiss French localisation for Gregorian/Julian calendars for jQuery. + Written by Martin Voelkle (martin.voelkle@e-tc.ch). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['fr-CH'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', + 'Jul','Aoû','Sep','Oct','Nov','Déc'], + dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], + dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['fr-CH'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['fr-CH']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-fr.js b/jquery-src/jquery.calendars-fr.js new file mode 100755 index 0000000..1a91bd3 --- /dev/null +++ b/jquery-src/jquery.calendars-fr.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + French localisation for Gregorian/Julian calendars for jQuery. + Stéphane Nahmani (sholby@sholby.net). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['fr'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', + 'Jul','Aoû','Sep','Oct','Nov','Déc'], + dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], + dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['fr'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['fr']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-gl.js b/jquery-src/jquery.calendars-gl.js new file mode 100755 index 0000000..361a282 --- /dev/null +++ b/jquery-src/jquery.calendars-gl.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Iniciacion en galego para a extensión 'UI date picker' para jQuery. + Traducido por Manuel (McNuel@gmx.net). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['gl'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño', + 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'], + monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ', + 'Xul','Ago','Set','Out','Nov','Dec'], + dayNames: ['Domingo','Luns','Martes','Mércores','Xoves','Venres','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mér','Xov','Ven','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Me','Xo','Ve','Sá'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['gl'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['gl']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-gu.js b/jquery-src/jquery.calendars-gu.js new file mode 100755 index 0000000..6d3d7e4 --- /dev/null +++ b/jquery-src/jquery.calendars-gu.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Gujarati (ગુજરાતી) localisation for Gregorian/Julian calendars for jQuery. + Naymesh Mistry (naymesh@yahoo.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['gu'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['જાન્યુઆરી','ફેબ્રુઆરી','માર્ચ','એપ્રિલ','મે','જૂન', + 'જુલાઈ','ઑગસ્ટ','સપ્ટેમ્બર','ઑક્ટોબર','નવેમ્બર','ડિસેમ્બર'], + monthNamesShort: ['જાન્યુ','ફેબ્રુ','માર્ચ','એપ્રિલ','મે','જૂન', + 'જુલાઈ','ઑગસ્ટ','સપ્ટે','ઑક્ટો','નવે','ડિસે'], + dayNames: ['રવિવાર','સોમવાર','મંગળવાર','બુધવાર','ગુરુવાર','શુક્રવાર','શનિવાર'], + dayNamesShort: ['રવિ','સોમ','મંગળ','બુધ','ગુરુ','શુક્ર','શનિ'], + dayNamesMin: ['ર','સો','મં','બુ','ગુ','શુ','શ'], + digits: $.calendars.substituteDigits(['૦', '૧', '૨', '૩', '૪', '૫', '૬', '૭', '૮', '૯']), + dateFormat: 'dd-M-yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['gu'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['gu']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-he.js b/jquery-src/jquery.calendars-he.js new file mode 100755 index 0000000..873a1f9 --- /dev/null +++ b/jquery-src/jquery.calendars-he.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Hebrew localisation for Gregorian/Julian calendars for jQuery. + Written by Amir Hardon (ahardon at gmail dot com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['he'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני', + 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'], + monthNamesShort: ['1','2','3','4','5','6', + '7','8','9','10','11','12'], + dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'], + dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], + dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: true + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['he'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['he']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-hi-IN.js b/jquery-src/jquery.calendars-hi-IN.js new file mode 100755 index 0000000..948544d --- /dev/null +++ b/jquery-src/jquery.calendars-hi-IN.js @@ -0,0 +1,22 @@ +/* http://keith-wood.name/calendars.html + Hindi INDIA localisation for Gregorian/Julian calendars for jQuery. + Written by Pawan Kumar Singh. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['hi-IN'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['जनवरी',' फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून','जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'], + monthNamesShort: ['जन', 'फर', 'मार्च','अप्रै', 'मई', 'जून','जुलाई', 'अग', 'सित', 'अक्टू', 'नव', 'दिस'], + dayNames: ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार'], + dayNamesShort: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'], + dayNamesMin: ['र','सो','मं','बु','गु','शु','श'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['hi-IN'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['hi-IN']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-hr.js b/jquery-src/jquery.calendars-hr.js new file mode 100755 index 0000000..97a76c7 --- /dev/null +++ b/jquery-src/jquery.calendars-hr.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Croatian localisation for Gregorian/Julian calendars for jQuery. + Written by Vjekoslav Nesek. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['hr'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj', + 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'], + monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip', + 'Srp','Kol','Ruj','Lis','Stu','Pro'], + dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + digits: null, + dateFormat: 'dd.mm.yyyy.', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['hr'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['hr']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-hu.js b/jquery-src/jquery.calendars-hu.js new file mode 100755 index 0000000..8042813 --- /dev/null +++ b/jquery-src/jquery.calendars-hu.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Hungarian localisation for Gregorian/Julian calendars for jQuery. + Written by Istvan Karaszi (jquerycalendar@spam.raszi.hu). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['hu'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június', + 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'], + monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún', + 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'], + dayNames: ['Vasárnap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'], + dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'], + dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], + digits: null, + dateFormat: 'yyyy-mm-dd', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['hu'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['hu']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-hy.js b/jquery-src/jquery.calendars-hy.js new file mode 100755 index 0000000..eb907be --- /dev/null +++ b/jquery-src/jquery.calendars-hy.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Armenian localisation for Gregorian/Julian calendars for jQuery. + Written by Levon Zakaryan (levon.zakaryan@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['hy'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս', + 'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'], + monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս', + 'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'], + dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'], + dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], + dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['hy'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['hy']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-id.js b/jquery-src/jquery.calendars-id.js new file mode 100755 index 0000000..b205d93 --- /dev/null +++ b/jquery-src/jquery.calendars-id.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Indonesian localisation for Gregorian/Julian calendars for jQuery. + Written by Deden Fathurahman (dedenf@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['id'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januari','Februari','Maret','April','Mei','Juni', + 'Juli','Agustus','September','Oktober','Nopember','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', + 'Jul','Agus','Sep','Okt','Nop','Des'], + dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'], + dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'], + dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['id'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['id']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-is.js b/jquery-src/jquery.calendars-is.js new file mode 100755 index 0000000..bbe49c4 --- /dev/null +++ b/jquery-src/jquery.calendars-is.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Icelandic localisation for Gregorian/Julian calendars for jQuery. + Written by Haukur H. Thorsson (haukur@eskill.is). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['is'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní', + 'Júlí','Ágúst','September','Október','Nóvember','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún', + 'Júl','Ágú','Sep','Okt','Nóv','Des'], + dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'], + dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'], + dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['is'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['is']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-it.js b/jquery-src/jquery.calendars-it.js new file mode 100755 index 0000000..71e249b --- /dev/null +++ b/jquery-src/jquery.calendars-it.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Italian localisation for Gregorian/Julian calendars for jQuery. + Written by Apaella (apaella@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['it'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno', + 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'], + monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu', + 'Lug','Ago','Set','Ott','Nov','Dic'], + dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'], + dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'], + dayNamesMin: ['Do','Lu','Ma','Me','Gio','Ve','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['it'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['it']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ja.js b/jquery-src/jquery.calendars-ja.js new file mode 100755 index 0000000..65ce576 --- /dev/null +++ b/jquery-src/jquery.calendars-ja.js @@ -0,0 +1,25 @@ +/* http://keith-wood.name/calendars.html + Japanese localisation for Gregorian/Julian calendars for jQuery. + Written by Kentaro SATO (kentaro@ranvis.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ja'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['1月','2月','3月','4月','5月','6月', + '7月','8月','9月','10月','11月','12月'], + monthNamesShort: ['1月','2月','3月','4月','5月','6月', + '7月','8月','9月','10月','11月','12月'], + dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'], + dayNamesShort: ['日','月','火','水','木','金','土'], + dayNamesMin: ['日','月','火','水','木','金','土'], + digits: $.calendars.substituteChineseDigits( + ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九'], ['', '十', '百', '千']), + dateFormat: 'yyyy/mm/dd', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ja'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ja']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ka.js b/jquery-src/jquery.calendars-ka.js new file mode 100755 index 0000000..ec3390f --- /dev/null +++ b/jquery-src/jquery.calendars-ka.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Georgian localisation for Gregorian/Julian calendars for jQuery. + Andrei Gorbushkin. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ka'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი', + 'ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'], + monthNamesShort: ['იან', 'თებ', 'მარ', 'აპრ', 'მაისი', 'ივნ', + 'ივლ', 'აგვ', 'სექ', 'ოქტ', 'ნოე', 'დეკ'], + dayNames: ['კვირა', 'ორშაბათი', 'სამშაბათი', 'ოთხშაბათი', 'ხუთშაბათი', 'პარასკევი', 'შაბათი'], + dayNamesShort: ['კვ', 'ორშ', 'სამ', 'ოთხ', 'ხუთ', 'პარ', 'შაბ'], + dayNamesMin: ['კვ','ორ','სმ','ოთ', 'ხშ', 'პრ','შბ'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ka'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ka']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-km.js b/jquery-src/jquery.calendars-km.js new file mode 100755 index 0000000..9d4ddc9 --- /dev/null +++ b/jquery-src/jquery.calendars-km.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Khmer initialisation for Gregorian/Julian calendars for jQuery. + Written by Sovichet Tep (sovichet.tep@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['km'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['ខែ​មករា','ខែ​កុម្ភៈ','ខែ​មិនា','ខែ​មេសា','ខែ​ឧសភា','ខែ​មិថុនា', + 'ខែ​កក្កដា','ខែ​សីហា','ខែ​កញ្ញា','ខែ​តុលា','ខែ​វិច្ឆិកា','ខែ​ធ្នូ'], + monthNamesShort: ['មក', 'កុ', 'មិនា', 'មេ', 'ឧស', 'មិថុ', + 'កក្ក', 'សី', 'កញ្ញា', 'តុលា', 'វិច្ឆិ', 'ធ្នូ'], + dayNames: ['ថ្ងៃ​អាទិត្យ', 'ថ្ងៃ​ចន្ទ', 'ថ្ងៃ​អង្គារ', 'ថ្ងៃ​ពុធ', 'ថ្ងៃ​ព្រហស្បត្តិ៍', 'ថ្ងៃ​សុក្រ', 'ថ្ងៃ​សៅរ៍'], + dayNamesShort: ['អា', 'ចន្ទ', 'អង្គ', 'ពុធ', 'ព្រហ', 'សុ', 'សៅរ៍'], + dayNamesMin: ['អា','ច','អ','ពុ','ព្រ','សុ','ស'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['km'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['km']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ko.js b/jquery-src/jquery.calendars-ko.js new file mode 100755 index 0000000..74d3428 --- /dev/null +++ b/jquery-src/jquery.calendars-ko.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Korean localisation for Gregorian/Julian calendars for jQuery. + Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ko'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['1월','2월','3월','4월','5월','6월', + '7월','8월','9월','10월','11월','12월'], + monthNamesShort: ['1월','2월','3월','4월','5월','6월', + '7월','8월','9월','10월','11월','12월'], + dayNames: ['일요일','월요일','화요일','수요일','목요일','금요일','토요일'], + dayNamesShort: ['일','월','화','수','목','금','토'], + dayNamesMin: ['일','월','화','수','목','금','토'], + digits: null, + dateFormat: 'yyyy-mm-dd', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ko'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ko']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-lt.js b/jquery-src/jquery.calendars-lt.js new file mode 100755 index 0000000..bb7321e --- /dev/null +++ b/jquery-src/jquery.calendars-lt.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Lithuanian localisation for Gregorian/Julian calendars for jQuery. + Arturas Paleicikas . */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['lt'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis', + 'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'], + monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir', + 'Lie','Rugp','Rugs','Spa','Lap','Gru'], + dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'], + dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'], + dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'], + digits: null, + dateFormat: 'yyyy-mm-dd', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['lt'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['lt']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-lv.js b/jquery-src/jquery.calendars-lv.js new file mode 100755 index 0000000..3f61039 --- /dev/null +++ b/jquery-src/jquery.calendars-lv.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Latvian localisation for Gregorian/Julian calendars for jQuery. + Arturas Paleicikas . */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['lv'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs', + 'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn', + 'Jūl','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'], + dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'], + dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'], + digits: null, + dateFormat: 'dd-mm-yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['lv'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['lv']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-me-ME.js b/jquery-src/jquery.calendars-me-ME.js new file mode 100755 index 0000000..6e0da73 --- /dev/null +++ b/jquery-src/jquery.calendars-me-ME.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Montenegrin localisation for Gregorian/Julian calendars for jQuery. + By Miloš Milošević - fleka d.o.o. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['me-ME'] = { + name: 'Gregorijanski', + epochs: ['pne', 'ne'], + monthNames: ['Januar','Februar','Mart','April','Maj','Jun', + 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', + 'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'], + dayNames: ['Neđelja', 'Poneđeljak', 'Utorak', 'Srijeda', 'Četvrtak', 'Petak', 'Subota'], + dayNamesShort: ['Neđ', 'Pon', 'Uto', 'Sri', 'Čet', 'Pet', 'Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['me-ME'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['me-ME']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-me.js b/jquery-src/jquery.calendars-me.js new file mode 100755 index 0000000..effa29f --- /dev/null +++ b/jquery-src/jquery.calendars-me.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Montenegrin localisation for Gregorian/Julian calendars for jQuery. + By Miloš Milošević - fleka d.o.o. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['me'] = { + name: 'Грегоријански', + epochs: ['пне', 'не'], + monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун', + 'Јул','Август','Септембар','Октобар','Новембар','Децембар'], + monthNamesShort: ['Јан', 'Феб', 'Мар', 'Апр', 'Мај', 'Јун', + 'Јул', 'Авг', 'Сеп', 'Окт', 'Нов', 'Дец'], + dayNames: ['Неђеља', 'Понеђељак', 'Уторак', 'Сриједа', 'Четвртак', 'Петак', 'Субота'], + dayNamesShort: ['Неђ', 'Пон', 'Уто', 'Сри', 'Чет', 'Пет', 'Суб'], + dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['me'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['me']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-mk.js b/jquery-src/jquery.calendars-mk.js new file mode 100755 index 0000000..eb59ad7 --- /dev/null +++ b/jquery-src/jquery.calendars-mk.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Македонски MK localisation for Gregorian/Julian calendars for jQuery. + Hajan Selmani (hajan [at] live [dot] com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['mk'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Јануари','Февруари','Март','Април','Мај','Јуни', + 'Јули','Август','Септември','Октомври','Ноември','Декември'], + monthNamesShort: ['Јан', 'Фев', 'Мар', 'Апр', 'Мај', 'Јун', + 'Јул', 'Авг', 'Сеп', 'Окт', 'Нов', 'Дек'], + dayNames: ['Недела', 'Понеделник', 'Вторник', 'Среда', 'Четврток', 'Петок', 'Сабота'], + dayNamesShort: ['Нед', 'Пон', 'Вто', 'Сре', 'Чет', 'Пет', 'Саб'], + dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Са'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['mk'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['mk']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ml.js b/jquery-src/jquery.calendars-ml.js new file mode 100755 index 0000000..0effb95 --- /dev/null +++ b/jquery-src/jquery.calendars-ml.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Malayalam localisation for Gregorian/Julian calendars for jQuery. + Saji Nediyanchath (saji89@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ml'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍', + 'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'], + monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍', + 'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'], + dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ml'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ml']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ms.js b/jquery-src/jquery.calendars-ms.js new file mode 100755 index 0000000..e4116b2 --- /dev/null +++ b/jquery-src/jquery.calendars-ms.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Malaysian localisation for Gregorian/Julian calendars for jQuery. + Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ms'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januari','Februari','Mac','April','Mei','Jun', + 'Julai','Ogos','September','Oktober','November','Disember'], + monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun', + 'Jul','Ogo','Sep','Okt','Nov','Dis'], + dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'], + dayNamesShort: ['Aha','Isn','Sel','Rab','Kha','Jum','Sab'], + dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ms'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ms']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-mt.js b/jquery-src/jquery.calendars-mt.js new file mode 100755 index 0000000..40d721b --- /dev/null +++ b/jquery-src/jquery.calendars-mt.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Maltese localisation for Gregorian/Julian calendars for jQuery. + Written by Chritian Sciberras (uuf6429@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['mt'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Jannar','Frar','Marzu','April','Mejju','Ġunju', + 'Lulju','Awissu','Settembru','Ottubru','Novembru','Diċembru'], + monthNamesShort: ['Jan', 'Fra', 'Mar', 'Apr', 'Mej', 'Ġun', + 'Lul', 'Awi', 'Set', 'Ott', 'Nov', 'Diċ'], + dayNames: ['Il-Ħadd', 'It-Tnejn', 'It-Tlieta', 'L-Erbgħa', 'Il-Ħamis', 'Il-Ġimgħa', 'Is-Sibt'], + dayNamesShort: ['Ħad', 'Tne', 'Tli', 'Erb', 'Ħam', 'Ġim', 'Sib'], + dayNamesMin: ['Ħ','T','T','E','Ħ','Ġ','S'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['mt'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['mt']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-nl-BE.js b/jquery-src/jquery.calendars-nl-BE.js new file mode 100755 index 0000000..a1ae8df --- /dev/null +++ b/jquery-src/jquery.calendars-nl-BE.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Dutch/Belgian localisation for Gregorian/Julian calendars for jQuery. + Written by Mathias Bynens . */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['nl-BE'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun', + 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], + dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], + dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['nl-BE'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['nl-BE']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-nl.js b/jquery-src/jquery.calendars-nl.js new file mode 100755 index 0000000..8d6e5e8 --- /dev/null +++ b/jquery-src/jquery.calendars-nl.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Dutch localisation for Gregorian/Julian calendars for jQuery. + Written by Mathias Bynens . */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['nl'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun', + 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], + dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], + dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + digits: null, + dateFormat: 'dd-mm-yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['nl'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['nl']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-no.js b/jquery-src/jquery.calendars-no.js new file mode 100755 index 0000000..fcdd02c --- /dev/null +++ b/jquery-src/jquery.calendars-no.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Norwegian localisation for Gregorian/Julian calendars for jQuery. + Written by Naimdjon Takhirov (naimdjon@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['no'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Mars','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun', + 'Jul','Aug','Sep','Okt','Nov','Des'], + dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], + dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], + dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['no'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['no']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-pa.js b/jquery-src/jquery.calendars-pa.js new file mode 100755 index 0000000..4e4aed2 --- /dev/null +++ b/jquery-src/jquery.calendars-pa.js @@ -0,0 +1,23 @@ +/* http://keith-wood.name/calendars.html + Punjabi localisation for Gregorian/Julian calendars for jQuery. + Sarbjit Singh (sanbroz@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['pa'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['ਜਨਵਰੀ','ਫ਼ਰਵਰੀ','ਮਾਰਚ','ਅਪ੍ਰੈਲ','ਮਈ','ਜੂਨ', + 'ਜੁਲਾਈ','ਅਗਸਤ','ਸਤੰਬਰ','ਅਕਤੂਬਰ','ਨਵੰਬਰ','ਦਸੰਬਰ'], + monthNamesShort: ['ਜਨ', 'ਫ਼ਰ', 'ਮਾਰ', 'ਅਪ੍ਰੈ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾ', 'ਅਗ', 'ਸਤੰ', 'ਅਕ', 'ਨਵੰ', 'ਦਸੰ'], + dayNames: ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', 'ਬੁੱਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨਿੱਚਰਵਾਰ'], + dayNamesShort: ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁੱਧ', 'ਵੀਰ', 'ਸ਼ੁੱਕਰ', 'ਸ਼ਨਿੱਚਰ'], + dayNamesMin: ['ਐ', 'ਸੋ', 'ਮੰ', 'ਬੁੱ', 'ਵੀ', 'ਸ਼ੁੱ', 'ਸ਼'], + digits: $.calendars.substituteDigits(['੦', '੧', '੨', '੩', '੪', '੫', '੬', '੭', '੮', '੯']), + dateFormat: 'dd-mm-yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['pa'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['pa']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-pl.js b/jquery-src/jquery.calendars-pl.js new file mode 100755 index 0000000..a33c684 --- /dev/null +++ b/jquery-src/jquery.calendars-pl.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Polish localisation for Gregorian/Julian calendars for jQuery. + Written by Jacek Wysocki (jacek.wysocki@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['pl'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec', + 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'], + monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze', + 'Lip','Sie','Wrz','Pa','Lis','Gru'], + dayNames: ['Niedziela','Poniedzialek','Wtorek','Środa','Czwartek','Piątek','Sobota'], + dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'], + dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'], + digits: null, + dateFormat: 'yyyy-mm-dd', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['pl'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['pl']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-pt-BR.js b/jquery-src/jquery.calendars-pt-BR.js new file mode 100755 index 0000000..96f58a2 --- /dev/null +++ b/jquery-src/jquery.calendars-pt-BR.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Brazilian Portuguese localisation for Gregorian/Julian calendars for jQuery. + Written by Leonildo Costa Silva (leocsilva@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['pt-BR'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', + 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', + 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['pt-BR'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['pt-BR']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-rm.js b/jquery-src/jquery.calendars-rm.js new file mode 100755 index 0000000..6c742db --- /dev/null +++ b/jquery-src/jquery.calendars-rm.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Romansh localisation for Gregorian/Julian calendars for jQuery. + Yvonne Gienal (yvonne.gienal@educa.ch). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['rm'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', + 'Fanadur','Avust','Settember','October','November','December'], + monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', + 'Fan','Avu','Sett','Oct','Nov','Dec'], + dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'], + dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'], + dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['rm'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['rm']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ro.js b/jquery-src/jquery.calendars-ro.js new file mode 100755 index 0000000..3ebddc1 --- /dev/null +++ b/jquery-src/jquery.calendars-ro.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Romanian localisation for Gregorian/Julian calendars for jQuery. + Written by Edmond L. (ll_edmond@walla.com) and Ionut G. Stan (ionut.g.stan@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ro'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie', + 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'], + monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun', + 'Iul', 'Aug', 'Sep', 'Oct', 'Noi', 'Dec'], + dayNames: ['Duminică', 'Luni', 'Marti', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'], + dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'], + dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ro'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ro']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ru.js b/jquery-src/jquery.calendars-ru.js new file mode 100755 index 0000000..7f8895b --- /dev/null +++ b/jquery-src/jquery.calendars-ru.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Russian localisation for Gregorian/Julian calendars for jQuery. + Written by Andrew Stromnov (stromnov@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ru'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', + 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], + monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', + 'Июл','Авг','Сен','Окт','Ноя','Дек'], + dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'], + dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'], + dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ru'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ru']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-sk.js b/jquery-src/jquery.calendars-sk.js new file mode 100755 index 0000000..86f65a6 --- /dev/null +++ b/jquery-src/jquery.calendars-sk.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Slovak localisation for Gregorian/Julian calendars for jQuery. + Written by Vojtech Rinik (vojto@hmm.sk). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['sk'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Január','Február','Marec','Apríl','Máj','Jún', + 'Júl','August','September','Október','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún', + 'Júl','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Nedel\'a','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'], + dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'], + dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['sk'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['sk']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-sl.js b/jquery-src/jquery.calendars-sl.js new file mode 100755 index 0000000..dd98d1d --- /dev/null +++ b/jquery-src/jquery.calendars-sl.js @@ -0,0 +1,25 @@ +/* http://keith-wood.name/calendars.html + Slovenian localisation for Gregorian/Julian calendars for jQuery. + Written by Jaka Jancar (jaka@kubje.org). */ +/* c = č, s = š z = ž C = Č S = Š Z = Ž */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['sl'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Marec','April','Maj','Junij', + 'Julij','Avgust','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Avg','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','Četrtek','Petek','Sobota'], + dayNamesShort: ['Ned','Pon','Tor','Sre','Čet','Pet','Sob'], + dayNamesMin: ['Ne','Po','To','Sr','Če','Pe','So'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['sl'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['sl']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-sq.js b/jquery-src/jquery.calendars-sq.js new file mode 100755 index 0000000..3e0c9b3 --- /dev/null +++ b/jquery-src/jquery.calendars-sq.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Albanian localisation for Gregorian/Julian calendars for jQuery. + Written by Flakron Bytyqi (flakron@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['sq'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor', + 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'], + monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer', + 'Kor','Gus','Sht','Tet','Nën','Dhj'], + dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'], + dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'], + dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['sq'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['sq']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-sr-SR.js b/jquery-src/jquery.calendars-sr-SR.js new file mode 100755 index 0000000..fc6722e --- /dev/null +++ b/jquery-src/jquery.calendars-sr-SR.js @@ -0,0 +1,23 @@ +/* http://keith-wood.name/calendars.html + Serbian localisation for Gregorian/Julian calendars for jQuery. + Written by Dejan Dimić. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['sr-SR'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januar','Februar','Mart','April','Maj','Jun', + 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Avg','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['sr-SR'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['sr-SR']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-sr.js b/jquery-src/jquery.calendars-sr.js new file mode 100755 index 0000000..30a1b69 --- /dev/null +++ b/jquery-src/jquery.calendars-sr.js @@ -0,0 +1,23 @@ +/* http://keith-wood.name/calendars.html + Serbian localisation for Gregorian/Julian calendars for jQuery. + Written by Dejan Dimić. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['sr'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун', + 'Јул','Август','Септембар','Октобар','Новембар','Децембар'], + monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун','Јул','Авг','Сеп','Окт','Нов','Дец'], + dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'], + dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'], + dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['sr'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['sr']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-sv.js b/jquery-src/jquery.calendars-sv.js new file mode 100755 index 0000000..5176c1b --- /dev/null +++ b/jquery-src/jquery.calendars-sv.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Swedish localisation for Gregorian/Julian calendars for jQuery. + Written by Anders Ekdahl (anders@nomadiz.se). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['sv'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Januari','Februari','Mars','April','Maj','Juni', + 'Juli','Augusti','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'], + dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'], + dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'], + digits: null, + dateFormat: 'yyyy-mm-dd', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['sv'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['sv']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ta.js b/jquery-src/jquery.calendars-ta.js new file mode 100755 index 0000000..1a2e363 --- /dev/null +++ b/jquery-src/jquery.calendars-ta.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Tamil (UTF-8) localisation for Gregorian/Julian calendars for jQuery. + Written by S A Sureshkumar (saskumar@live.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ta'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி', + 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'], + monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி', + 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'], + dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'], + dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'], + dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ta'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ta']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-th.js b/jquery-src/jquery.calendars-th.js new file mode 100755 index 0000000..b5f6a7d --- /dev/null +++ b/jquery-src/jquery.calendars-th.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Thai localisation for Gregorian/Julian calendars for jQuery. + Written by pipo (pipo@sixhead.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['th'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน', + 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'], + monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.', + 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'], + dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'], + dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], + dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['th'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['th']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-tr.js b/jquery-src/jquery.calendars-tr.js new file mode 100755 index 0000000..114f6bd --- /dev/null +++ b/jquery-src/jquery.calendars-tr.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Turkish localisation for Gregorian/Julian calendars for jQuery. + Written by Izzet Emre Erkan (kara@karalamalar.net). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['tr'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran', + 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'], + monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz', + 'Tem','Ağu','Eyl','Eki','Kas','Ara'], + dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'], + dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], + dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['tr'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['tr']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-tt.js b/jquery-src/jquery.calendars-tt.js new file mode 100755 index 0000000..c5a9f6c --- /dev/null +++ b/jquery-src/jquery.calendars-tt.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Tatar localisation for Gregorian/Julian calendars for jQuery. + Written by Ирек Хаҗиев (khazirek@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['tt'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Гынвар','Февраль','Март','Апрель','Май','Июнь', + 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], + monthNamesShort: ['Гыйн','Фев','Мар','Апр','Май','Июн', + 'Июл','Авг','Сен','Окт','Ноя','Дек'], + dayNames: ['якшәмбе','дүшәмбе','сишәмбе','чәршәмбе','пәнҗешәмбе','җомга','шимбә'], + dayNamesShort: ['якш','дүш','сиш','чәр','пән','җом','шим'], + dayNamesMin: ['Як','Дү','Си','Чә','Пә','Җо','Ши'], + digits: null, + dateFormat: 'dd.mm.yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['tt'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['tt']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-uk.js b/jquery-src/jquery.calendars-uk.js new file mode 100755 index 0000000..b675836 --- /dev/null +++ b/jquery-src/jquery.calendars-uk.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Ukrainian localisation for Gregorian/Julian calendars for jQuery. + Written by Maxim Drogobitskiy (maxdao@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['uk'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень', + 'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'], + monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер', + 'Лип','Сер','Вер','Жов','Лис','Гру'], + dayNames: ['неділя','понеділок','вівторок','середа','четвер','п\'ятниця','субота'], + dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'], + dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['uk'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['uk']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-ur.js b/jquery-src/jquery.calendars-ur.js new file mode 100755 index 0000000..7e152fd --- /dev/null +++ b/jquery-src/jquery.calendars-ur.js @@ -0,0 +1,26 @@ +/* http://keith-wood.name/calendars.html + Urdu localisation for Gregorian/Julian calendars for jQuery. + Mansoor Munib -- mansoormunib@gmail.com + Thanks to Habib Ahmed, ObaidUllah Anwar. */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['ur'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['جنوری','فروری','مارچ','اپریل','مئی','جون', + 'جولائی','اگست','ستمبر','اکتوبر','نومبر','دسمبر'], + monthNamesShort: ['1','2','3','4','5','6', + '7','8','9','10','11','12'], + dayNames: ['اتوار','پير','منگل','بدھ','جمعرات','جمعہ','ہفتہ'], + dayNamesShort: ['اتوار','پير','منگل','بدھ','جمعرات','جمعہ','ہفتہ'], + dayNamesMin: ['اتوار','پير','منگل','بدھ','جمعرات','جمعہ','ہفتہ'], + digits: $.calendars.substituteDigits(['٠', '١', '٢', '٣', '۴', '۵', '۶', '۷', '٨', '٩']), + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + firstDay: 1, + isRTL: true + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['ur'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['ur']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-vi.js b/jquery-src/jquery.calendars-vi.js new file mode 100755 index 0000000..e68543e --- /dev/null +++ b/jquery-src/jquery.calendars-vi.js @@ -0,0 +1,24 @@ +/* http://keith-wood.name/calendars.html + Vietnamese localisation for Gregorian/Julian calendars for jQuery. + Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['vi'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu', + 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'], + monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', + 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'], + dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'], + dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], + dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], + digits: null, + dateFormat: 'dd/mm/yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['vi'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['vi']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-zh-CN.js b/jquery-src/jquery.calendars-zh-CN.js new file mode 100755 index 0000000..eb7540c --- /dev/null +++ b/jquery-src/jquery.calendars-zh-CN.js @@ -0,0 +1,25 @@ +/* http://keith-wood.name/calendars.html + Simplified Chinese localisation for Gregorian/Julian calendars for jQuery. + Written by Cloudream (cloudream@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['zh-CN'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + digits: $.calendars.substituteChineseDigits( + ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九'], ['', '十', '百', '千']), + dateFormat: 'yyyy-mm-dd', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['zh-CN'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['zh-CN']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-zh-HK.js b/jquery-src/jquery.calendars-zh-HK.js new file mode 100755 index 0000000..44a0ed7 --- /dev/null +++ b/jquery-src/jquery.calendars-zh-HK.js @@ -0,0 +1,25 @@ +/* http://keith-wood.name/calendars.html + Hong Kong Chinese localisation for Gregorian/Julian calendars for jQuery. + Written by SCCY (samuelcychan@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['zh-HK'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + digits: $.calendars.substituteChineseDigits( + ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九'], ['', '十', '百', '千']), + dateFormat: 'dd-mm-yyyy', + firstDay: 0, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['zh-HK'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['zh-HK']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars-zh-TW.js b/jquery-src/jquery.calendars-zh-TW.js new file mode 100755 index 0000000..e745836 --- /dev/null +++ b/jquery-src/jquery.calendars-zh-TW.js @@ -0,0 +1,25 @@ +/* http://keith-wood.name/calendars.html + Traditional Chinese localisation for Gregorian/Julian calendars for jQuery. + Written by Ressol (ressol@gmail.com). */ +(function($) { + $.calendars.calendars.gregorian.prototype.regionalOptions['zh-TW'] = { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + digits: $.calendars.substituteChineseDigits( + ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九'], ['', '十', '百', '千']), + dateFormat: 'yyyy/mm/dd', + firstDay: 1, + isRTL: false + }; + if ($.calendars.calendars.julian) { + $.calendars.calendars.julian.prototype.regionalOptions['zh-TW'] = + $.calendars.calendars.gregorian.prototype.regionalOptions['zh-TW']; + } +})(jQuery); diff --git a/jquery-src/jquery.calendars.all.js b/jquery-src/jquery.calendars.all.js new file mode 100755 index 0000000..6f26120 --- /dev/null +++ b/jquery-src/jquery.calendars.all.js @@ -0,0 +1,3165 @@ +/* http://keith-wood.name/calendars.html + Calendars for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +(function($) { // Hide scope, no $ conflict + + function Calendars() { + this.regionalOptions = []; + this.regionalOptions[''] = { + invalidCalendar: 'Calendar {0} not found', + invalidDate: 'Invalid {0} date', + invalidMonth: 'Invalid {0} month', + invalidYear: 'Invalid {0} year', + differentCalendars: 'Cannot mix {0} and {1} dates' + }; + this.local = this.regionalOptions['']; + this.calendars = {}; + this._localCals = {}; + } + + /** Create the calendars plugin. +

Provides support for various world calendars in a consistent manner.

+ @class Calendars + @example $.calendars.instance('julian').newDate(2014, 12, 25) */ + $.extend(Calendars.prototype, { + + /** Obtain a calendar implementation and localisation. + @memberof Calendars + @param [name='gregorian'] {string} The name of the calendar, e.g. 'gregorian', 'persian', 'islamic'. + @param [language=''] {string} The language code to use for localisation (default is English). + @return {Calendar} The calendar and localisation. + @throws Error if calendar not found. */ + instance: function(name, language) { + name = (name || 'gregorian').toLowerCase(); + language = language || ''; + var cal = this._localCals[name + '-' + language]; + if (!cal && this.calendars[name]) { + cal = new this.calendars[name](language); + this._localCals[name + '-' + language] = cal; + } + if (!cal) { + throw (this.local.invalidCalendar || this.regionalOptions[''].invalidCalendar). + replace(/\{0\}/, name); + } + return cal; + }, + + /** Create a new date - for today if no other parameters given. + @memberof Calendars + @param year {CDate|number} The date to copy or the year for the date. + @param [month] {number} The month for the date. + @param [day] {number} The day for the date. + @param [calendar='gregorian'] {BaseCalendar|string} The underlying calendar or the name of the calendar. + @param [language=''] {string} The language to use for localisation (default English). + @return {CDate} The new date. + @throws Error if an invalid date. */ + newDate: function(year, month, day, calendar, language) { + calendar = (year != null && year.year ? year.calendar() : (typeof calendar === 'string' ? + this.instance(calendar, language) : calendar)) || this.instance(); + return calendar.newDate(year, month, day); + }, + + /** A simple digit substitution function for localising numbers via the Calendar digits option. + @member Calendars + @param digits {string[]} The substitute digits, for 0 through 9. + @return {function} The substitution function. */ + substituteDigits: function(digits) { + return function(value) { + return (value + '').replace(/[0-9]/g, function(digit) { + return digits[digit]; + }); + } + }, + + /** Digit substitution function for localising Chinese style numbers via the Calendar digits option. + @member Calendars + @param digits {string[]} The substitute digits, for 0 through 9. + @param powers {string[]} The characters denoting powers of 10, i.e. 1, 10, 100, 1000. + @return {function} The substitution function. */ + substituteChineseDigits: function(digits, powers) { + return function(value) { + var localNumber = ''; + var power = 0; + while (value > 0) { + var units = value % 10; + localNumber = (units === 0 ? '' : digits[units] + powers[power]) + localNumber; + power++; + value = Math.floor(value / 10); + } + if (localNumber.indexOf(digits[1] + powers[1]) === 0) { + localNumber = localNumber.substr(1); + } + return localNumber || digits[0]; + } + } + }); + + /** Generic date, based on a particular calendar. + @class CDate + @param calendar {BaseCalendar} The underlying calendar implementation. + @param year {number} The year for this date. + @param month {number} The month for this date. + @param day {number} The day for this date. + @return {CDate} The date object. + @throws Error if an invalid date. */ + function CDate(calendar, year, month, day) { + this._calendar = calendar; + this._year = year; + this._month = month; + this._day = day; + if (this._calendar._validateLevel === 0 && + !this._calendar.isValid(this._year, this._month, this._day)) { + throw ($.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate). + replace(/\{0\}/, this._calendar.local.name); + } + } + + /** Pad a numeric value with leading zeroes. + @private + @param value {number} The number to format. + @param length {number} The minimum length. + @return {string} The formatted number. */ + function pad(value, length) { + value = '' + value; + return '000000'.substring(0, length - value.length) + value; + } + + $.extend(CDate.prototype, { + + /** Create a new date. + @memberof CDate + @param [year] {CDate|number} The date to copy or the year for the date (default this date). + @param [month] {number} The month for the date. + @param [day] {number} The day for the date. + @return {CDate} The new date. + @throws Error if an invalid date. */ + newDate: function(year, month, day) { + return this._calendar.newDate((year == null ? this : year), month, day); + }, + + /** Set or retrieve the year for this date. + @memberof CDate + @param [year] {number} The year for the date. + @return {number|CDate} The date's year (if no parameter) or the updated date. + @throws Error if an invalid date. */ + year: function(year) { + return (arguments.length === 0 ? this._year : this.set(year, 'y')); + }, + + /** Set or retrieve the month for this date. + @memberof CDate + @param [month] {number} The month for the date. + @return {number|CDate} The date's month (if no parameter) or the updated date. + @throws Error if an invalid date. */ + month: function(month) { + return (arguments.length === 0 ? this._month : this.set(month, 'm')); + }, + + /** Set or retrieve the day for this date. + @memberof CDate + @param [day] {number} The day for the date. + @return {number|CData} The date's day (if no parameter) or the updated date. + @throws Error if an invalid date. */ + day: function(day) { + return (arguments.length === 0 ? this._day : this.set(day, 'd')); + }, + + /** Set new values for this date. + @memberof CDate + @param year {number} The year for the date. + @param month {number} The month for the date. + @param day {number} The day for the date. + @return {CDate} The updated date. + @throws Error if an invalid date. */ + date: function(year, month, day) { + if (!this._calendar.isValid(year, month, day)) { + throw ($.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate). + replace(/\{0\}/, this._calendar.local.name); + } + this._year = year; + this._month = month; + this._day = day; + return this; + }, + + /** Determine whether this date is in a leap year. + @memberof CDate + @return {boolean} true if this is a leap year, false if not. */ + leapYear: function() { + return this._calendar.leapYear(this); + }, + + /** Retrieve the epoch designator for this date, e.g. BCE or CE. + @memberof CDate + @return {string} The current epoch. */ + epoch: function() { + return this._calendar.epoch(this); + }, + + /** Format the year, if not a simple sequential number. + @memberof CDate + @return {string} The formatted year. */ + formatYear: function() { + return this._calendar.formatYear(this); + }, + + /** Retrieve the month of the year for this date, + i.e. the month's position within a numbered year. + @memberof CDate + @return {number} The month of the year: minMonth to months per year. */ + monthOfYear: function() { + return this._calendar.monthOfYear(this); + }, + + /** Retrieve the week of the year for this date. + @memberof CDate + @return {number} The week of the year: 1 to weeks per year. */ + weekOfYear: function() { + return this._calendar.weekOfYear(this); + }, + + /** Retrieve the number of days in the year for this date. + @memberof CDate + @return {number} The number of days in this year. */ + daysInYear: function() { + return this._calendar.daysInYear(this); + }, + + /** Retrieve the day of the year for this date. + @memberof CDate + @return {number} The day of the year: 1 to days per year. */ + dayOfYear: function() { + return this._calendar.dayOfYear(this); + }, + + /** Retrieve the number of days in the month for this date. + @memberof CDate + @return {number} The number of days. */ + daysInMonth: function() { + return this._calendar.daysInMonth(this); + }, + + /** Retrieve the day of the week for this date. + @memberof CDate + @return {number} The day of the week: 0 to number of days - 1. */ + dayOfWeek: function() { + return this._calendar.dayOfWeek(this); + }, + + /** Determine whether this date is a week day. + @memberof CDate + @return {boolean} true if a week day, false if not. */ + weekDay: function() { + return this._calendar.weekDay(this); + }, + + /** Retrieve additional information about this date. + @memberof CDate + @return {object} Additional information - contents depends on calendar. */ + extraInfo: function() { + return this._calendar.extraInfo(this); + }, + + /** Add period(s) to a date. + @memberof CDate + @param offset {number} The number of periods to adjust by. + @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day. + @return {CDate} The updated date. */ + add: function(offset, period) { + return this._calendar.add(this, offset, period); + }, + + /** Set a portion of the date. + @memberof CDate + @param value {number} The new value for the period. + @param period {string} One of 'y' for year, 'm' for month, 'd' for day. + @return {CDate} The updated date. + @throws Error if not a valid date. */ + set: function(value, period) { + return this._calendar.set(this, value, period); + }, + + /** Compare this date to another date. + @memberof CDate + @param date {CDate} The other date. + @return {number} -1 if this date is before the other date, + 0 if they are equal, or +1 if this date is after the other date. */ + compareTo: function(date) { + if (this._calendar.name !== date._calendar.name) { + throw ($.calendars.local.differentCalendars || $.calendars.regionalOptions[''].differentCalendars). + replace(/\{0\}/, this._calendar.local.name).replace(/\{1\}/, date._calendar.local.name); + } + var c = (this._year !== date._year ? this._year - date._year : + this._month !== date._month ? this.monthOfYear() - date.monthOfYear() : + this._day - date._day); + return (c === 0 ? 0 : (c < 0 ? -1 : +1)); + }, + + /** Retrieve the calendar backing this date. + @memberof CDate + @return {BaseCalendar} The calendar implementation. */ + calendar: function() { + return this._calendar; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof CDate + @return {number} The equivalent Julian date. */ + toJD: function() { + return this._calendar.toJD(this); + }, + + /** Create a new date from a Julian date. + @memberof CDate + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + return this._calendar.fromJD(jd); + }, + + /** Convert this date to a standard (Gregorian) JavaScript Date. + @memberof CDate + @return {Date} The equivalent JavaScript date. */ + toJSDate: function() { + return this._calendar.toJSDate(this); + }, + + /** Create a new date from a standard (Gregorian) JavaScript Date. + @memberof CDate + @param jsd {Date} The JavaScript date to convert. + @return {CDate} The equivalent date. */ + fromJSDate: function(jsd) { + return this._calendar.fromJSDate(jsd); + }, + + /** Convert to a string for display. + @memberof CDate + @return {string} This date as a string. */ + toString: function() { + return (this.year() < 0 ? '-' : '') + pad(Math.abs(this.year()), 4) + + '-' + pad(this.month(), 2) + '-' + pad(this.day(), 2); + } + }); + + /** Basic functionality for all calendars. + Other calendars should extend this: +
OtherCalendar.prototype = new BaseCalendar;
+ @class BaseCalendar */ + function BaseCalendar() { + this.shortYearCutoff = '+10'; + } + + $.extend(BaseCalendar.prototype, { + _validateLevel: 0, // "Stack" to turn validation on/off + + /** Create a new date within this calendar - today if no parameters given. + @memberof BaseCalendar + @param year {CDate|number} The date to duplicate or the year for the date. + @param [month] {number} The month for the date. + @param [day] {number} The day for the date. + @return {CDate} The new date. + @throws Error if not a valid date or a different calendar used. */ + newDate: function(year, month, day) { + if (year == null) { + return this.today(); + } + if (year.year) { + this._validate(year, month, day, + $.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate); + day = year.day(); + month = year.month(); + year = year.year(); + } + return new CDate(this, year, month, day); + }, + + /** Create a new date for today. + @memberof BaseCalendar + @return {CDate} Today's date. */ + today: function() { + return this.fromJSDate(new Date()); + }, + + /** Retrieve the epoch designator for this date. + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {string} The current epoch. + @throws Error if an invalid year or a different calendar used. */ + epoch: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, + $.calendars.local.invalidYear || $.calendars.regionalOptions[''].invalidYear); + return (date.year() < 0 ? this.local.epochs[0] : this.local.epochs[1]); + }, + + /** Format the year, if not a simple sequential number + @memberof BaseCalendar + @param year {CDate|number} The date to format or the year to format. + @return {string} The formatted year. + @throws Error if an invalid year or a different calendar used. */ + formatYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, + $.calendars.local.invalidYear || $.calendars.regionalOptions[''].invalidYear); + return (date.year() < 0 ? '-' : '') + pad(Math.abs(date.year()), 4) + }, + + /** Retrieve the number of months in a year. + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of months. + @throws Error if an invalid year or a different calendar used. */ + monthsInYear: function(year) { + this._validate(year, this.minMonth, this.minDay, + $.calendars.local.invalidYear || $.calendars.regionalOptions[''].invalidYear); + return 12; + }, + + /** Calculate the month's ordinal position within the year - + for those calendars that don't start at month 1! + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param month {number} The month to examine. + @return {number} The ordinal position, starting from minMonth. + @throws Error if an invalid year/month or a different calendar used. */ + monthOfYear: function(year, month) { + var date = this._validate(year, month, this.minDay, + $.calendars.local.invalidMonth || $.calendars.regionalOptions[''].invalidMonth); + return (date.month() + this.monthsInYear(date) - this.firstMonth) % + this.monthsInYear(date) + this.minMonth; + }, + + /** Calculate actual month from ordinal position, starting from minMonth. + @memberof BaseCalendar + @param year {number} The year to examine. + @param ord {number} The month's ordinal position. + @return {number} The month's number. + @throws Error if an invalid year/month. */ + fromMonthOfYear: function(year, ord) { + var m = (ord + this.firstMonth - 2 * this.minMonth) % + this.monthsInYear(year) + this.minMonth; + this._validate(year, m, this.minDay, + $.calendars.local.invalidMonth || $.calendars.regionalOptions[''].invalidMonth); + return m; + }, + + /** Retrieve the number of days in a year. + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {number} The number of days. + @throws Error if an invalid year or a different calendar used. */ + daysInYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, + $.calendars.local.invalidYear || $.calendars.regionalOptions[''].invalidYear); + return (this.leapYear(date) ? 366 : 365); + }, + + /** Retrieve the day of the year for a date. + @memberof BaseCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The day of the year. + @throws Error if an invalid date or a different calendar used. */ + dayOfYear: function(year, month, day) { + var date = this._validate(year, month, day, + $.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate); + return date.toJD() - this.newDate(date.year(), + this.fromMonthOfYear(date.year(), this.minMonth), this.minDay).toJD() + 1; + }, + + /** Retrieve the number of days in a week. + @memberof BaseCalendar + @return {number} The number of days. */ + daysInWeek: function() { + return 7; + }, + + /** Retrieve the day of the week for a date. + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The day of the week: 0 to number of days - 1. + @throws Error if an invalid date or a different calendar used. */ + dayOfWeek: function(year, month, day) { + var date = this._validate(year, month, day, + $.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate); + return (Math.floor(this.toJD(date)) + 2) % this.daysInWeek(); + }, + + /** Retrieve additional information about a date. + @memberof BaseCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {object} Additional information - contents depends on calendar. + @throws Error if an invalid date or a different calendar used. */ + extraInfo: function(year, month, day) { + this._validate(year, month, day, + $.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate); + return {}; + }, + + /** Add period(s) to a date. + Cater for no year zero. + @memberof BaseCalendar + @param date {CDate} The starting date. + @param offset {number} The number of periods to adjust by. + @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day. + @return {CDate} The updated date. + @throws Error if a different calendar used. */ + add: function(date, offset, period) { + this._validate(date, this.minMonth, this.minDay, + $.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate); + return this._correctAdd(date, this._add(date, offset, period), offset, period); + }, + + /** Add period(s) to a date. + @memberof BaseCalendar + @private + @param date {CDate} The starting date. + @param offset {number} The number of periods to adjust by. + @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day. + @return {CDate} The updated date. */ + _add: function(date, offset, period) { + this._validateLevel++; + if (period === 'd' || period === 'w') { + var jd = date.toJD() + offset * (period === 'w' ? this.daysInWeek() : 1); + var d = date.calendar().fromJD(jd); + this._validateLevel--; + return [d.year(), d.month(), d.day()]; + } + try { + var y = date.year() + (period === 'y' ? offset : 0); + var m = date.monthOfYear() + (period === 'm' ? offset : 0); + var d = date.day();// + (period === 'd' ? offset : 0) + + //(period === 'w' ? offset * this.daysInWeek() : 0); + var resyncYearMonth = function(calendar) { + while (m < calendar.minMonth) { + y--; + m += calendar.monthsInYear(y); + } + var yearMonths = calendar.monthsInYear(y); + while (m > yearMonths - 1 + calendar.minMonth) { + y++; + m -= yearMonths; + yearMonths = calendar.monthsInYear(y); + } + }; + if (period === 'y') { + if (date.month() !== this.fromMonthOfYear(y, m)) { // Hebrew + m = this.newDate(y, date.month(), this.minDay).monthOfYear(); + } + m = Math.min(m, this.monthsInYear(y)); + d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m))); + } + else if (period === 'm') { + resyncYearMonth(this); + d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m))); + } + var ymd = [y, this.fromMonthOfYear(y, m), d]; + this._validateLevel--; + return ymd; + } + catch (e) { + this._validateLevel--; + throw e; + } + }, + + /** Correct a candidate date after adding period(s) to a date. + Handle no year zero if necessary. + @memberof BaseCalendar + @private + @param date {CDate} The starting date. + @param ymd {number[]} The added date. + @param offset {number} The number of periods to adjust by. + @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day. + @return {CDate} The updated date. */ + _correctAdd: function(date, ymd, offset, period) { + if (!this.hasYearZero && (period === 'y' || period === 'm')) { + if (ymd[0] === 0 || // In year zero + (date.year() > 0) !== (ymd[0] > 0)) { // Crossed year zero + var adj = {y: [1, 1, 'y'], m: [1, this.monthsInYear(-1), 'm'], + w: [this.daysInWeek(), this.daysInYear(-1), 'd'], + d: [1, this.daysInYear(-1), 'd']}[period]; + var dir = (offset < 0 ? -1 : +1); + ymd = this._add(date, offset * adj[0] + dir * adj[1], adj[2]); + } + } + return date.date(ymd[0], ymd[1], ymd[2]); + }, + + /** Set a portion of the date. + @memberof BaseCalendar + @param date {CDate} The starting date. + @param value {number} The new value for the period. + @param period {string} One of 'y' for year, 'm' for month, 'd' for day. + @return {CDate} The updated date. + @throws Error if an invalid date or a different calendar used. */ + set: function(date, value, period) { + this._validate(date, this.minMonth, this.minDay, + $.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate); + var y = (period === 'y' ? value : date.year()); + var m = (period === 'm' ? value : date.month()); + var d = (period === 'd' ? value : date.day()); + if (period === 'y' || period === 'm') { + d = Math.min(d, this.daysInMonth(y, m)); + } + return date.date(y, m, d); + }, + + /** Determine whether a date is valid for this calendar. + @memberof BaseCalendar + @param year {number} The year to examine. + @param month {number} The month to examine. + @param day {number} The day to examine. + @return {boolean} true if a valid date, false if not. */ + isValid: function(year, month, day) { + this._validateLevel++; + var valid = (this.hasYearZero || year !== 0); + if (valid) { + var date = this.newDate(year, month, this.minDay); + valid = (month >= this.minMonth && month - this.minMonth < this.monthsInYear(date)) && + (day >= this.minDay && day - this.minDay < this.daysInMonth(date)); + } + this._validateLevel--; + return valid; + }, + + /** Convert the date to a standard (Gregorian) JavaScript Date. + @memberof BaseCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {Date} The equivalent JavaScript date. + @throws Error if an invalid date or a different calendar used. */ + toJSDate: function(year, month, day) { + var date = this._validate(year, month, day, + $.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate); + return $.calendars.instance().fromJD(this.toJD(date)).toJSDate(); + }, + + /** Convert the date from a standard (Gregorian) JavaScript Date. + @memberof BaseCalendar + @param jsd {Date} The JavaScript date. + @return {CDate} The equivalent calendar date. */ + fromJSDate: function(jsd) { + return this.fromJD($.calendars.instance().fromJSDate(jsd).toJD()); + }, + + /** Check that a candidate date is from the same calendar and is valid. + @memberof BaseCalendar + @private + @param year {CDate|number} The date to validate or the year to validate. + @param [month] {number} The month to validate. + @param [day] {number} The day to validate. + @param error {string} Rrror message if invalid. + @throws Error if different calendars used or invalid date. */ + _validate: function(year, month, day, error) { + if (year.year) { + if (this._validateLevel === 0 && this.name !== year.calendar().name) { + throw ($.calendars.local.differentCalendars || $.calendars.regionalOptions[''].differentCalendars). + replace(/\{0\}/, this.local.name).replace(/\{1\}/, year.calendar().local.name); + } + return year; + } + try { + this._validateLevel++; + if (this._validateLevel === 1 && !this.isValid(year, month, day)) { + throw error.replace(/\{0\}/, this.local.name); + } + var date = this.newDate(year, month, day); + this._validateLevel--; + return date; + } + catch (e) { + this._validateLevel--; + throw e; + } + } + }); + + /** Implementation of the Proleptic Gregorian Calendar. + See http://en.wikipedia.org/wiki/Gregorian_calendar + and http://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar. + @class GregorianCalendar + @augments BaseCalendar + @param [language=''] {string} The language code (default English) for localisation. */ + function GregorianCalendar(language) { + this.local = this.regionalOptions[language] || this.regionalOptions['']; + } + + GregorianCalendar.prototype = new BaseCalendar; + + $.extend(GregorianCalendar.prototype, { + /** The calendar name. + @memberof GregorianCalendar */ + name: 'Gregorian', + /** Julian date of start of Gregorian epoch: 1 January 0001 CE. + @memberof GregorianCalendar */ + jdEpoch: 1721425.5, + /** Days per month in a common year. + @memberof GregorianCalendar */ + daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + /** true if has a year zero, false if not. + @memberof GregorianCalendar */ + hasYearZero: false, + /** The minimum month number. + @memberof GregorianCalendar */ + minMonth: 1, + /** The first month in the year. + @memberof GregorianCalendar */ + firstMonth: 1, + /** The minimum day number. + @memberof GregorianCalendar */ + minDay: 1, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof GregorianCalendar + @property name {string} The calendar name. + @property epochs {string[]} The epoch names. + @property monthNames {string[]} The long names of the months of the year. + @property monthNamesShort {string[]} The short names of the months of the year. + @property dayNames {string[]} The long names of the days of the week. + @property dayNamesShort {string[]} The short names of the days of the week. + @property dayNamesMin {string[]} The minimal names of the days of the week. + @property dateFormat {string} The date format for this calendar. + See the options on formatDate for details. + @property firstDay {number} The number of the first day of the week, starting at 0. + @property isRTL {number} true if this localisation reads right-to-left. */ + regionalOptions: { // Localisations + '': { + name: 'Gregorian', + epochs: ['BCE', 'CE'], + monthNames: ['January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], + digits: null, + dateFormat: 'mm/dd/yyyy', + firstDay: 0, + isRTL: false + } + }, + + /** Determine whether this date is in a leap year. + @memberof GregorianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @return {boolean} true if this is a leap year, false if not. + @throws Error if an invalid year or a different calendar used. */ + leapYear: function(year) { + var date = this._validate(year, this.minMonth, this.minDay, + $.calendars.local.invalidYear || $.calendars.regionalOptions[''].invalidYear); + var year = date.year() + (date.year() < 0 ? 1 : 0); // No year zero + return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); + }, + + /** Determine the week of the year for a date - ISO 8601. + @memberof GregorianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {number} The week of the year, starting from 1. + @throws Error if an invalid date or a different calendar used. */ + weekOfYear: function(year, month, day) { + // Find Thursday of this week starting on Monday + var checkDate = this.newDate(year, month, day); + checkDate.add(4 - (checkDate.dayOfWeek() || 7), 'd'); + return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1; + }, + + /** Retrieve the number of days in a month. + @memberof GregorianCalendar + @param year {CDate|number} The date to examine or the year of the month. + @param [month] {number} The month. + @return {number} The number of days in this month. + @throws Error if an invalid month/year or a different calendar used. */ + daysInMonth: function(year, month) { + var date = this._validate(year, month, this.minDay, + $.calendars.local.invalidMonth || $.calendars.regionalOptions[''].invalidMonth); + return this.daysPerMonth[date.month() - 1] + + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0); + }, + + /** Determine whether this date is a week day. + @memberof GregorianCalendar + @param year {CDate|number} The date to examine or the year to examine. + @param [month] {number} The month to examine. + @param [day] {number} The day to examine. + @return {boolean} true if a week day, false if not. + @throws Error if an invalid date or a different calendar used. */ + weekDay: function(year, month, day) { + return (this.dayOfWeek(year, month, day) || 7) < 6; + }, + + /** Retrieve the Julian date equivalent for this date, + i.e. days since January 1, 4713 BCE Greenwich noon. + @memberof GregorianCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {number} The equivalent Julian date. + @throws Error if an invalid date or a different calendar used. */ + toJD: function(year, month, day) { + var date = this._validate(year, month, day, + $.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate); + year = date.year(); + month = date.month(); + day = date.day(); + if (year < 0) { year++; } // No year zero + // Jean Meeus algorithm, "Astronomical Algorithms", 1991 + if (month < 3) { + month += 12; + year--; + } + var a = Math.floor(year / 100); + var b = 2 - a + Math.floor(a / 4); + return Math.floor(365.25 * (year + 4716)) + + Math.floor(30.6001 * (month + 1)) + day + b - 1524.5; + }, + + /** Create a new date from a Julian date. + @memberof GregorianCalendar + @param jd {number} The Julian date to convert. + @return {CDate} The equivalent date. */ + fromJD: function(jd) { + // Jean Meeus algorithm, "Astronomical Algorithms", 1991 + var z = Math.floor(jd + 0.5); + var a = Math.floor((z - 1867216.25) / 36524.25); + a = z + 1 + a - Math.floor(a / 4); + var b = a + 1524; + var c = Math.floor((b - 122.1) / 365.25); + var d = Math.floor(365.25 * c); + var e = Math.floor((b - d) / 30.6001); + var day = b - d - Math.floor(e * 30.6001); + var month = e - (e > 13.5 ? 13 : 1); + var year = c - (month > 2.5 ? 4716 : 4715); + if (year <= 0) { year--; } // No year zero + return this.newDate(year, month, day); + }, + + /** Convert this date to a standard (Gregorian) JavaScript Date. + @memberof GregorianCalendar + @param year {CDate|number} The date to convert or the year to convert. + @param [month] {number} The month to convert. + @param [day] {number} The day to convert. + @return {Date} The equivalent JavaScript date. + @throws Error if an invalid date or a different calendar used. */ + toJSDate: function(year, month, day) { + var date = this._validate(year, month, day, + $.calendars.local.invalidDate || $.calendars.regionalOptions[''].invalidDate); + var jsd = new Date(date.year(), date.month() - 1, date.day()); + jsd.setHours(0); + jsd.setMinutes(0); + jsd.setSeconds(0); + jsd.setMilliseconds(0); + // Hours may be non-zero on daylight saving cut-over: + // > 12 when midnight changeover, but then cannot generate + // midnight datetime, so jump to 1AM, otherwise reset. + jsd.setHours(jsd.getHours() > 12 ? jsd.getHours() + 2 : 0); + return jsd; + }, + + /** Create a new date from a standard (Gregorian) JavaScript Date. + @memberof GregorianCalendar + @param jsd {Date} The JavaScript date to convert. + @return {CDate} The equivalent date. */ + fromJSDate: function(jsd) { + return this.newDate(jsd.getFullYear(), jsd.getMonth() + 1, jsd.getDate()); + } + }); + + // Singleton manager + $.calendars = new Calendars(); + + // Date template + $.calendars.cdate = CDate; + + // Base calendar template + $.calendars.baseCalendar = BaseCalendar; + + // Gregorian calendar implementation + $.calendars.calendars.gregorian = GregorianCalendar; + +})(jQuery); +/* http://keith-wood.name/calendars.html + Calendars extras for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +(function($) { // Hide scope, no $ conflict + + $.extend($.calendars.regionalOptions[''], { + invalidArguments: 'Invalid arguments', + invalidFormat: 'Cannot format a date from another calendar', + missingNumberAt: 'Missing number at position {0}', + unknownNameAt: 'Unknown name at position {0}', + unexpectedLiteralAt: 'Unexpected literal at position {0}', + unexpectedText: 'Additional text found at end' + }); + $.calendars.local = $.calendars.regionalOptions['']; + + $.extend($.calendars.cdate.prototype, { + + /** Format this date. + Found in the jquery.calendars.plus.js module. + @memberof CDate + @param [format] {string} The date format to use (see formatDate). + @param [settings] {object} Options for the formatDate function. + @return {string} The formatted date. */ + formatDate: function(format, settings) { + if (typeof format !== 'string') { + settings = format; + format = ''; + } + return this._calendar.formatDate(format || '', this, settings); + } + }); + + $.extend($.calendars.baseCalendar.prototype, { + + UNIX_EPOCH: $.calendars.instance().newDate(1970, 1, 1).toJD(), + SECS_PER_DAY: 24 * 60 * 60, + TICKS_EPOCH: $.calendars.instance().jdEpoch, // 1 January 0001 CE + TICKS_PER_DAY: 24 * 60 * 60 * 10000000, + + /** Date form for ATOM (RFC 3339/ISO 8601). + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + ATOM: 'yyyy-mm-dd', + /** Date form for cookies. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + COOKIE: 'D, dd M yyyy', + /** Date form for full date. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + FULL: 'DD, MM d, yyyy', + /** Date form for ISO 8601. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + ISO_8601: 'yyyy-mm-dd', + /** Date form for Julian date. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + JULIAN: 'J', + /** Date form for RFC 822. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RFC_822: 'D, d M yy', + /** Date form for RFC 850. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RFC_850: 'DD, dd-M-yy', + /** Date form for RFC 1036. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RFC_1036: 'D, d M yy', + /** Date form for RFC 1123. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RFC_1123: 'D, d M yyyy', + /** Date form for RFC 2822. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RFC_2822: 'D, d M yyyy', + /** Date form for RSS (RFC 822). + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + RSS: 'D, d M yy', + /** Date form for Windows ticks. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + TICKS: '!', + /** Date form for Unix timestamp. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + TIMESTAMP: '@', + /** Date form for W3c (ISO 8601). + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar */ + W3C: 'yyyy-mm-dd', + + /** Format a date object into a string value. + The format can be combinations of the following: +
    +
  • d - day of month (no leading zero)
  • +
  • dd - day of month (two digit)
  • +
  • o - day of year (no leading zeros)
  • +
  • oo - day of year (three digit)
  • +
  • D - day name short
  • +
  • DD - day name long
  • +
  • w - week of year (no leading zero)
  • +
  • ww - week of year (two digit)
  • +
  • m - month of year (no leading zero)
  • +
  • mm - month of year (two digit)
  • +
  • M - month name short
  • +
  • MM - month name long
  • +
  • yy - year (two digit)
  • +
  • yyyy - year (four digit)
  • +
  • YYYY - formatted year
  • +
  • J - Julian date (days since January 1, 4713 BCE Greenwich noon)
  • +
  • @ - Unix timestamp (s since 01/01/1970)
  • +
  • ! - Windows ticks (100ns since 01/01/0001)
  • +
  • '...' - literal text
  • +
  • '' - single quote
  • +
+ Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar + @param [format] {string} The desired format of the date (defaults to calendar format). + @param date {CDate} The date value to format. + @param [settings] {object} Addition options, whose attributes include: + @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday. + @property [dayNames] {string[]} Names of the days from Sunday. + @property [monthNamesShort] {string[]} Abbreviated names of the months. + @property [monthNames] {string[]} Names of the months. + @property [calculateWeek] {CalendarsPickerCalculateWeek} Function that determines week of the year. + @property [localNumbers=false] {boolean} true to localise numbers (if available), + false to use normal Arabic numerals. + @return {string} The date in the above format. + @throws Errors if the date is from a different calendar. */ + formatDate: function(format, date, settings) { + if (typeof format !== 'string') { + settings = date; + date = format; + format = ''; + } + if (!date) { + return ''; + } + if (date.calendar() !== this) { + throw $.calendars.local.invalidFormat || $.calendars.regionalOptions[''].invalidFormat; + } + format = format || this.local.dateFormat; + settings = settings || {}; + var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort; + var dayNames = settings.dayNames || this.local.dayNames; + var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort; + var monthNames = settings.monthNames || this.local.monthNames; + var calculateWeek = settings.calculateWeek || this.local.calculateWeek; + // Check whether a format character is doubled + var doubled = function(match, step) { + var matches = 1; + while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) { + matches++; + } + iFormat += matches - 1; + return Math.floor(matches / (step || 1)) > 1; + }; + // Format a number, with leading zeroes if necessary + var formatNumber = function(match, value, len, step) { + var num = '' + value; + if (doubled(match, step)) { + while (num.length < len) { + num = '0' + num; + } + } + return num; + }; + // Format a name, short or long as requested + var formatName = function(match, value, shortNames, longNames) { + return (doubled(match) ? longNames[value] : shortNames[value]); + }; + // Localise numbers if requested and available + var digits = this.local.digits; + var localiseNumbers = function(value) { + return (settings.localNumbers && digits ? digits(value) : value); + }; + var output = ''; + var literal = false; + for (var iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) { + if (format.charAt(iFormat) === "'" && !doubled("'")) { + literal = false; + } + else { + output += format.charAt(iFormat); + } + } + else { + switch (format.charAt(iFormat)) { + case 'd': output += localiseNumbers(formatNumber('d', date.day(), 2)); break; + case 'D': output += formatName('D', date.dayOfWeek(), + dayNamesShort, dayNames); break; + case 'o': output += formatNumber('o', date.dayOfYear(), 3); break; + case 'w': output += formatNumber('w', date.weekOfYear(), 2); break; + case 'm': output += localiseNumbers(formatNumber('m', date.month(), 2)); break; + case 'M': output += formatName('M', date.month() - this.minMonth, + monthNamesShort, monthNames); break; + case 'y': + output += (doubled('y', 2) ? date.year() : + (date.year() % 100 < 10 ? '0' : '') + date.year() % 100); + break; + case 'Y': + doubled('Y', 2); + output += date.formatYear(); + break; + case 'J': output += date.toJD(); break; + case '@': output += (date.toJD() - this.UNIX_EPOCH) * this.SECS_PER_DAY; break; + case '!': output += (date.toJD() - this.TICKS_EPOCH) * this.TICKS_PER_DAY; break; + case "'": + if (doubled("'")) { + output += "'"; + } + else { + literal = true; + } + break; + default: + output += format.charAt(iFormat); + } + } + } + return output; + }, + + /** Parse a string value into a date object. + See formatDate for the possible formats, plus: +
    +
  • * - ignore rest of string
  • +
+ Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar + @param format {string} The expected format of the date ('' for default calendar format). + @param value {string} The date in the above format. + @param [settings] {object} Additional options whose attributes include: + @property [shortYearCutoff] {number} The cutoff year for determining the century. + @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday. + @property [dayNames] {string[]} Names of the days from Sunday. + @property [monthNamesShort] {string[]} Abbreviated names of the months. + @property [monthNames] {string[]} Names of the months. + @return {CDate} The extracted date value or null if value is blank. + @throws Errors if the format and/or value are missing, + if the value doesn't match the format, or if the date is invalid. */ + parseDate: function(format, value, settings) { + if (value == null) { + throw $.calendars.local.invalidArguments || $.calendars.regionalOptions[''].invalidArguments; + } + value = (typeof value === 'object' ? value.toString() : value + ''); + if (value === '') { + return null; + } + format = format || this.local.dateFormat; + settings = settings || {}; + var shortYearCutoff = settings.shortYearCutoff || this.shortYearCutoff; + shortYearCutoff = (typeof shortYearCutoff !== 'string' ? shortYearCutoff : + this.today().year() % 100 + parseInt(shortYearCutoff, 10)); + var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort; + var dayNames = settings.dayNames || this.local.dayNames; + var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort; + var monthNames = settings.monthNames || this.local.monthNames; + var jd = -1; + var year = -1; + var month = -1; + var day = -1; + var doy = -1; + var shortYear = false; + var literal = false; + // Check whether a format character is doubled + var doubled = function(match, step) { + var matches = 1; + while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) { + matches++; + } + iFormat += matches - 1; + return Math.floor(matches / (step || 1)) > 1; + }; + // Extract a number from the string value + var getNumber = function(match, step) { + var isDoubled = doubled(match, step); + var size = [2, 3, isDoubled ? 4 : 2, isDoubled ? 4 : 2, 10, 11, 20]['oyYJ@!'.indexOf(match) + 1]; + var digits = new RegExp('^-?\\d{1,' + size + '}'); + var num = value.substring(iValue).match(digits); + if (!num) { + throw ($.calendars.local.missingNumberAt || $.calendars.regionalOptions[''].missingNumberAt). + replace(/\{0\}/, iValue); + } + iValue += num[0].length; + return parseInt(num[0], 10); + }; + // Extract a name from the string value and convert to an index + var calendar = this; + var getName = function(match, shortNames, longNames, step) { + var names = (doubled(match, step) ? longNames : shortNames); + for (var i = 0; i < names.length; i++) { + if (value.substr(iValue, names[i].length).toLowerCase() === names[i].toLowerCase()) { + iValue += names[i].length; + return i + calendar.minMonth; + } + } + throw ($.calendars.local.unknownNameAt || $.calendars.regionalOptions[''].unknownNameAt). + replace(/\{0\}/, iValue); + }; + // Confirm that a literal character matches the string value + var checkLiteral = function() { + if (value.charAt(iValue) !== format.charAt(iFormat)) { + throw ($.calendars.local.unexpectedLiteralAt || + $.calendars.regionalOptions[''].unexpectedLiteralAt).replace(/\{0\}/, iValue); + } + iValue++; + }; + var iValue = 0; + for (var iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) { + if (format.charAt(iFormat) === "'" && !doubled("'")) { + literal = false; + } + else { + checkLiteral(); + } + } + else { + switch (format.charAt(iFormat)) { + case 'd': day = getNumber('d'); break; + case 'D': getName('D', dayNamesShort, dayNames); break; + case 'o': doy = getNumber('o'); break; + case 'w': getNumber('w'); break; + case 'm': month = getNumber('m'); break; + case 'M': month = getName('M', monthNamesShort, monthNames); break; + case 'y': + var iSave = iFormat; + shortYear = !doubled('y', 2); + iFormat = iSave; + year = getNumber('y', 2); + break; + case 'Y': year = getNumber('Y', 2); break; + case 'J': + jd = getNumber('J') + 0.5; + if (value.charAt(iValue) === '.') { + iValue++; + getNumber('J'); + } + break; + case '@': jd = getNumber('@') / this.SECS_PER_DAY + this.UNIX_EPOCH; break; + case '!': jd = getNumber('!') / this.TICKS_PER_DAY + this.TICKS_EPOCH; break; + case '*': iValue = value.length; break; + case "'": + if (doubled("'")) { + checkLiteral(); + } + else { + literal = true; + } + break; + default: checkLiteral(); + } + } + } + if (iValue < value.length) { + throw $.calendars.local.unexpectedText || $.calendars.regionalOptions[''].unexpectedText; + } + if (year === -1) { + year = this.today().year(); + } + else if (year < 100 && shortYear) { + year += (shortYearCutoff === -1 ? 1900 : this.today().year() - + this.today().year() % 100 - (year <= shortYearCutoff ? 0 : 100)); + } + if (doy > -1) { + month = 1; + day = doy; + for (var dim = this.daysInMonth(year, month); day > dim; dim = this.daysInMonth(year, month)) { + month++; + day -= dim; + } + } + return (jd > -1 ? this.fromJD(jd) : this.newDate(year, month, day)); + }, + + /** A date may be specified as an exact value or a relative one. + Found in the jquery.calendars.plus.js module. + @memberof BaseCalendar + @param dateSpec {CDate|number|string} The date as an object or string in the given format or + an offset - numeric days from today, or string amounts and periods, e.g. '+1m +2w'. + @param defaultDate {CDate} The date to use if no other supplied, may be null. + @param currentDate {CDate} The current date as a possible basis for relative dates, + if null today is used (optional) + @param [dateFormat] {string} The expected date format - see formatDate. + @param [settings] {object} Additional options whose attributes include: + @property [shortYearCutoff] {number} The cutoff year for determining the century. + @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday. + @property [dayNames] {string[]} Names of the days from Sunday. + @property [monthNamesShort] {string[]} Abbreviated names of the months. + @property [monthNames] {string[]} Names of the months. + @return {CDate} The decoded date. */ + determineDate: function(dateSpec, defaultDate, currentDate, dateFormat, settings) { + if (currentDate && typeof currentDate !== 'object') { + settings = dateFormat; + dateFormat = currentDate; + currentDate = null; + } + if (typeof dateFormat !== 'string') { + settings = dateFormat; + dateFormat = ''; + } + var calendar = this; + var offsetString = function(offset) { + try { + return calendar.parseDate(dateFormat, offset, settings); + } + catch (e) { + // Ignore + } + offset = offset.toLowerCase(); + var date = (offset.match(/^c/) && currentDate ? + currentDate.newDate() : null) || calendar.today(); + var pattern = /([+-]?[0-9]+)\s*(d|w|m|y)?/g; + var matches = pattern.exec(offset); + while (matches) { + date.add(parseInt(matches[1], 10), matches[2] || 'd'); + matches = pattern.exec(offset); + } + return date; + }; + defaultDate = (defaultDate ? defaultDate.newDate() : null); + dateSpec = (dateSpec == null ? defaultDate : + (typeof dateSpec === 'string' ? offsetString(dateSpec) : (typeof dateSpec === 'number' ? + (isNaN(dateSpec) || dateSpec === Infinity || dateSpec === -Infinity ? defaultDate : + calendar.today().add(dateSpec, 'd')) : calendar.newDate(dateSpec)))); + return dateSpec; + } + }); + +})(jQuery); +/* http://keith-wood.name/calendars.html + Calendars date picker for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ + +(function($) { // Hide scope, no $ conflict + + var pluginName = 'calendarsPicker'; + + + /** Create the calendars datepicker plugin. +

Sets an input field to popup a calendar for date entry, + or a div or span to show an inline calendar.

+

Expects HTML like:

+
<input type="text"> or <div></div>
+

Provide inline configuration like:

+
<input type="text" data-calendarsPicker="name: 'value'"/>
+ @class CalendarsPicker + @augments JQPlugin + @example $(selector).calendarsPicker() + $(selector).calendarsPicker({minDate: 0, maxDate: '+1m +1w'}) */ + $.JQPlugin.createPlugin({ + + /** The name of the plugin. + @memberof CalendarsPicker */ + name: pluginName, + + /** Default template for generating a datepicker. + Insert anywhere: +
    +
  • '{l10n:name}' to insert localised value for name,
  • +
  • '{link:name}' to insert a link trigger for command name,
  • +
  • '{button:name}' to insert a button trigger for command name,
  • +
  • '{popup:start}...{popup:end}' to mark a section for inclusion in a popup datepicker only,
  • +
  • '{inline:start}...{inline:end}' to mark a section for inclusion in an inline datepicker only.
  • +
+ @memberof CalendarsPicker + @property picker {string} Overall structure: '{months}' to insert calendar months. + @property monthRow {string} One row of months: '{months}' to insert calendar months. + @property month {string} A single month: '{monthHeader:dateFormat}' to insert the month header - + dateFormat is optional and defaults to 'MM yyyy', + '{weekHeader}' to insert a week header, '{weeks}' to insert the month's weeks. + @property weekHeader {string} A week header: '{days}' to insert individual day names. + @property dayHeader {string} Individual day header: '{day}' to insert day name. + @property week {string} One week of the month: '{days}' to insert the week's days, + '{weekOfYear}' to insert week of year. + @property day {string} An individual day: '{day}' to insert day value. + @property monthSelector {string} jQuery selector, relative to picker, for a single month. + @property daySelector {string} jQuery selector, relative to picker, for individual days. + @property rtlClass {string} Class for right-to-left (RTL) languages. + @property multiClass {string} Class for multi-month datepickers. + @property defaultClass {string} Class for selectable dates. + @property selectedClass {string} Class for currently selected dates. + @property highlightedClass {string} Class for highlighted dates. + @property todayClass {string} Class for today. + @property otherMonthClass {string} Class for days from other months. + @property weekendClass {string} Class for days on weekends. + @property commandClass {string} Class prefix for commands. + @property commandButtonClass {string} Extra class(es) for commands that are buttons. + @property commandLinkClass {string} Extra class(es) for commands that are links. + @property disabledClass {string} Class for disabled commands. */ + defaultRenderer: { + picker: '
' + + '
{link:prev}{link:today}{link:next}
{months}' + + '{popup:start}
{link:clear}{link:close}
{popup:end}' + + '
', + monthRow: '
{months}
', + month: '
{monthHeader}
' + + '{weekHeader}{weeks}
', + weekHeader: '{days}', + dayHeader: '{day}', + week: '{days}', + day: '{day}', + monthSelector: '.calendars-month', + daySelector: 'td', + rtlClass: 'calendars-rtl', + multiClass: 'calendars-multi', + defaultClass: '', + selectedClass: 'calendars-selected', + highlightedClass: 'calendars-highlight', + todayClass: 'calendars-today', + otherMonthClass: 'calendars-other-month', + weekendClass: 'calendars-weekend', + commandClass: 'calendars-cmd', + commandButtonClass: '', + commandLinkClass: '', + disabledClass: 'calendars-disabled' + }, + + /** Command actions that may be added to a layout by name. +
    +
  • prev - Show the previous month (based on monthsToStep option) - PageUp
  • +
  • prevJump - Show the previous year (based on monthsToJump option) - Ctrl+PageUp
  • +
  • next - Show the next month (based on monthsToStep option) - PageDown
  • +
  • nextJump - Show the next year (based on monthsToJump option) - Ctrl+PageDown
  • +
  • current - Show the currently selected month or today's if none selected - Ctrl+Home
  • +
  • today - Show today's month - Ctrl+Home
  • +
  • clear - Erase the date and close the datepicker popup - Ctrl+End
  • +
  • close - Close the datepicker popup - Esc
  • +
  • prevWeek - Move the cursor to the previous week - Ctrl+Up
  • +
  • prevDay - Move the cursor to the previous day - Ctrl+Left
  • +
  • nextDay - Move the cursor to the next day - Ctrl+Right
  • +
  • nextWeek - Move the cursor to the next week - Ctrl+Down
  • +
+ The command name is the key name and is used to add the command to a layout + with '{button:name}' or '{link:name}'. Each has the following attributes. + @memberof CalendarsPicker + @property text {string} The field in the regional settings for the displayed text. + @property status {string} The field in the regional settings for the status text. + @property keystroke {object} The keystroke to trigger the action, with attributes: + keyCode {number} the code for the keystroke, + ctrlKey {boolean} true if Ctrl is required, + altKey {boolean} true if Alt is required, + shiftKey {boolean} true if Shift is required. + @property enabled {CalendarsPickerCommandEnabled} The function that indicates the command is enabled. + @property date {CalendarsPickerCommandDate} The function to get the date associated with this action. + @property action {CalendarsPickerCommandAction} The function that implements the action. */ + commands: { + prev: {text: 'prevText', status: 'prevStatus', // Previous month + keystroke: {keyCode: 33}, // Page up + enabled: function(inst) { + var minDate = inst.curMinDate(); + return (!minDate || inst.drawDate.newDate(). + add(1 - inst.options.monthsToStep - inst.options.monthsOffset, 'm'). + day(inst.options.calendar.minDay).add(-1, 'd').compareTo(minDate) !== -1); }, + date: function(inst) { + return inst.drawDate.newDate(). + add(-inst.options.monthsToStep - inst.options.monthsOffset, 'm'). + day(inst.options.calendar.minDay); }, + action: function(inst) { + plugin.changeMonth(this, -inst.options.monthsToStep); } + }, + prevJump: {text: 'prevJumpText', status: 'prevJumpStatus', // Previous year + keystroke: {keyCode: 33, ctrlKey: true}, // Ctrl + Page up + enabled: function(inst) { + var minDate = inst.curMinDate(); + return (!minDate || inst.drawDate.newDate(). + add(1 - inst.options.monthsToJump - inst.options.monthsOffset, 'm'). + day(inst.options.calendar.minDay).add(-1, 'd').compareTo(minDate) !== -1); }, + date: function(inst) { + return inst.drawDate.newDate(). + add(-inst.options.monthsToJump - inst.options.monthsOffset, 'm'). + day(inst.options.calendar.minDay); }, + action: function(inst) { + plugin.changeMonth(this, -inst.options.monthsToJump); } + }, + next: {text: 'nextText', status: 'nextStatus', // Next month + keystroke: {keyCode: 34}, // Page down + enabled: function(inst) { + var maxDate = inst.get('maxDate'); + return (!maxDate || inst.drawDate.newDate(). + add(inst.options.monthsToStep - inst.options.monthsOffset, 'm'). + day(inst.options.calendar.minDay).compareTo(maxDate) !== +1); }, + date: function(inst) { + return inst.drawDate.newDate(). + add(inst.options.monthsToStep - inst.options.monthsOffset, 'm'). + day(inst.options.calendar.minDay); }, + action: function(inst) { + plugin.changeMonth(this, inst.options.monthsToStep); } + }, + nextJump: {text: 'nextJumpText', status: 'nextJumpStatus', // Next year + keystroke: {keyCode: 34, ctrlKey: true}, // Ctrl + Page down + enabled: function(inst) { + var maxDate = inst.get('maxDate'); + return (!maxDate || inst.drawDate.newDate(). + add(inst.options.monthsToJump - inst.options.monthsOffset, 'm'). + day(inst.options.calendar.minDay).compareTo(maxDate) !== +1); }, + date: function(inst) { + return inst.drawDate.newDate(). + add(inst.options.monthsToJump - inst.options.monthsOffset, 'm'). + day(inst.options.calendar.minDay); }, + action: function(inst) { + plugin.changeMonth(this, inst.options.monthsToJump); } + }, + current: {text: 'currentText', status: 'currentStatus', // Current month + keystroke: {keyCode: 36, ctrlKey: true}, // Ctrl + Home + enabled: function(inst) { + var minDate = inst.curMinDate(); + var maxDate = inst.get('maxDate'); + var curDate = inst.selectedDates[0] || inst.options.calendar.today(); + return (!minDate || curDate.compareTo(minDate) !== -1) && + (!maxDate || curDate.compareTo(maxDate) !== +1); }, + date: function(inst) { + return inst.selectedDates[0] || inst.options.calendar.today(); }, + action: function(inst) { + var curDate = inst.selectedDates[0] || inst.options.calendar.today(); + plugin.showMonth(this, curDate.year(), curDate.month()); } + }, + today: {text: 'todayText', status: 'todayStatus', // Today's month + keystroke: {keyCode: 36, ctrlKey: true}, // Ctrl + Home + enabled: function(inst) { + var minDate = inst.curMinDate(); + var maxDate = inst.get('maxDate'); + return (!minDate || inst.options.calendar.today().compareTo(minDate) !== -1) && + (!maxDate || inst.options.calendar.today().compareTo(maxDate) !== +1); }, + date: function(inst) { return inst.options.calendar.today(); }, + action: function(inst) { plugin.showMonth(this); } + }, + clear: {text: 'clearText', status: 'clearStatus', // Clear the datepicker + keystroke: {keyCode: 35, ctrlKey: true}, // Ctrl + End + enabled: function(inst) { return true; }, + date: function(inst) { return null; }, + action: function(inst) { plugin.clear(this); } + }, + close: {text: 'closeText', status: 'closeStatus', // Close the datepicker + keystroke: {keyCode: 27}, // Escape + enabled: function(inst) { return true; }, + date: function(inst) { return null; }, + action: function(inst) { plugin.hide(this); } + }, + prevWeek: {text: 'prevWeekText', status: 'prevWeekStatus', // Previous week + keystroke: {keyCode: 38, ctrlKey: true}, // Ctrl + Up + enabled: function(inst) { + var minDate = inst.curMinDate(); + return (!minDate || inst.drawDate.newDate(). + add(-inst.options.calendar.daysInWeek(), 'd').compareTo(minDate) !== -1); }, + date: function(inst) { return inst.drawDate.newDate(). + add(-inst.options.calendar.daysInWeek(), 'd'); }, + action: function(inst) { plugin.changeDay(this, -inst.options.calendar.daysInWeek()); } + }, + prevDay: {text: 'prevDayText', status: 'prevDayStatus', // Previous day + keystroke: {keyCode: 37, ctrlKey: true}, // Ctrl + Left + enabled: function(inst) { + var minDate = inst.curMinDate(); + return (!minDate || inst.drawDate.newDate().add(-1, 'd'). + compareTo(minDate) !== -1); }, + date: function(inst) { return inst.drawDate.newDate().add(-1, 'd'); }, + action: function(inst) { plugin.changeDay(this, -1); } + }, + nextDay: {text: 'nextDayText', status: 'nextDayStatus', // Next day + keystroke: {keyCode: 39, ctrlKey: true}, // Ctrl + Right + enabled: function(inst) { + var maxDate = inst.get('maxDate'); + return (!maxDate || inst.drawDate.newDate().add(1, 'd'). + compareTo(maxDate) !== +1); }, + date: function(inst) { return inst.drawDate.newDate().add(1, 'd'); }, + action: function(inst) { plugin.changeDay(this, 1); } + }, + nextWeek: {text: 'nextWeekText', status: 'nextWeekStatus', // Next week + keystroke: {keyCode: 40, ctrlKey: true}, // Ctrl + Down + enabled: function(inst) { + var maxDate = inst.get('maxDate'); + return (!maxDate || inst.drawDate.newDate(). + add(inst.options.calendar.daysInWeek(), 'd').compareTo(maxDate) !== +1); }, + date: function(inst) { return inst.drawDate.newDate(). + add(inst.options.calendar.daysInWeek(), 'd'); }, + action: function(inst) { plugin.changeDay(this, inst.options.calendar.daysInWeek()); } + } + }, + + /** Determine whether a command is enabled. + @callback CalendarsPickerCommandEnabled + @param inst {object} The current instance settings. + @return {boolean} true if this command is enabled, false if not. + @example enabled: function(inst) { + return !!inst.curMinDate(); + } */ + + /** Calculate the representative date for a command. + @callback CalendarsPickerCommandDate + @param inst {object} The current instance settings. + @return {CDate} A date appropriate for this command. + @example date: function(inst) { + return inst.curMinDate(); + } */ + + /** Perform the action for a command. + @callback CalendarsPickerCommandAction + @param inst {object} The current instance settings. + @example date: function(inst) { + $.datepick.setDate(inst.elem, inst.curMinDate()); + } */ + + /** Calculate the week of the year for a date. + @callback CalendarsPickerCalculateWeek + @param date {CDate} The date to evaluate. + @return {number} The week of the year. + @example calculateWeek: function(date) { + var startYear = $.calendars.newDate(date.year(), 1, 1); + return Math.floor((date.dayOfYear() - startYear.dayOfYear()) / 7) + 1; + } */ + + /** Provide information about an individual date shown in the calendar. + @callback CalendarsPickerOnDate + @param date {CDate} The date to evaluate. + @return {object} Information about that date, with the properties above. + @property selectable {boolean} true if this date can be selected. + @property dateClass {string} Class(es) to be applied to the date. + @property content {string} The date cell content. + @property tooltip {string} A popup tooltip for the date. + @example onDate: function(date) { + return {selectable: date.day() > 0 && date.day() < 5, + dateClass: date.day() === 4 ? 'last-day' : ''}; + } */ + + /** Update the datepicker display. + @callback CalendarsPickerOnShow + @param picker {jQuery} The datepicker div to be shown. + @param inst {object} The current instance settings. + @example onShow: function(picker, inst) { + picker.append('<button type="button">Hi</button>'). + find('button:last').click(function() { + alert('Hi!'); + }); + } */ + + /** React to navigating through the months/years. + @callback CalendarsPickerOnChangeMonthYear + @param year {number} The new year. + @param month {number} The new month (1 to 12). + @example onChangeMonthYear: function(year, month) { + alert('Now in ' + month + '/' + year); + } */ + + /** Datepicker on select callback. + Triggered when a date is selected. + @callback CalendarsPickerOnSelect + @param dates {CDate[]} The selected date(s). + @example onSelect: function(dates) { + alert('Selected ' + dates); + } */ + + /** Datepicker on close callback. + Triggered when a popup calendar is closed. + @callback CalendarsPickerOnClose + @param dates {CDate[]} The selected date(s). + @example onClose: function(dates) { + alert('Selected ' + dates); + } */ + + /** Default settings for the plugin. + @memberof CalendarsPicker + @property [calendar=$.calendars.instance()] {Calendar} The calendar for this datepicker. + @property [pickerClass=''] {string} CSS class to add to this instance of the datepicker. + @property [showOnFocus=true] {boolean} true for popup on focus, false for not. + @property [showTrigger=null] {string|Element|jQuery} Element to be cloned for a trigger, null for none. + @property [showAnim='show'] {string} Name of jQuery animation for popup, '' for no animation. + @property [showOptions=null] {object} Options for enhanced animations. + @property [showSpeed='normal'] {string} Duration of display/closure. + @property [popupContainer=null] {string|Element|jQuery} The element to which a popup calendar is added, null for body. + @property [alignment='bottom'] {string} Alignment of popup - with nominated corner of input: + 'top' or 'bottom' aligns depending on language direction, + 'topLeft', 'topRight', 'bottomLeft', 'bottomRight'. + @property [fixedWeeks=false] {boolean} true to always show 6 weeks, false to only show as many as are needed. + @property [firstDay=null] {number} First day of the week, 0 = Sunday, 1 = Monday, etc., null for calendar default. + @property [calculateWeek=null] {CalendarsPickerCalculateWeek} Calculate week of the year from a date, null for calendar default. + @property [localNumbers=false] {boolean} true to localise numbers (if available), + false to use normal Arabic numerals. + @property [monthsToShow=1] {number|number[]} How many months to show, cols or [rows, cols]. + @property [monthsOffset=0] {number} How many months to offset the primary month by; + may be a function that takes the date and returns the offset. + @property [monthsToStep=1] {number} How many months to move when prev/next clicked. + @property [monthsToJump=12] {number} How many months to move when large prev/next clicked. + @property [useMouseWheel=true] {boolean} true to use mousewheel if available, false to never use it. + @property [changeMonth=true] {boolean} true to change month/year via drop-down, false for navigation only. + @property [yearRange='c-10:c+10'] {string} Range of years to show in drop-down: 'any' for direct text entry + or 'start:end', where start/end are '+-nn' for relative to today + or 'c+-nn' for relative to the currently selected date + or 'nnnn' for an absolute year. + @property [showOtherMonths=false] {boolean} true to show dates from other months, false to not show them. + @property [selectOtherMonths=false] {boolean} true to allow selection of dates from other months too. + @property [defaultDate=null] {string|number|CDate} Date to show if no other selected. + @property [selectDefaultDate=false] {boolean} true to pre-select the default date if no other is chosen. + @property [minDate=null] {string|number|CDate} The minimum selectable date. + @property [maxDate=null] {string|number|CDate} The maximum selectable date. + @property [dateFormat='mm/dd/yyyy'] {string} Format for dates. + @property [autoSize=false] {boolean} true to size the input field according to the date format. + @property [rangeSelect=false] {boolean} Allows for selecting a date range on one date picker. + @property [rangeSeparator=' - '] {string} Text between two dates in a range. + @property [multiSelect=0] {number} Maximum number of selectable dates, zero for single select. + @property [multiSeparator=','] {string} Text between multiple dates. + @property [onDate=null] {CalendarsPickerOnDate} Callback as a date is added to the datepicker. + @property [onShow=null] {CalendarsPickerOnShow} Callback just before a datepicker is shown. + @property [onChangeMonthYear=null] {CalendarsPickerOnChangeMonthYear} Callback when a new month/year is selected. + @property [onSelect=null] {CalendarsPickerOnSelect} Callback when a date is selected. + @property [onClose=null] {CalendarsPickerOnClose} Callback when a datepicker is closed. + @property [altField=null] {string|Element|jQuery} Alternate field to update in synch with the datepicker. + @property [altFormat=null] {string} Date format for alternate field, defaults to dateFormat. + @property [constrainInput=true] {boolean} true to constrain typed input to dateFormat allowed characters. + @property [commandsAsDateFormat=false] {boolean} true to apply + formatDate to the command texts. + @property [commands=this.commands] {object} Command actions that may be added to a layout by name. */ + defaultOptions: { + calendar: $.calendars.instance(), + pickerClass: '', + showOnFocus: true, + showTrigger: null, + showAnim: 'show', + showOptions: {}, + showSpeed: 'normal', + popupContainer: null, + alignment: 'bottom', + fixedWeeks: false, + firstDay: null, + calculateWeek: null, + localNumbers: false, + monthsToShow: 1, + monthsOffset: 0, + monthsToStep: 1, + monthsToJump: 12, + useMouseWheel: true, + changeMonth: true, + yearRange: 'c-10:c+10', + showOtherMonths: false, + selectOtherMonths: false, + defaultDate: null, + selectDefaultDate: false, + minDate: null, + maxDate: null, + dateFormat: null, + autoSize: false, + rangeSelect: false, + rangeSeparator: ' - ', + multiSelect: 0, + multiSeparator: ',', + onDate: null, + onShow: null, + onChangeMonthYear: null, + onSelect: null, + onClose: null, + altField: null, + altFormat: null, + constrainInput: true, + commandsAsDateFormat: false, + commands: {} // this.commands + }, + + /** Localisations for the plugin. + Entries are objects indexed by the language code ('' being the default US/English). + Each object has the following attributes. + @memberof CalendarsPicker + @property [renderer=this.defaultRenderer] {string} The rendering templates. + @property [prevText='<Prev'] {string} Text for the previous month command. + @property [prevStatus='Show the previous month'] {string} Status text for the previous month command. + @property [prevJumpText='<<'] {string} Text for the previous year command. + @property [prevJumpStatus='Show the previous year'] {string} Status text for the previous year command. + @property [nextText='Next>'] {string} Text for the next month command. + @property [nextStatus='Show the next month'] {string} Status text for the next month command. + @property [nextJumpText='>>'] {string} Text for the next year command. + @property [nextJumpStatus='Show the next year'] {string} Status text for the next year command. + @property [currentText='Current'] {string} Text for the current month command. + @property [currentStatus='Show the current month'] {string} Status text for the current month command. + @property [todayText='Today'] {string} Text for the today's month command. + @property [todayStatus='Show today\'s month'] {string} Status text for the today's month command. + @property [clearText='Clear'] {string} Text for the clear command. + @property [clearStatus='Clear all the dates'] {string} Status text for the clear command. + @property [closeText='Close'] {string} Text for the close command. + @property [closeStatus='Close the datepicker'] {string} Status text for the close command. + @property [yearStatus='Change the year'] {string} Status text for year selection. + @property [earlierText='  ▲'] {string} Text for earlier years. + @property [laterText='  ▼'] {string} Text for later years. + @property [monthStatus='Change the month'] {string} Status text for month selection. + @property [weekText='Wk'] {string} Text for week of the year column header. + @property [weekStatus='Week of the year'] {string} Status text for week of the year column header. + @property [dayStatus='Select DD, M d, yyyy'] {string} Status text for selectable days. + @property [defaultStatus='Select a date'] {string} Status text shown by default. + @property [isRTL=false] {boolean} true if language is right-to-left. */ + regionalOptions: { // Available regional settings, indexed by language/country code + '': { // Default regional settings - English/US + renderer: {}, // this.defaultRenderer + prevText: '<Prev', + prevStatus: 'Show the previous month', + prevJumpText: '<<', + prevJumpStatus: 'Show the previous year', + nextText: 'Next>', + nextStatus: 'Show the next month', + nextJumpText: '>>', + nextJumpStatus: 'Show the next year', + currentText: 'Current', + currentStatus: 'Show the current month', + todayText: 'Today', + todayStatus: 'Show today\'s month', + clearText: 'Clear', + clearStatus: 'Clear all the dates', + closeText: 'Close', + closeStatus: 'Close the datepicker', + yearStatus: 'Change the year', + earlierText: '  ▲', + laterText: '  ▼', + monthStatus: 'Change the month', + weekText: 'Wk', + weekStatus: 'Week of the year', + dayStatus: 'Select DD, M d, yyyy', + defaultStatus: 'Select a date', + isRTL: false + } + }, + + /** Names of getter methods - those that can't be chained. + @memberof CalendarsPicker */ + _getters: ['getDate', 'isDisabled', 'isSelectable', 'retrieveDate'], + + _disabled: [], + + _popupClass: 'calendars-popup', // Marker for popup division + _triggerClass: 'calendars-trigger', // Marker for trigger element + _disableClass: 'calendars-disable', // Marker for disabled element + _monthYearClass: 'calendars-month-year', // Marker for month/year inputs + _curMonthClass: 'calendars-month-', // Marker for current month/year + _anyYearClass: 'calendars-any-year', // Marker for year direct input + _curDoWClass: 'calendars-dow-', // Marker for day of week + + _init: function() { + this.defaultOptions.commands = this.commands; + this.regionalOptions[''].renderer = this.defaultRenderer; + this._super(); + }, + + _instSettings: function(elem, options) { + return {selectedDates: [], drawDate: null, pickingRange: false, + inline: ($.inArray(elem[0].nodeName.toLowerCase(), ['div', 'span']) > -1), + get: function(name) { // Get a setting value, computing if necessary + if ($.inArray(name, ['defaultDate', 'minDate', 'maxDate']) > -1) { // Decode date settings + return this.options.calendar.determineDate(this.options[name], null, + this.selectedDates[0], this.get('dateFormat'), this.getConfig()); + } + if (name === 'dateFormat') { + return this.options.dateFormat || this.options.calendar.local.dateFormat; + } + return this.options[name]; + }, + curMinDate: function() { + return (this.pickingRange ? this.selectedDates[0] : this.get('minDate')); + }, + getConfig: function() { + return {dayNamesShort: this.options.dayNamesShort, dayNames: this.options.dayNames, + monthNamesShort: this.options.monthNamesShort, monthNames: this.options.monthNames, + calculateWeek: this.options.calculateWeek, shortYearCutoff: this.options.shortYearCutoff}; + } + }; + }, + + _postAttach: function(elem, inst) { + if (inst.inline) { + inst.drawDate = plugin._checkMinMax((inst.selectedDates[0] || + inst.get('defaultDate') || inst.options.calendar.today()).newDate(), inst); + inst.prevDate = inst.drawDate.newDate(); + this._update(elem[0]); + if ($.fn.mousewheel) { + elem.mousewheel(this._doMouseWheel); + } + } + else { + this._attachments(elem, inst); + elem.on('keydown.' + inst.name, this._keyDown).on('keypress.' + inst.name, this._keyPress). + on('keyup.' + inst.name, this._keyUp); + if (elem.attr('disabled')) { + this.disable(elem[0]); + } + } + }, + + _optionsChanged: function(elem, inst, options) { + if (options.calendar && options.calendar !== inst.options.calendar) { + var discardDate = function(name) { + return (typeof inst.options[name] === 'object' ? null : inst.options[name]); + }; + options = $.extend({defaultDate: discardDate('defaultDate'), + minDate: discardDate('minDate'), maxDate: discardDate('maxDate')}, options); + inst.selectedDates = []; + inst.drawDate = null; + } + var dates = inst.selectedDates; + $.extend(inst.options, options); + this.setDate(elem[0], dates, null, false, true); + inst.pickingRange = false; + var calendar = inst.options.calendar; + var defaultDate = inst.get('defaultDate'); + inst.drawDate = this._checkMinMax((defaultDate ? defaultDate : inst.drawDate) || + defaultDate || calendar.today(), inst).newDate(); + if (!inst.inline) { + this._attachments(elem, inst); + } + if (inst.inline || inst.div) { + this._update(elem[0]); + } + }, + + /** Attach events and trigger, if necessary. + @memberof CalendarsPicker + @private + @param elem {jQuery} The control to affect. + @param inst {object} The current instance settings. */ + _attachments: function(elem, inst) { + elem.off('focus.' + inst.name); + if (inst.options.showOnFocus) { + elem.on('focus.' + inst.name, this.show); + } + if (inst.trigger) { + inst.trigger.remove(); + } + var trigger = inst.options.showTrigger; + inst.trigger = (!trigger ? $([]) : + $(trigger).clone().removeAttr('id').addClass(this._triggerClass) + [inst.options.isRTL ? 'insertBefore' : 'insertAfter'](elem). + click(function() { + if (!plugin.isDisabled(elem[0])) { + plugin[plugin.curInst === inst ? 'hide' : 'show'](elem[0]); + } + })); + this._autoSize(elem, inst); + var dates = this._extractDates(inst, elem.val()); + if (dates) { + this.setDate(elem[0], dates, null, true); + } + var defaultDate = inst.get('defaultDate'); + if (inst.options.selectDefaultDate && defaultDate && inst.selectedDates.length === 0) { + this.setDate(elem[0], (defaultDate || inst.options.calendar.today()).newDate()); + } + }, + + /** Apply the maximum length for the date format. + @memberof CalendarsPicker + @private + @param elem {jQuery} The control to affect. + @param inst {object} The current instance settings. */ + _autoSize: function(elem, inst) { + if (inst.options.autoSize && !inst.inline) { + var calendar = inst.options.calendar; + var date = calendar.newDate(2009, 10, 20); // Ensure double digits + var dateFormat = inst.get('dateFormat'); + if (dateFormat.match(/[DM]/)) { + var findMax = function(names) { + var max = 0; + var maxI = 0; + for (var i = 0; i < names.length; i++) { + if (names[i].length > max) { + max = names[i].length; + maxI = i; + } + } + return maxI; + }; + date.month(findMax(calendar.local[dateFormat.match(/MM/) ? // Longest month + 'monthNames' : 'monthNamesShort']) + 1); + date.day(findMax(calendar.local[dateFormat.match(/DD/) ? // Longest day + 'dayNames' : 'dayNamesShort']) + 20 - date.dayOfWeek()); + } + inst.elem.attr('size', date.formatDate(dateFormat, + {localNumbers: inst.options.localnumbers}).length); + } + }, + + _preDestroy: function(elem, inst) { + if (inst.trigger) { + inst.trigger.remove(); + } + elem.empty().off('.' + inst.name); + if (inst.inline && $.fn.mousewheel) { + elem.unmousewheel(); + } + if (!inst.inline && inst.options.autoSize) { + elem.removeAttr('size'); + } + }, + + /** Apply multiple event functions. + @memberof CalendarsPicker + @param fns {function} The functions to apply. + @example onShow: multipleEvents(fn1, fn2, ...) */ + multipleEvents: function(fns) { + var funcs = arguments; + return function(args) { + for (var i = 0; i < funcs.length; i++) { + funcs[i].apply(this, arguments); + } + }; + }, + + /** Enable the control. + @memberof CalendarsPicker + @param elem {Element} The control to affect. + @example $(selector).datepick('enable') */ + enable: function(elem) { + elem = $(elem); + if (!elem.hasClass(this._getMarker())) { + return; + } + var inst = this._getInst(elem); + if (inst.inline) { + elem.children('.' + this._disableClass).remove().end(). + find('button,select').prop('disabled', false).end(). + find('a').attr('href', 'javascript:void(0)'); + } + else { + elem.prop('disabled', false); + inst.trigger.filter('button.' + this._triggerClass).prop('disabled', false).end(). + filter('img.' + this._triggerClass).css({opacity: '1.0', cursor: ''}); + } + this._disabled = $.map(this._disabled, + function(value) { return (value === elem[0] ? null : value); }); // Delete entry + }, + + /** Disable the control. + @memberof CalendarsPicker + @param elem {Element} The control to affect. + @example $(selector).datepick('disable') */ + disable: function(elem) { + elem = $(elem); + if (!elem.hasClass(this._getMarker())) { + return; + } + var inst = this._getInst(elem); + if (inst.inline) { + var inline = elem.children(':last'); + var offset = inline.offset(); + var relOffset = {left: 0, top: 0}; + inline.parents().each(function() { + if ($(this).css('position') === 'relative') { + relOffset = $(this).offset(); + return false; + } + }); + var zIndex = elem.css('zIndex'); + zIndex = (zIndex === 'auto' ? 0 : parseInt(zIndex, 10)) + 1; + elem.prepend('
'). + find('button,select').prop('disabled', true).end(). + find('a').removeAttr('href'); + } + else { + elem.prop('disabled', true); + inst.trigger.filter('button.' + this._triggerClass).prop('disabled', true).end(). + filter('img.' + this._triggerClass).css({opacity: '0.5', cursor: 'default'}); + } + this._disabled = $.map(this._disabled, + function(value) { return (value === elem[0] ? null : value); }); // Delete entry + this._disabled.push(elem[0]); + }, + + /** Is the first field in a jQuery collection disabled as a datepicker? + @memberof CalendarsPicker + @param elem {Element} The control to examine. + @return {boolean} true if disabled, false if enabled. + @example if ($(selector).datepick('isDisabled')) {...} */ + isDisabled: function(elem) { + return (elem && $.inArray(elem, this._disabled) > -1); + }, + + /** Show a popup datepicker. + @memberof CalendarsPicker + @param elem {Event|Element} a focus event or the control to use. + @example $(selector).datepick('show') */ + show: function(elem) { + elem = $(elem.target || elem); + var inst = plugin._getInst(elem); + if (plugin.curInst === inst) { + return; + } + if (plugin.curInst) { + plugin.hide(plugin.curInst, true); + } + if (!$.isEmptyObject(inst)) { + // Retrieve existing date(s) + inst.lastVal = null; + inst.selectedDates = plugin._extractDates(inst, elem.val()); + inst.pickingRange = false; + inst.drawDate = plugin._checkMinMax((inst.selectedDates[0] || + inst.get('defaultDate') || inst.options.calendar.today()).newDate(), inst); + inst.prevDate = inst.drawDate.newDate(); + plugin.curInst = inst; + // Generate content + plugin._update(elem[0], true); + // Adjust position before showing + var offset = plugin._checkOffset(inst); + inst.div.css({left: offset.left, top: offset.top}); + // And display + var showAnim = inst.options.showAnim; + var showSpeed = inst.options.showSpeed; + showSpeed = (showSpeed === 'normal' && $.ui && + parseInt($.ui.version.substring(2)) >= 8 ? '_default' : showSpeed); + if ($.effects && ($.effects[showAnim] || ($.effects.effect && $.effects.effect[showAnim]))) { + var data = inst.div.data(); // Update old effects data + for (var key in data) { + if (key.match(/^ec\.storage\./)) { + data[key] = inst._mainDiv.css(key.replace(/ec\.storage\./, '')); + } + } + inst.div.data(data).show(showAnim, inst.options.showOptions, showSpeed); + } + else { + inst.div[showAnim || 'show'](showAnim ? showSpeed : 0); + } + } + }, + + /** Extract possible dates from a string. + @memberof CalendarsPicker + @private + @param inst {object} The current instance settings. + @param text {string} The text to extract from. + @return {CDate[]} The extracted dates. */ + _extractDates: function(inst, datesText) { + if (datesText === inst.lastVal) { + return; + } + inst.lastVal = datesText; + datesText = datesText.split(inst.options.multiSelect ? inst.options.multiSeparator : + (inst.options.rangeSelect ? inst.options.rangeSeparator : '\x00')); + var dates = []; + for (var i = 0; i < datesText.length; i++) { + try { + var date = inst.options.calendar.parseDate(inst.get('dateFormat'), datesText[i]); + if (date) { + var found = false; + for (var j = 0; j < dates.length; j++) { + if (dates[j].compareTo(date) === 0) { + found = true; + break; + } + } + if (!found) { + dates.push(date); + } + } + } + catch (e) { + // Ignore + } + } + dates.splice(inst.options.multiSelect || (inst.options.rangeSelect ? 2 : 1), dates.length); + if (inst.options.rangeSelect && dates.length === 1) { + dates[1] = dates[0]; + } + return dates; + }, + + /** Update the datepicker display. + @memberof CalendarsPicker + @private + @param elem {Event|Element} a focus event or the control to use. + @param hidden {boolean} true to initially hide the datepicker. */ + _update: function(elem, hidden) { + elem = $(elem.target || elem); + var inst = plugin._getInst(elem); + if (!$.isEmptyObject(inst)) { + if (inst.inline || plugin.curInst === inst) { + if ($.isFunction(inst.options.onChangeMonthYear) && (!inst.prevDate || + inst.prevDate.year() !== inst.drawDate.year() || + inst.prevDate.month() !== inst.drawDate.month())) { + inst.options.onChangeMonthYear.apply(elem[0], + [inst.drawDate.year(), inst.drawDate.month()]); + } + } + if (inst.inline) { + var index = $('a, :input', elem).index($(':focus', elem)); + elem.html(this._generateContent(elem[0], inst)); + var focus = elem.find('a, :input'); + focus.eq(Math.max(Math.min(index, focus.length - 1), 0)).focus(); + } + else if (plugin.curInst === inst) { + if (!inst.div) { + inst.div = $('
').addClass(this._popupClass). + css({display: (hidden ? 'none' : 'static'), position: 'absolute', + left: elem.offset().left, top: elem.offset().top + elem.outerHeight()}). + appendTo($(inst.options.popupContainer || 'body')); + if ($.fn.mousewheel) { + inst.div.mousewheel(this._doMouseWheel); + } + } + inst.div.html(this._generateContent(elem[0], inst)); + elem.focus(); + } + } + }, + + /** Update the input field and any alternate field with the current dates. + @memberof CalendarsPicker + @private + @param elem {Element} The control to use. + @param keyUp {boolean} true if coming from keyUp processing (internal). */ + _updateInput: function(elem, keyUp) { + var inst = this._getInst(elem); + if (!$.isEmptyObject(inst)) { + var value = ''; + var altValue = ''; + var sep = (inst.options.multiSelect ? inst.options.multiSeparator : + inst.options.rangeSeparator); + var calendar = inst.options.calendar; + var dateFormat = inst.get('dateFormat'); + var altFormat = inst.options.altFormat || dateFormat; + var settings = {localNumbers: inst.options.localNumbers}; + for (var i = 0; i < inst.selectedDates.length; i++) { + value += (keyUp ? '' : (i > 0 ? sep : '') + + calendar.formatDate(dateFormat, inst.selectedDates[i], settings)); + altValue += (i > 0 ? sep : '') + + calendar.formatDate(altFormat, inst.selectedDates[i], settings); + } + if (!inst.inline && !keyUp) { + $(elem).val(value); + } + $(inst.options.altField).val(altValue); + if ($.isFunction(inst.options.onSelect) && !keyUp && !inst.inSelect) { + inst.inSelect = true; // Prevent endless loops + inst.options.onSelect.apply(elem, [inst.selectedDates]); + inst.inSelect = false; + } + } + }, + + /** Retrieve the size of left and top borders for an element. + @memberof CalendarsPicker + @private + @param elem {jQuery} The element of interest. + @return {number[]} The left and top borders. */ + _getBorders: function(elem) { + var convert = function(value) { + return {thin: 1, medium: 3, thick: 5}[value] || value; + }; + return [parseFloat(convert(elem.css('border-left-width'))), + parseFloat(convert(elem.css('border-top-width')))]; + }, + + /** Check positioning to remain on the screen. + @memberof CalendarsPicker + @private + @param inst {object} The current instance settings. + @return {object} The updated offset for the datepicker. */ + _checkOffset: function(inst) { + var base = (inst.elem.is(':hidden') && inst.trigger ? inst.trigger : inst.elem); + var offset = base.offset(); + var browserWidth = $(window).width(); + var browserHeight = $(window).height(); + if (browserWidth === 0) { + return offset; + } + var isFixed = false; + $(inst.elem).parents().each(function() { + isFixed |= $(this).css('position') === 'fixed'; + return !isFixed; + }); + var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; + var scrollY = document.documentElement.scrollTop || document.body.scrollTop; + var above = offset.top - (isFixed ? scrollY : 0) - inst.div.outerHeight(); + var below = offset.top - (isFixed ? scrollY : 0) + base.outerHeight(); + var alignL = offset.left - (isFixed ? scrollX : 0); + var alignR = offset.left - (isFixed ? scrollX : 0) + base.outerWidth() - inst.div.outerWidth(); + var tooWide = (offset.left - scrollX + inst.div.outerWidth()) > browserWidth; + var tooHigh = (offset.top - scrollY + inst.elem.outerHeight() + + inst.div.outerHeight()) > browserHeight; + inst.div.css('position', isFixed ? 'fixed' : 'absolute'); + var alignment = inst.options.alignment; + if (alignment === 'topLeft') { + offset = {left: alignL, top: above}; + } + else if (alignment === 'topRight') { + offset = {left: alignR, top: above}; + } + else if (alignment === 'bottomLeft') { + offset = {left: alignL, top: below}; + } + else if (alignment === 'bottomRight') { + offset = {left: alignR, top: below}; + } + else if (alignment === 'top') { + offset = {left: (inst.options.isRTL || tooWide ? alignR : alignL), top: above}; + } + else { // bottom + offset = {left: (inst.options.isRTL || tooWide ? alignR : alignL), + top: (tooHigh ? above : below)}; + } + offset.left = Math.max((isFixed ? 0 : scrollX), offset.left); + offset.top = Math.max((isFixed ? 0 : scrollY), offset.top); + return offset; + }, + + /** Close date picker if clicked elsewhere. + @memberof CalendarsPicker + @private + @param event {MouseEvent} The mouse click to check. */ + _checkExternalClick: function(event) { + if (!plugin.curInst) { + return; + } + var elem = $(event.target); + if (elem.closest('.' + plugin._popupClass + ',.' + plugin._triggerClass).length === 0 && + !elem.hasClass(plugin._getMarker())) { + plugin.hide(plugin.curInst); + } + }, + + /** Hide a popup datepicker. + @memberof CalendarsPicker + @param elem {Element|object} The control to use or the current instance settings. + @param immediate {boolean} true to close immediately without animation (internal). + @example $(selector).datepick('hide') */ + hide: function(elem, immediate) { + if (!elem) { + return; + } + var inst = this._getInst(elem); + if ($.isEmptyObject(inst)) { + inst = elem; + } + if (inst && inst === plugin.curInst) { + var showAnim = (immediate ? '' : inst.options.showAnim); + var showSpeed = inst.options.showSpeed; + showSpeed = (showSpeed === 'normal' && $.ui && + parseInt($.ui.version.substring(2)) >= 8 ? '_default' : showSpeed); + var postProcess = function() { + if (!inst.div) { + return; + } + inst.div.remove(); + inst.div = null; + plugin.curInst = null; + if ($.isFunction(inst.options.onClose)) { + inst.options.onClose.apply(elem, [inst.selectedDates]); + } + }; + inst.div.stop(); + if ($.effects && ($.effects[showAnim] || ($.effects.effect && $.effects.effect[showAnim]))) { + inst.div.hide(showAnim, inst.options.showOptions, showSpeed, postProcess); + } + else { + var hideAnim = (showAnim === 'slideDown' ? 'slideUp' : + (showAnim === 'fadeIn' ? 'fadeOut' : 'hide')); + inst.div[hideAnim]((showAnim ? showSpeed : ''), postProcess); + } + if (!showAnim) { + postProcess(); + } + } + }, + + /** Handle keystrokes in the datepicker. + @memberof CalendarsPicker + @private + @param event {KeyEvent} The keystroke. + @return {boolean} true if not handled, false if handled. */ + _keyDown: function(event) { + var elem = (event.data && event.data.elem) || event.target; + var inst = plugin._getInst(elem); + var handled = false; + if (inst.inline || inst.div) { + if (event.keyCode === 9) { // Tab - close + plugin.hide(elem); + } + else if (event.keyCode === 13) { // Enter - select + plugin.selectDate(elem, + $('a.' + inst.options.renderer.highlightedClass, inst.div)[0]); + handled = true; + } + else { // Command keystrokes + var commands = inst.options.commands; + for (var name in commands) { + var command = commands[name]; + if (command.keystroke.keyCode === event.keyCode && + !!command.keystroke.ctrlKey === !!(event.ctrlKey || event.metaKey) && + !!command.keystroke.altKey === event.altKey && + !!command.keystroke.shiftKey === event.shiftKey) { + plugin.performAction(elem, name); + handled = true; + break; + } + } + } + } + else { // Show on 'current' keystroke + var command = inst.options.commands.current; + if (command.keystroke.keyCode === event.keyCode && + !!command.keystroke.ctrlKey === !!(event.ctrlKey || event.metaKey) && + !!command.keystroke.altKey === event.altKey && + !!command.keystroke.shiftKey === event.shiftKey) { + plugin.show(elem); + handled = true; + } + } + inst.ctrlKey = ((event.keyCode < 48 && event.keyCode !== 32) || event.ctrlKey || event.metaKey); + if (handled) { + event.preventDefault(); + event.stopPropagation(); + } + return !handled; + }, + + /** Filter keystrokes in the datepicker. + @memberof CalendarsPicker + @private + @param event {KeyEvent} The keystroke. + @return {boolean} true if allowed, false if not allowed. */ + _keyPress: function(event) { + var inst = plugin._getInst((event.data && event.data.elem) || event.target); + if (!$.isEmptyObject(inst) && inst.options.constrainInput) { + var ch = String.fromCharCode(event.keyCode || event.charCode); + var allowedChars = plugin._allowedChars(inst); + return (event.metaKey || inst.ctrlKey || ch < ' ' || + !allowedChars || allowedChars.indexOf(ch) > -1); + } + return true; + }, + + /** Determine the set of characters allowed by the date format. + @memberof CalendarsPicker + @private + @param inst {object} The current instance settings. + @return {string} The set of allowed characters, or null if anything allowed. */ + _allowedChars: function(inst) { + var allowedChars = (inst.options.multiSelect ? inst.options.multiSeparator : + (inst.options.rangeSelect ? inst.options.rangeSeparator : '')); + var literal = false; + var hasNum = false; + var dateFormat = inst.get('dateFormat'); + for (var i = 0; i < dateFormat.length; i++) { + var ch = dateFormat.charAt(i); + if (literal) { + if (ch === "'" && dateFormat.charAt(i + 1) !== "'") { + literal = false; + } + else { + allowedChars += ch; + } + } + else { + switch (ch) { + case 'd': case 'm': case 'o': case 'w': + allowedChars += (hasNum ? '' : '0123456789'); hasNum = true; break; + case 'y': case '@': case '!': + allowedChars += (hasNum ? '' : '0123456789') + '-'; hasNum = true; break; + case 'J': + allowedChars += (hasNum ? '' : '0123456789') + '-.'; hasNum = true; break; + case 'D': case 'M': case 'Y': + return null; // Accept anything + case "'": + if (dateFormat.charAt(i + 1) === "'") { + allowedChars += "'"; + } + else { + literal = true; + } + break; + default: + allowedChars += ch; + } + } + } + return allowedChars; + }, + + /** Synchronise datepicker with the field. + @memberof CalendarsPicker + @private + @param event {KeyEvent} The keystroke. + @return {boolean} true if allowed, false if not allowed. */ + _keyUp: function(event) { + var elem = (event.data && event.data.elem) || event.target; + var inst = plugin._getInst(elem); + if (!$.isEmptyObject(inst) && !inst.ctrlKey && inst.lastVal !== inst.elem.val()) { + try { + var dates = plugin._extractDates(inst, inst.elem.val()); + if (dates.length > 0) { + plugin.setDate(elem, dates, null, true); + } + } + catch (event) { + // Ignore + } + } + return true; + }, + + /** Increment/decrement month/year on mouse wheel activity. + @memberof CalendarsPicker + @private + @param event {event} The mouse wheel event. + @param delta {number} The amount of change. */ + _doMouseWheel: function(event, delta) { + var elem = (plugin.curInst && plugin.curInst.elem[0]) || + $(event.target).closest('.' + plugin._getMarker())[0]; + if (plugin.isDisabled(elem)) { + return; + } + var inst = plugin._getInst(elem); + if (inst.options.useMouseWheel) { + delta = (delta < 0 ? -1 : +1); + plugin.changeMonth(elem, -inst.options[event.ctrlKey ? 'monthsToJump' : 'monthsToStep'] * delta); + } + event.preventDefault(); + }, + + /** Clear an input and close a popup datepicker. + @memberof CalendarsPicker + @param elem {Element} The control to use. + @example $(selector).datepick('clear') */ + clear: function(elem) { + var inst = this._getInst(elem); + if (!$.isEmptyObject(inst)) { + inst.selectedDates = []; + this.hide(elem); + var defaultDate = inst.get('defaultDate'); + if (inst.options.selectDefaultDate && defaultDate) { + this.setDate(elem, (defaultDate || inst.options.calendar.today()).newDate()); + } + else { + this._updateInput(elem); + } + } + }, + + /** Retrieve the selected date(s) for a datepicker. + @memberof CalendarsPicker + @param elem {Element} The control to examine. + @return {CDate[]} The selected date(s). + @example var dates = $(selector).datepick('getDate') */ + getDate: function(elem) { + var inst = this._getInst(elem); + return (!$.isEmptyObject(inst) ? inst.selectedDates : []); + }, + + /** Set the selected date(s) for a datepicker. + @memberof CalendarsPicker + @param elem {Element} the control to examine. + @param dates {CDate|number|string|array} the selected date(s). + @param [endDate] {CDate|number|string} the ending date for a range. + @param [keyUp] {boolean} true if coming from keyUp processing (internal). + @param [setOpt] {boolean} true if coming from option processing (internal). + @example $(selector).datepick('setDate', new Date(2014, 12-1, 25)) + $(selector).datepick('setDate', '12/25/2014', '01/01/2015') + $(selector).datepick('setDate', [date1, date2, date3]) */ + setDate: function(elem, dates, endDate, keyUp, setOpt) { + var inst = this._getInst(elem); + if (!$.isEmptyObject(inst)) { + if (!$.isArray(dates)) { + dates = [dates]; + if (endDate) { + dates.push(endDate); + } + } + var minDate = inst.get('minDate'); + var maxDate = inst.get('maxDate'); + var curDate = inst.selectedDates[0]; + inst.selectedDates = []; + for (var i = 0; i < dates.length; i++) { + var date = inst.options.calendar.determineDate( + dates[i], null, curDate, inst.get('dateFormat'), inst.getConfig()); + if (date) { + if ((!minDate || date.compareTo(minDate) !== -1) && + (!maxDate || date.compareTo(maxDate) !== +1)) { + var found = false; + for (var j = 0; j < inst.selectedDates.length; j++) { + if (inst.selectedDates[j].compareTo(date) === 0) { + found = true; + break; + } + } + if (!found) { + inst.selectedDates.push(date); + } + } + } + } + inst.selectedDates.splice(inst.options.multiSelect || + (inst.options.rangeSelect ? 2 : 1), inst.selectedDates.length); + if (inst.options.rangeSelect) { + switch (inst.selectedDates.length) { + case 1: inst.selectedDates[1] = inst.selectedDates[0]; break; + case 2: inst.selectedDates[1] = + (inst.selectedDates[0].compareTo(inst.selectedDates[1]) === +1 ? + inst.selectedDates[0] : inst.selectedDates[1]); break; + } + inst.pickingRange = false; + } + inst.prevDate = (inst.drawDate ? inst.drawDate.newDate() : null); + inst.drawDate = this._checkMinMax((inst.selectedDates[0] || + inst.get('defaultDate') || inst.options.calendar.today()).newDate(), inst); + if (!setOpt) { + this._update(elem); + this._updateInput(elem, keyUp); + } + } + }, + + /** Determine whether a date is selectable for this datepicker. + @memberof CalendarsPicker + @private + @param elem {Element} The control to check. + @param date {CDate|string|number} The date to check. + @return {boolean} true if selectable, false if not. + @example var selectable = $(selector).datepick('isSelectable', date) */ + isSelectable: function(elem, date) { + var inst = this._getInst(elem); + if ($.isEmptyObject(inst)) { + return false; + } + date = inst.options.calendar.determineDate(date, + inst.selectedDates[0] || inst.options.calendar.today(), null, + inst.options.dateFormat, inst.getConfig()); + return this._isSelectable(elem, date, inst.options.onDate, + inst.get('minDate'), inst.get('maxDate')); + }, + + /** Internally determine whether a date is selectable for this datepicker. + @memberof CalendarsPicker + @private + @param elem {Element} the control to check. + @param date {CDate} The date to check. + @param onDate {function|boolean} Any onDate callback or callback.selectable. + @param minDate {CDate} The minimum allowed date. + @param maxDate {CDate} The maximum allowed date. + @return {boolean} true if selectable, false if not. */ + _isSelectable: function(elem, date, onDate, minDate, maxDate) { + var dateInfo = (typeof onDate === 'boolean' ? {selectable: onDate} : + (!$.isFunction(onDate) ? {} : onDate.apply(elem, [date, true]))); + return (dateInfo.selectable !== false) && + (!minDate || date.toJD() >= minDate.toJD()) && (!maxDate || date.toJD() <= maxDate.toJD()); + }, + + /** Perform a named action for a datepicker. + @memberof CalendarsPicker + @param elem {element} The control to affect. + @param action {string} The name of the action. */ + performAction: function(elem, action) { + var inst = this._getInst(elem); + if (!$.isEmptyObject(inst) && !this.isDisabled(elem)) { + var commands = inst.options.commands; + if (commands[action] && commands[action].enabled.apply(elem, [inst])) { + commands[action].action.apply(elem, [inst]); + } + } + }, + + /** Set the currently shown month, defaulting to today's. + @memberof CalendarsPicker + @param elem {Element} The control to affect. + @param [year] {number} The year to show. + @param [month] {number} The month to show (1-12). + @param [day] {number} The day to show. + @example $(selector).datepick('showMonth', 2014, 12, 25) */ + showMonth: function(elem, year, month, day) { + var inst = this._getInst(elem); + if (!$.isEmptyObject(inst) && (day != null || + (inst.drawDate.year() !== year || inst.drawDate.month() !== month))) { + inst.prevDate = inst.drawDate.newDate(); + var calendar = inst.options.calendar; + var show = this._checkMinMax((year != null ? + calendar.newDate(year, month, 1) : calendar.today()), inst); + inst.drawDate.date(show.year(), show.month(), + (day != null ? day : Math.min(inst.drawDate.day(), + calendar.daysInMonth(show.year(), show.month())))); + this._update(elem); + } + }, + + /** Adjust the currently shown month. + @memberof CalendarsPicker + @param elem {Element} The control to affect. + @param offset {number} The number of months to change by. + @example $(selector).datepick('changeMonth', 2)*/ + changeMonth: function(elem, offset) { + var inst = this._getInst(elem); + if (!$.isEmptyObject(inst)) { + var date = inst.drawDate.newDate().add(offset, 'm'); + this.showMonth(elem, date.year(), date.month()); + } + }, + + /** Adjust the currently shown day. + @memberof CalendarsPicker + @param elem {Element} The control to affect. + @param offset {number} The number of days to change by. + @example $(selector).datepick('changeDay', 7)*/ + changeDay: function(elem, offset) { + var inst = this._getInst(elem); + if (!$.isEmptyObject(inst)) { + var date = inst.drawDate.newDate().add(offset, 'd'); + this.showMonth(elem, date.year(), date.month(), date.day()); + } + }, + + /** Restrict a date to the minimum/maximum specified. + @memberof CalendarsPicker + @private + @param date {CDate} The date to check. + @param inst {object} The current instance settings. */ + _checkMinMax: function(date, inst) { + var minDate = inst.get('minDate'); + var maxDate = inst.get('maxDate'); + date = (minDate && date.compareTo(minDate) === -1 ? minDate.newDate() : date); + date = (maxDate && date.compareTo(maxDate) === +1 ? maxDate.newDate() : date); + return date; + }, + + /** Retrieve the date associated with an entry in the datepicker. + @memberof CalendarsPicker + @param elem {Element} The control to examine. + @param target {Element} The selected datepicker element. + @return {CDate} The corresponding date, or null. + @example var date = $(selector).datepick('retrieveDate', $('div.datepick-popup a:contains(10)')[0]) */ + retrieveDate: function(elem, target) { + var inst = this._getInst(elem); + return ($.isEmptyObject(inst) ? null : inst.options.calendar.fromJD( + parseFloat(target.className.replace(/^.*jd(\d+\.5).*$/, '$1')))); + }, + + /** Select a date for this datepicker. + @memberof CalendarsPicker + @param elem {Element} The control to examine. + @param target {Element} The selected datepicker element. + @example $(selector).datepick('selectDate', $('div.datepick-popup a:contains(10)')[0]) */ + selectDate: function(elem, target) { + var inst = this._getInst(elem); + if (!$.isEmptyObject(inst) && !this.isDisabled(elem)) { + var date = this.retrieveDate(elem, target); + if (inst.options.multiSelect) { + var found = false; + for (var i = 0; i < inst.selectedDates.length; i++) { + if (date.compareTo(inst.selectedDates[i]) === 0) { + inst.selectedDates.splice(i, 1); + found = true; + break; + } + } + if (!found && inst.selectedDates.length < inst.options.multiSelect) { + inst.selectedDates.push(date); + } + } + else if (inst.options.rangeSelect) { + if (inst.pickingRange) { + inst.selectedDates[1] = date; + } + else { + inst.selectedDates = [date, date]; + } + inst.pickingRange = !inst.pickingRange; + } + else { + inst.selectedDates = [date]; + } + inst.prevDate = inst.drawDate = date.newDate(); + this._updateInput(elem); + if (inst.inline || inst.pickingRange || inst.selectedDates.length < + (inst.options.multiSelect || (inst.options.rangeSelect ? 2 : 1))) { + this._update(elem); + } + else { + this.hide(elem); + } + } + }, + + /** Generate the datepicker content for this control. + @memberof CalendarsPicker + @private + @param elem {Element} The control to affect. + @param inst {object} The current instance settings. + @return {jQuery} The datepicker content */ + _generateContent: function(elem, inst) { + var monthsToShow = inst.options.monthsToShow; + monthsToShow = ($.isArray(monthsToShow) ? monthsToShow : [1, monthsToShow]); + inst.drawDate = this._checkMinMax( + inst.drawDate || inst.get('defaultDate') || inst.options.calendar.today(), inst); + var drawDate = inst.drawDate.newDate().add(-inst.options.monthsOffset, 'm'); + // Generate months + var monthRows = ''; + for (var row = 0; row < monthsToShow[0]; row++) { + var months = ''; + for (var col = 0; col < monthsToShow[1]; col++) { + months += this._generateMonth(elem, inst, drawDate.year(), + drawDate.month(), inst.options.calendar, inst.options.renderer, (row === 0 && col === 0)); + drawDate.add(1, 'm'); + } + monthRows += this._prepare(inst.options.renderer.monthRow, inst).replace(/\{months\}/, months); + } + var picker = this._prepare(inst.options.renderer.picker, inst).replace(/\{months\}/, monthRows). + replace(/\{weekHeader\}/g, this._generateDayHeaders(inst, inst.options.calendar, inst.options.renderer)); + // Add commands + var addCommand = function(type, open, close, name, classes) { + if (picker.indexOf('{' + type + ':' + name + '}') === -1) { + return; + } + var command = inst.options.commands[name]; + var date = (inst.options.commandsAsDateFormat ? command.date.apply(elem, [inst]) : null); + picker = picker.replace(new RegExp('\\{' + type + ':' + name + '\\}', 'g'), + '<' + open + (command.status ? ' title="' + inst.options[command.status] + '"' : '') + + ' class="' + inst.options.renderer.commandClass + ' ' + + inst.options.renderer.commandClass + '-' + name + ' ' + classes + + (command.enabled(inst) ? '' : ' ' + inst.options.renderer.disabledClass) + '">' + + (date ? date.formatDate(inst.options[command.text], {localNumbers: inst.options.localNumbers}) : + inst.options[command.text]) + ''); + }; + for (var name in inst.options.commands) { + addCommand('button', 'button type="button"', 'button', name, + inst.options.renderer.commandButtonClass); + addCommand('link', 'a href="javascript:void(0)"', 'a', name, + inst.options.renderer.commandLinkClass); + } + picker = $(picker); + if (monthsToShow[1] > 1) { + var count = 0; + $(inst.options.renderer.monthSelector, picker).each(function() { + var nth = ++count % monthsToShow[1]; + $(this).addClass(nth === 1 ? 'first' : (nth === 0 ? 'last' : '')); + }); + } + // Add datepicker behaviour + var self = this; + function removeHighlight() { + (inst.inline ? $(this).closest('.' + self._getMarker()) : inst.div). + find(inst.options.renderer.daySelector + ' a'). + removeClass(inst.options.renderer.highlightedClass); + } + picker.find(inst.options.renderer.daySelector + ' a').hover( + function() { + removeHighlight.apply(this); + $(this).addClass(inst.options.renderer.highlightedClass); + }, + removeHighlight). + click(function() { + self.selectDate(elem, this); + }).end(). + find('select.' + this._monthYearClass + ':not(.' + this._anyYearClass + ')'). + change(function() { + var monthYear = $(this).val().split('/'); + self.showMonth(elem, parseInt(monthYear[1], 10), parseInt(monthYear[0], 10)); + }).end(). + find('select.' + this._anyYearClass).click(function() { + $(this).css('visibility', 'hidden'). + next('input').css({left: this.offsetLeft, top: this.offsetTop, + width: this.offsetWidth, height: this.offsetHeight}).show().focus(); + }).end(). + find('input.' + self._monthYearClass).change(function() { + try { + var year = parseInt($(this).val(), 10); + year = (isNaN(year) ? inst.drawDate.year() : year); + self.showMonth(elem, year, inst.drawDate.month(), inst.drawDate.day()); + } + catch (e) { + alert(e); + } + }).keydown(function(event) { + if (event.keyCode === 13) { // Enter + $(event.elem).change(); + } + else if (event.keyCode === 27) { // Escape + $(event.elem).hide().prev('select').css('visibility', 'visible'); + inst.elem.focus(); + } + }); + // Add keyboard handling + var data = {elem: inst.elem[0]}; + picker.keydown(data, this._keyDown).keypress(data, this._keyPress).keyup(data, this._keyUp); + // Add command behaviour + picker.find('.' + inst.options.renderer.commandClass).click(function() { + if (!$(this).hasClass(inst.options.renderer.disabledClass)) { + var action = this.className.replace( + new RegExp('^.*' + inst.options.renderer.commandClass + '-([^ ]+).*$'), '$1'); + plugin.performAction(elem, action); + } + }); + // Add classes + if (inst.options.isRTL) { + picker.addClass(inst.options.renderer.rtlClass); + } + if (monthsToShow[0] * monthsToShow[1] > 1) { + picker.addClass(inst.options.renderer.multiClass); + } + if (inst.options.pickerClass) { + picker.addClass(inst.options.pickerClass); + } + // Resize + $('body').append(picker); + var width = 0; + picker.find(inst.options.renderer.monthSelector).each(function() { + width += $(this).outerWidth(); + }); + picker.width(width / monthsToShow[0]); + // Pre-show customisation + if ($.isFunction(inst.options.onShow)) { + inst.options.onShow.apply(elem, [picker, inst.options.calendar, inst]); + } + return picker; + }, + + /** Generate the content for a single month. + @memberof CalendarsPicker + @private + @param elem {Element} The control to affect. + @param inst {object} The current instance settings. + @param year {number} The year to generate. + @param month {number} The month to generate. + @param calendar {BaseCalendar} The current calendar. + @param renderer {object} The rendering templates. + @param first {boolean} true if first of multiple months. + @return {string} The month content. */ + _generateMonth: function(elem, inst, year, month, calendar, renderer, first) { + var daysInMonth = calendar.daysInMonth(year, month); + var monthsToShow = inst.options.monthsToShow; + monthsToShow = ($.isArray(monthsToShow) ? monthsToShow : [1, monthsToShow]); + var fixedWeeks = inst.options.fixedWeeks || (monthsToShow[0] * monthsToShow[1] > 1); + var firstDay = inst.options.firstDay; + firstDay = (firstDay == null ? calendar.local.firstDay : firstDay); + var leadDays = (calendar.dayOfWeek(year, month, calendar.minDay) - + firstDay + calendar.daysInWeek()) % calendar.daysInWeek(); + var numWeeks = (fixedWeeks ? 6 : Math.ceil((leadDays + daysInMonth) / calendar.daysInWeek())); + var selectOtherMonths = inst.options.selectOtherMonths && inst.options.showOtherMonths; + var minDate = (inst.pickingRange ? inst.selectedDates[0] : inst.get('minDate')); + var maxDate = inst.get('maxDate'); + var showWeeks = renderer.week.indexOf('{weekOfYear}') > -1; + var today = calendar.today(); + var drawDate = calendar.newDate(year, month, calendar.minDay); + drawDate.add(-leadDays - (fixedWeeks && + (drawDate.dayOfWeek() === firstDay || drawDate.daysInMonth() < calendar.daysInWeek())? + calendar.daysInWeek() : 0), 'd'); + var jd = drawDate.toJD(); + // Localise numbers if requested and available + var localiseNumbers = function(value) { + return (inst.options.localNumbers && calendar.local.digits ? calendar.local.digits(value) : value); + }; + // Generate weeks + var weeks = ''; + for (var week = 0; week < numWeeks; week++) { + var weekOfYear = (!showWeeks ? '' : '' + + ($.isFunction(inst.options.calculateWeek) ? + inst.options.calculateWeek(drawDate) : drawDate.weekOfYear()) + ''); + var days = ''; + for (var day = 0; day < calendar.daysInWeek(); day++) { + var selected = false; + if (inst.options.rangeSelect && inst.selectedDates.length > 0) { + selected = (drawDate.compareTo(inst.selectedDates[0]) !== -1 && + drawDate.compareTo(inst.selectedDates[1]) !== +1) + } + else { + for (var i = 0; i < inst.selectedDates.length; i++) { + if (inst.selectedDates[i].compareTo(drawDate) === 0) { + selected = true; + break; + } + } + } + var dateInfo = (!$.isFunction(inst.options.onDate) ? {} : + inst.options.onDate.apply(elem, [drawDate, drawDate.month() === month])); + var selectable = (selectOtherMonths || drawDate.month() === month) && + this._isSelectable(elem, drawDate, dateInfo.selectable, minDate, maxDate); + days += this._prepare(renderer.day, inst).replace(/\{day\}/g, + (selectable ? '' + + (inst.options.showOtherMonths || drawDate.month() === month ? + dateInfo.content || localiseNumbers(drawDate.day()) : ' ') + + (selectable ? '' : '')); + drawDate.add(1, 'd'); + jd++; + } + weeks += this._prepare(renderer.week, inst).replace(/\{days\}/g, days). + replace(/\{weekOfYear\}/g, weekOfYear); + } + var monthHeader = this._prepare(renderer.month, inst).match(/\{monthHeader(:[^\}]+)?\}/); + monthHeader = (monthHeader[0].length <= 13 ? 'MM yyyy' : + monthHeader[0].substring(13, monthHeader[0].length - 1)); + monthHeader = (first ? this._generateMonthSelection( + inst, year, month, minDate, maxDate, monthHeader, calendar, renderer) : + calendar.formatDate(monthHeader, calendar.newDate(year, month, calendar.minDay), + {localNumbers: inst.options.localNumbers})); + var weekHeader = this._prepare(renderer.weekHeader, inst). + replace(/\{days\}/g, this._generateDayHeaders(inst, calendar, renderer)); + return this._prepare(renderer.month, inst).replace(/\{monthHeader(:[^\}]+)?\}/g, monthHeader). + replace(/\{weekHeader\}/g, weekHeader).replace(/\{weeks\}/g, weeks); + }, + + /** Generate the HTML for the day headers. + @memberof CalendarsPicker + @private + @param inst {object} The current instance settings. + @param calendar {BaseCalendar} The current calendar. + @param renderer {object} The rendering templates. + @return {string} A week's worth of day headers. */ + _generateDayHeaders: function(inst, calendar, renderer) { + var firstDay = inst.options.firstDay; + firstDay = (firstDay == null ? calendar.local.firstDay : firstDay); + var header = ''; + for (var day = 0; day < calendar.daysInWeek(); day++) { + var dow = (day + firstDay) % calendar.daysInWeek(); + header += this._prepare(renderer.dayHeader, inst).replace(/\{day\}/g, + '' + calendar.local.dayNamesMin[dow] + ''); + } + return header; + }, + + /** Generate selection controls for month. + @memberof CalendarsPicker + @private + @param inst {object} The current instance settings. + @param year {number} The year to generate. + @param month {number} The month to generate. + @param minDate {CDate} The minimum date allowed. + @param maxDate {CDate} The maximum date allowed. + @param monthHeader {string} The month/year format. + @param calendar {BaseCalendar} The current calendar. + @return {string} The month selection content. */ + _generateMonthSelection: function(inst, year, month, minDate, maxDate, monthHeader, calendar) { + if (!inst.options.changeMonth) { + return calendar.formatDate(monthHeader, calendar.newDate(year, month, 1), + {localNumbers: inst.options.localNumbers}); + } + // Months + var monthNames = calendar.local[ + 'monthNames' + (monthHeader.match(/mm/i) ? '' : 'Short')]; + var html = monthHeader.replace(/m+/i, '\\x2E').replace(/y+/i, '\\x2F'); + var selector = ''; + html = html.replace(/\\x2E/, selector); + // Years + var yearRange = inst.options.yearRange; + if (yearRange === 'any') { + selector = '' + + ''; + } + else { + yearRange = yearRange.split(':'); + var todayYear = calendar.today().year(); + var start = (yearRange[0].match('c[+-].*') ? year + parseInt(yearRange[0].substring(1), 10) : + ((yearRange[0].match('[+-].*') ? todayYear : 0) + parseInt(yearRange[0], 10))); + var end = (yearRange[1].match('c[+-].*') ? year + parseInt(yearRange[1].substring(1), 10) : + ((yearRange[1].match('[+-].*') ? todayYear : 0) + parseInt(yearRange[1], 10))); + selector = ''; + } + html = html.replace(/\\x2F/, selector); + return html; + }, + + /** Prepare a render template for use. + Exclude popup/inline sections that are not applicable. + Localise text of the form: {l10n:name}. + @memberof CalendarsPicker + @private + @param text {string} The text to localise. + @param inst {object} The current instance settings. + @return {string} The localised text. */ + _prepare: function(text, inst) { + var replaceSection = function(type, retain) { + while (true) { + var start = text.indexOf('{' + type + ':start}'); + if (start === -1) { + return; + } + var end = text.substring(start).indexOf('{' + type + ':end}'); + if (end > -1) { + text = text.substring(0, start) + + (retain ? text.substr(start + type.length + 8, end - type.length - 8) : '') + + text.substring(start + end + type.length + 6); + } + } + }; + replaceSection('inline', inst.inline); + replaceSection('popup', !inst.inline); + var pattern = /\{l10n:([^\}]+)\}/; + var matches = null; + while (matches = pattern.exec(text)) { + text = text.replace(matches[0], inst.options[matches[1]]); + } + return text; + } + }); + + var plugin = $.calendarsPicker; // Singleton instance + + $(function() { + $(document).on('mousedown.' + pluginName, plugin._checkExternalClick). + on('resize.' + pluginName, function() { plugin.hide(plugin.curInst); }); + }); + +})(jQuery); diff --git a/jquery-src/jquery.calendars.all.min.js b/jquery-src/jquery.calendars.all.min.js new file mode 100755 index 0000000..e22eef6 --- /dev/null +++ b/jquery-src/jquery.calendars.all.min.js @@ -0,0 +1,6 @@ +/* http://keith-wood.name/calendars.html + Calendars for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ +(function($){function Calendars(){this.regionalOptions=[];this.regionalOptions['']={invalidCalendar:'Calendar {0} not found',invalidDate:'Invalid {0} date',invalidMonth:'Invalid {0} month',invalidYear:'Invalid {0} year',differentCalendars:'Cannot mix {0} and {1} dates'};this.local=this.regionalOptions[''];this.calendars={};this._localCals={}}$.extend(Calendars.prototype,{instance:function(a,b){a=(a||'gregorian').toLowerCase();b=b||'';var c=this._localCals[a+'-'+b];if(!c&&this.calendars[a]){c=new this.calendars[a](b);this._localCals[a+'-'+b]=c}if(!c){throw(this.local.invalidCalendar||this.regionalOptions[''].invalidCalendar).replace(/\{0\}/,a)}return c},newDate:function(a,b,c,d,e){d=(a!=null&&a.year?a.calendar():(typeof d==='string'?this.instance(d,e):d))||this.instance();return d.newDate(a,b,c)},substituteDigits:function(c){return function(b){return(b+'').replace(/[0-9]/g,function(a){return c[a]})}},substituteChineseDigits:function(e,f){return function(a){var b='';var c=0;while(a>0){var d=a%10;b=(d===0?'':e[d]+f[c])+b;c++;a=Math.floor(a/10)}if(b.indexOf(e[1]+f[1])===0){b=b.substr(1)}return b||e[0]}}});function CDate(a,b,c,d){this._calendar=a;this._year=b;this._month=c;this._day=d;if(this._calendar._validateLevel===0&&!this._calendar.isValid(this._year,this._month,this._day)){throw($.calendars.local.invalidDate||$.calendars.regionalOptions[''].invalidDate).replace(/\{0\}/,this._calendar.local.name)}}function pad(a,b){a=''+a;return'000000'.substring(0,b-a.length)+a}$.extend(CDate.prototype,{newDate:function(a,b,c){return this._calendar.newDate((a==null?this:a),b,c)},year:function(a){return(arguments.length===0?this._year:this.set(a,'y'))},month:function(a){return(arguments.length===0?this._month:this.set(a,'m'))},day:function(a){return(arguments.length===0?this._day:this.set(a,'d'))},date:function(a,b,c){if(!this._calendar.isValid(a,b,c)){throw($.calendars.local.invalidDate||$.calendars.regionalOptions[''].invalidDate).replace(/\{0\}/,this._calendar.local.name)}this._year=a;this._month=b;this._day=c;return this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(a,b){return this._calendar.add(this,a,b)},set:function(a,b){return this._calendar.set(this,a,b)},compareTo:function(a){if(this._calendar.name!==a._calendar.name){throw($.calendars.local.differentCalendars||$.calendars.regionalOptions[''].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,a._calendar.local.name)}var c=(this._year!==a._year?this._year-a._year:this._month!==a._month?this.monthOfYear()-a.monthOfYear():this._day-a._day);return(c===0?0:(c<0?-1:+1))},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(a){return this._calendar.fromJD(a)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(a){return this._calendar.fromJSDate(a)},toString:function(){return(this.year()<0?'-':'')+pad(Math.abs(this.year()),4)+'-'+pad(this.month(),2)+'-'+pad(this.day(),2)}});function BaseCalendar(){this.shortYearCutoff='+10'}$.extend(BaseCalendar.prototype,{_validateLevel:0,newDate:function(a,b,c){if(a==null){return this.today()}if(a.year){this._validate(a,b,c,$.calendars.local.invalidDate||$.calendars.regionalOptions[''].invalidDate);c=a.day();b=a.month();a=a.year()}return new CDate(this,a,b,c)},today:function(){return this.fromJSDate(new Date())},epoch:function(a){var b=this._validate(a,this.minMonth,this.minDay,$.calendars.local.invalidYear||$.calendars.regionalOptions[''].invalidYear);return(b.year()<0?this.local.epochs[0]:this.local.epochs[1])},formatYear:function(a){var b=this._validate(a,this.minMonth,this.minDay,$.calendars.local.invalidYear||$.calendars.regionalOptions[''].invalidYear);return(b.year()<0?'-':'')+pad(Math.abs(b.year()),4)},monthsInYear:function(a){this._validate(a,this.minMonth,this.minDay,$.calendars.local.invalidYear||$.calendars.regionalOptions[''].invalidYear);return 12},monthOfYear:function(a,b){var c=this._validate(a,b,this.minDay,$.calendars.local.invalidMonth||$.calendars.regionalOptions[''].invalidMonth);return(c.month()+this.monthsInYear(c)-this.firstMonth)%this.monthsInYear(c)+this.minMonth},fromMonthOfYear:function(a,b){var m=(b+this.firstMonth-2*this.minMonth)%this.monthsInYear(a)+this.minMonth;this._validate(a,m,this.minDay,$.calendars.local.invalidMonth||$.calendars.regionalOptions[''].invalidMonth);return m},daysInYear:function(a){var b=this._validate(a,this.minMonth,this.minDay,$.calendars.local.invalidYear||$.calendars.regionalOptions[''].invalidYear);return(this.leapYear(b)?366:365)},dayOfYear:function(a,b,c){var d=this._validate(a,b,c,$.calendars.local.invalidDate||$.calendars.regionalOptions[''].invalidDate);return d.toJD()-this.newDate(d.year(),this.fromMonthOfYear(d.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(a,b,c){var d=this._validate(a,b,c,$.calendars.local.invalidDate||$.calendars.regionalOptions[''].invalidDate);return(Math.floor(this.toJD(d))+2)%this.daysInWeek()},extraInfo:function(a,b,c){this._validate(a,b,c,$.calendars.local.invalidDate||$.calendars.regionalOptions[''].invalidDate);return{}},add:function(a,b,c){this._validate(a,this.minMonth,this.minDay,$.calendars.local.invalidDate||$.calendars.regionalOptions[''].invalidDate);return this._correctAdd(a,this._add(a,b,c),b,c)},_add:function(c,f,g){this._validateLevel++;if(g==='d'||g==='w'){var h=c.toJD()+f*(g==='w'?this.daysInWeek():1);var d=c.calendar().fromJD(h);this._validateLevel--;return[d.year(),d.month(),d.day()]}try{var y=c.year()+(g==='y'?f:0);var m=c.monthOfYear()+(g==='m'?f:0);var d=c.day();var i=function(a){while(mb-1+a.minMonth){y++;m-=b;b=a.monthsInYear(y)}};if(g==='y'){if(c.month()!==this.fromMonthOfYear(y,m)){m=this.newDate(y,c.month(),this.minDay).monthOfYear()}m=Math.min(m,this.monthsInYear(y));d=Math.min(d,this.daysInMonth(y,this.fromMonthOfYear(y,m)))}else if(g==='m'){i(this);d=Math.min(d,this.daysInMonth(y,this.fromMonthOfYear(y,m)))}var j=[y,this.fromMonthOfYear(y,m),d];this._validateLevel--;return j}catch(e){this._validateLevel--;throw e;}},_correctAdd:function(a,b,c,d){if(!this.hasYearZero&&(d==='y'||d==='m')){if(b[0]===0||(a.year()>0)!==(b[0]>0)){var e={y:[1,1,'y'],m:[1,this.monthsInYear(-1),'m'],w:[this.daysInWeek(),this.daysInYear(-1),'d'],d:[1,this.daysInYear(-1),'d']}[d];var f=(c<0?-1:+1);b=this._add(a,c*e[0]+f*e[1],e[2])}}return a.date(b[0],b[1],b[2])},set:function(a,b,c){this._validate(a,this.minMonth,this.minDay,$.calendars.local.invalidDate||$.calendars.regionalOptions[''].invalidDate);var y=(c==='y'?b:a.year());var m=(c==='m'?b:a.month());var d=(c==='d'?b:a.day());if(c==='y'||c==='m'){d=Math.min(d,this.daysInMonth(y,m))}return a.date(y,m,d)},isValid:function(a,b,c){this._validateLevel++;var d=(this.hasYearZero||a!==0);if(d){var e=this.newDate(a,b,this.minDay);d=(b>=this.minMonth&&b-this.minMonth=this.minDay&&c-this.minDay13.5?13:1);var i=c-(h>2.5?4716:4715);if(i<=0){i--}return this.newDate(i,h,g)},toJSDate:function(a,b,c){var d=this._validate(a,b,c,$.calendars.local.invalidDate||$.calendars.regionalOptions[''].invalidDate);var e=new Date(d.year(),d.month()-1,d.day());e.setHours(0);e.setMinutes(0);e.setSeconds(0);e.setMilliseconds(0);e.setHours(e.getHours()>12?e.getHours()+2:0);return e},fromJSDate:function(a){return this.newDate(a.getFullYear(),a.getMonth()+1,a.getDate())}});$.calendars=new Calendars();$.calendars.cdate=CDate;$.calendars.baseCalendar=BaseCalendar;$.calendars.calendars.gregorian=GregorianCalendar})(jQuery);(function($){$.extend($.calendars.regionalOptions[''],{invalidArguments:'Invalid arguments',invalidFormat:'Cannot format a date from another calendar',missingNumberAt:'Missing number at position {0}',unknownNameAt:'Unknown name at position {0}',unexpectedLiteralAt:'Unexpected literal at position {0}',unexpectedText:'Additional text found at end'});$.calendars.local=$.calendars.regionalOptions[''];$.extend($.calendars.cdate.prototype,{formatDate:function(a,b){if(typeof a!=='string'){b=a;a=''}return this._calendar.formatDate(a||'',this,b)}});$.extend($.calendars.baseCalendar.prototype,{UNIX_EPOCH:$.calendars.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:24*60*60,TICKS_EPOCH:$.calendars.instance().jdEpoch,TICKS_PER_DAY:24*60*60*10000000,ATOM:'yyyy-mm-dd',COOKIE:'D, dd M yyyy',FULL:'DD, MM d, yyyy',ISO_8601:'yyyy-mm-dd',JULIAN:'J',RFC_822:'D, d M yy',RFC_850:'DD, dd-M-yy',RFC_1036:'D, d M yy',RFC_1123:'D, d M yyyy',RFC_2822:'D, d M yyyy',RSS:'D, d M yy',TICKS:'!',TIMESTAMP:'@',W3C:'yyyy-mm-dd',formatDate:function(f,g,h){if(typeof f!=='string'){h=g;g=f;f=''}if(!g){return''}if(g.calendar()!==this){throw $.calendars.local.invalidFormat||$.calendars.regionalOptions[''].invalidFormat;}f=f||this.local.dateFormat;h=h||{};var i=h.dayNamesShort||this.local.dayNamesShort;var j=h.dayNames||this.local.dayNames;var k=h.monthNamesShort||this.local.monthNamesShort;var l=h.monthNames||this.local.monthNames;var m=h.calculateWeek||this.local.calculateWeek;var n=function(a,b){var c=1;while(u+c1};var o=function(a,b,c,d){var e=''+b;if(n(a,d)){while(e.length1};var x=function(a,b){var c=w(a,b);var d=[2,3,c?4:2,c?4:2,10,11,20]['oyYJ@!'.indexOf(a)+1];var e=new RegExp('^-?\\d{1,'+d+'}');var f=h.substring(B).match(e);if(!f){throw($.calendars.local.missingNumberAt||$.calendars.regionalOptions[''].missingNumberAt).replace(/\{0\}/,B)}B+=f[0].length;return parseInt(f[0],10)};var y=this;var z=function(a,b,c,d){var e=(w(a,d)?c:b);for(var i=0;i-1){r=1;s=t;for(var E=this.daysInMonth(q,r);s>E;E=this.daysInMonth(q,r)){r++;s-=E}}return(p>-1?this.fromJD(p):this.newDate(q,r,s))},determineDate:function(f,g,h,i,j){if(h&&typeof h!=='object'){j=i;i=h;h=null}if(typeof i!=='string'){j=i;i=''}var k=this;var l=function(a){try{return k.parseDate(i,a,j)}catch(e){}a=a.toLowerCase();var b=(a.match(/^c/)&&h?h.newDate():null)||k.today();var c=/([+-]?[0-9]+)\s*(d|w|m|y)?/g;var d=c.exec(a);while(d){b.add(parseInt(d[1],10),d[2]||'d');d=c.exec(a)}return b};g=(g?g.newDate():null);f=(f==null?g:(typeof f==='string'?l(f):(typeof f==='number'?(isNaN(f)||f===Infinity||f===-Infinity?g:k.today().add(f,'d')):k.newDate(f))));return f}})})(jQuery);(function($){var H='calendarsPicker';$.JQPlugin.createPlugin({name:H,defaultRenderer:{picker:'
'+'
{link:prev}{link:today}{link:next}
{months}'+'{popup:start}
{link:clear}{link:close}
{popup:end}'+'
',monthRow:'
{months}
',month:'
{monthHeader}
'+'{weekHeader}{weeks}
',weekHeader:'{days}',dayHeader:'{day}',week:'{days}',day:'{day}',monthSelector:'.calendars-month',daySelector:'td',rtlClass:'calendars-rtl',multiClass:'calendars-multi',defaultClass:'',selectedClass:'calendars-selected',highlightedClass:'calendars-highlight',todayClass:'calendars-today',otherMonthClass:'calendars-other-month',weekendClass:'calendars-weekend',commandClass:'calendars-cmd',commandButtonClass:'',commandLinkClass:'',disabledClass:'calendars-disabled'},commands:{prev:{text:'prevText',status:'prevStatus',keystroke:{keyCode:33},enabled:function(a){var b=a.curMinDate();return(!b||a.drawDate.newDate().add(1-a.options.monthsToStep-a.options.monthsOffset,'m').day(a.options.calendar.minDay).add(-1,'d').compareTo(b)!==-1)},date:function(a){return a.drawDate.newDate().add(-a.options.monthsToStep-a.options.monthsOffset,'m').day(a.options.calendar.minDay)},action:function(a){I.changeMonth(this,-a.options.monthsToStep)}},prevJump:{text:'prevJumpText',status:'prevJumpStatus',keystroke:{keyCode:33,ctrlKey:true},enabled:function(a){var b=a.curMinDate();return(!b||a.drawDate.newDate().add(1-a.options.monthsToJump-a.options.monthsOffset,'m').day(a.options.calendar.minDay).add(-1,'d').compareTo(b)!==-1)},date:function(a){return a.drawDate.newDate().add(-a.options.monthsToJump-a.options.monthsOffset,'m').day(a.options.calendar.minDay)},action:function(a){I.changeMonth(this,-a.options.monthsToJump)}},next:{text:'nextText',status:'nextStatus',keystroke:{keyCode:34},enabled:function(a){var b=a.get('maxDate');return(!b||a.drawDate.newDate().add(a.options.monthsToStep-a.options.monthsOffset,'m').day(a.options.calendar.minDay).compareTo(b)!==+1)},date:function(a){return a.drawDate.newDate().add(a.options.monthsToStep-a.options.monthsOffset,'m').day(a.options.calendar.minDay)},action:function(a){I.changeMonth(this,a.options.monthsToStep)}},nextJump:{text:'nextJumpText',status:'nextJumpStatus',keystroke:{keyCode:34,ctrlKey:true},enabled:function(a){var b=a.get('maxDate');return(!b||a.drawDate.newDate().add(a.options.monthsToJump-a.options.monthsOffset,'m').day(a.options.calendar.minDay).compareTo(b)!==+1)},date:function(a){return a.drawDate.newDate().add(a.options.monthsToJump-a.options.monthsOffset,'m').day(a.options.calendar.minDay)},action:function(a){I.changeMonth(this,a.options.monthsToJump)}},current:{text:'currentText',status:'currentStatus',keystroke:{keyCode:36,ctrlKey:true},enabled:function(a){var b=a.curMinDate();var c=a.get('maxDate');var d=a.selectedDates[0]||a.options.calendar.today();return(!b||d.compareTo(b)!==-1)&&(!c||d.compareTo(c)!==+1)},date:function(a){return a.selectedDates[0]||a.options.calendar.today()},action:function(a){var b=a.selectedDates[0]||a.options.calendar.today();I.showMonth(this,b.year(),b.month())}},today:{text:'todayText',status:'todayStatus',keystroke:{keyCode:36,ctrlKey:true},enabled:function(a){var b=a.curMinDate();var c=a.get('maxDate');return(!b||a.options.calendar.today().compareTo(b)!==-1)&&(!c||a.options.calendar.today().compareTo(c)!==+1)},date:function(a){return a.options.calendar.today()},action:function(a){I.showMonth(this)}},clear:{text:'clearText',status:'clearStatus',keystroke:{keyCode:35,ctrlKey:true},enabled:function(a){return true},date:function(a){return null},action:function(a){I.clear(this)}},close:{text:'closeText',status:'closeStatus',keystroke:{keyCode:27},enabled:function(a){return true},date:function(a){return null},action:function(a){I.hide(this)}},prevWeek:{text:'prevWeekText',status:'prevWeekStatus',keystroke:{keyCode:38,ctrlKey:true},enabled:function(a){var b=a.curMinDate();return(!b||a.drawDate.newDate().add(-a.options.calendar.daysInWeek(),'d').compareTo(b)!==-1)},date:function(a){return a.drawDate.newDate().add(-a.options.calendar.daysInWeek(),'d')},action:function(a){I.changeDay(this,-a.options.calendar.daysInWeek())}},prevDay:{text:'prevDayText',status:'prevDayStatus',keystroke:{keyCode:37,ctrlKey:true},enabled:function(a){var b=a.curMinDate();return(!b||a.drawDate.newDate().add(-1,'d').compareTo(b)!==-1)},date:function(a){return a.drawDate.newDate().add(-1,'d')},action:function(a){I.changeDay(this,-1)}},nextDay:{text:'nextDayText',status:'nextDayStatus',keystroke:{keyCode:39,ctrlKey:true},enabled:function(a){var b=a.get('maxDate');return(!b||a.drawDate.newDate().add(1,'d').compareTo(b)!==+1)},date:function(a){return a.drawDate.newDate().add(1,'d')},action:function(a){I.changeDay(this,1)}},nextWeek:{text:'nextWeekText',status:'nextWeekStatus',keystroke:{keyCode:40,ctrlKey:true},enabled:function(a){var b=a.get('maxDate');return(!b||a.drawDate.newDate().add(a.options.calendar.daysInWeek(),'d').compareTo(b)!==+1)},date:function(a){return a.drawDate.newDate().add(a.options.calendar.daysInWeek(),'d')},action:function(a){I.changeDay(this,a.options.calendar.daysInWeek())}}},defaultOptions:{calendar:$.calendars.instance(),pickerClass:'',showOnFocus:true,showTrigger:null,showAnim:'show',showOptions:{},showSpeed:'normal',popupContainer:null,alignment:'bottom',fixedWeeks:false,firstDay:null,calculateWeek:null,localNumbers:false,monthsToShow:1,monthsOffset:0,monthsToStep:1,monthsToJump:12,useMouseWheel:true,changeMonth:true,yearRange:'c-10:c+10',showOtherMonths:false,selectOtherMonths:false,defaultDate:null,selectDefaultDate:false,minDate:null,maxDate:null,dateFormat:null,autoSize:false,rangeSelect:false,rangeSeparator:' - ',multiSelect:0,multiSeparator:',',onDate:null,onShow:null,onChangeMonthYear:null,onSelect:null,onClose:null,altField:null,altFormat:null,constrainInput:true,commandsAsDateFormat:false,commands:{}},regionalOptions:{'':{renderer:{},prevText:'<Prev',prevStatus:'Show the previous month',prevJumpText:'<<',prevJumpStatus:'Show the previous year',nextText:'Next>',nextStatus:'Show the next month',nextJumpText:'>>',nextJumpStatus:'Show the next year',currentText:'Current',currentStatus:'Show the current month',todayText:'Today',todayStatus:'Show today\'s month',clearText:'Clear',clearStatus:'Clear all the dates',closeText:'Close',closeStatus:'Close the datepicker',yearStatus:'Change the year',earlierText:'  ▲',laterText:'  ▼',monthStatus:'Change the month',weekText:'Wk',weekStatus:'Week of the year',dayStatus:'Select DD, M d, yyyy',defaultStatus:'Select a date',isRTL:false}},_getters:['getDate','isDisabled','isSelectable','retrieveDate'],_disabled:[],_popupClass:'calendars-popup',_triggerClass:'calendars-trigger',_disableClass:'calendars-disable',_monthYearClass:'calendars-month-year',_curMonthClass:'calendars-month-',_anyYearClass:'calendars-any-year',_curDoWClass:'calendars-dow-',_init:function(){this.defaultOptions.commands=this.commands;this.regionalOptions[''].renderer=this.defaultRenderer;this._super()},_instSettings:function(b,c){return{selectedDates:[],drawDate:null,pickingRange:false,inline:($.inArray(b[0].nodeName.toLowerCase(),['div','span'])>-1),get:function(a){if($.inArray(a,['defaultDate','minDate','maxDate'])>-1){return this.options.calendar.determineDate(this.options[a],null,this.selectedDates[0],this.get('dateFormat'),this.getConfig())}if(a==='dateFormat'){return this.options.dateFormat||this.options.calendar.local.dateFormat}return this.options[a]},curMinDate:function(){return(this.pickingRange?this.selectedDates[0]:this.get('minDate'))},getConfig:function(){return{dayNamesShort:this.options.dayNamesShort,dayNames:this.options.dayNames,monthNamesShort:this.options.monthNamesShort,monthNames:this.options.monthNames,calculateWeek:this.options.calculateWeek,shortYearCutoff:this.options.shortYearCutoff}}}},_postAttach:function(a,b){if(b.inline){b.drawDate=I._checkMinMax((b.selectedDates[0]||b.get('defaultDate')||b.options.calendar.today()).newDate(),b);b.prevDate=b.drawDate.newDate();this._update(a[0]);if($.fn.mousewheel){a.mousewheel(this._doMouseWheel)}}else{this._attachments(a,b);a.on('keydown.'+b.name,this._keyDown).on('keypress.'+b.name,this._keyPress).on('keyup.'+b.name,this._keyUp);if(a.attr('disabled')){this.disable(a[0])}}},_optionsChanged:function(b,c,d){if(d.calendar&&d.calendar!==c.options.calendar){var e=function(a){return(typeof c.options[a]==='object'?null:c.options[a])};d=$.extend({defaultDate:e('defaultDate'),minDate:e('minDate'),maxDate:e('maxDate')},d);c.selectedDates=[];c.drawDate=null}var f=c.selectedDates;$.extend(c.options,d);this.setDate(b[0],f,null,false,true);c.pickingRange=false;var g=c.options.calendar;var h=c.get('defaultDate');c.drawDate=this._checkMinMax((h?h:c.drawDate)||h||g.today(),c).newDate();if(!c.inline){this._attachments(b,c)}if(c.inline||c.div){this._update(b[0])}},_attachments:function(a,b){a.off('focus.'+b.name);if(b.options.showOnFocus){a.on('focus.'+b.name,this.show)}if(b.trigger){b.trigger.remove()}var c=b.options.showTrigger;b.trigger=(!c?$([]):$(c).clone().removeAttr('id').addClass(this._triggerClass)[b.options.isRTL?'insertBefore':'insertAfter'](a).click(function(){if(!I.isDisabled(a[0])){I[I.curInst===b?'hide':'show'](a[0])}}));this._autoSize(a,b);var d=this._extractDates(b,a.val());if(d){this.setDate(a[0],d,null,true)}var e=b.get('defaultDate');if(b.options.selectDefaultDate&&e&&b.selectedDates.length===0){this.setDate(a[0],(e||b.options.calendar.today()).newDate())}},_autoSize:function(d,e){if(e.options.autoSize&&!e.inline){var f=e.options.calendar;var g=f.newDate(2009,10,20);var h=e.get('dateFormat');if(h.match(/[DM]/)){var j=function(a){var b=0;var c=0;for(var i=0;ib){b=a[i].length;c=i}}return c};g.month(j(f.local[h.match(/MM/)?'monthNames':'monthNamesShort'])+1);g.day(j(f.local[h.match(/DD/)?'dayNames':'dayNamesShort'])+20-g.dayOfWeek())}e.elem.attr('size',g.formatDate(h,{localNumbers:e.options.localnumbers}).length)}},_preDestroy:function(a,b){if(b.trigger){b.trigger.remove()}a.empty().off('.'+b.name);if(b.inline&&$.fn.mousewheel){a.unmousewheel()}if(!b.inline&&b.options.autoSize){a.removeAttr('size')}},multipleEvents:function(b){var c=arguments;return function(a){for(var i=0;i').find('button,select').prop('disabled',true).end().find('a').removeAttr('href')}else{b.prop('disabled',true);c.trigger.filter('button.'+this._triggerClass).prop('disabled',true).end().filter('img.'+this._triggerClass).css({opacity:'0.5',cursor:'default'})}this._disabled=$.map(this._disabled,function(a){return(a===b[0]?null:a)});this._disabled.push(b[0])},isDisabled:function(a){return(a&&$.inArray(a,this._disabled)>-1)},show:function(a){a=$(a.target||a);var b=I._getInst(a);if(I.curInst===b){return}if(I.curInst){I.hide(I.curInst,true)}if(!$.isEmptyObject(b)){b.lastVal=null;b.selectedDates=I._extractDates(b,a.val());b.pickingRange=false;b.drawDate=I._checkMinMax((b.selectedDates[0]||b.get('defaultDate')||b.options.calendar.today()).newDate(),b);b.prevDate=b.drawDate.newDate();I.curInst=b;I._update(a[0],true);var c=I._checkOffset(b);b.div.css({left:c.left,top:c.top});var d=b.options.showAnim;var e=b.options.showSpeed;e=(e==='normal'&&$.ui&&parseInt($.ui.version.substring(2))>=8?'_default':e);if($.effects&&($.effects[d]||($.effects.effect&&$.effects.effect[d]))){var f=b.div.data();for(var g in f){if(g.match(/^ec\.storage\./)){f[g]=b._mainDiv.css(g.replace(/ec\.storage\./,''))}}b.div.data(f).show(d,b.options.showOptions,e)}else{b.div[d||'show'](d?e:0)}}},_extractDates:function(a,b){if(b===a.lastVal){return}a.lastVal=b;b=b.split(a.options.multiSelect?a.options.multiSeparator:(a.options.rangeSelect?a.options.rangeSeparator:'\x00'));var c=[];for(var i=0;i').addClass(this._popupClass).css({display:(b?'none':'static'),position:'absolute',left:a.offset().left,top:a.offset().top+a.outerHeight()}).appendTo($(c.options.popupContainer||'body'));if($.fn.mousewheel){c.div.mousewheel(this._doMouseWheel)}}c.div.html(this._generateContent(a[0],c));a.focus()}}},_updateInput:function(a,b){var c=this._getInst(a);if(!$.isEmptyObject(c)){var d='';var e='';var f=(c.options.multiSelect?c.options.multiSeparator:c.options.rangeSeparator);var g=c.options.calendar;var h=c.get('dateFormat');var j=c.options.altFormat||h;var k={localNumbers:c.options.localNumbers};for(var i=0;i0?f:'')+g.formatDate(h,c.selectedDates[i],k));e+=(i>0?f:'')+g.formatDate(j,c.selectedDates[i],k)}if(!c.inline&&!b){$(a).val(d)}$(c.options.altField).val(e);if($.isFunction(c.options.onSelect)&&!b&&!c.inSelect){c.inSelect=true;c.options.onSelect.apply(a,[c.selectedDates]);c.inSelect=false}}},_getBorders:function(b){var c=function(a){return{thin:1,medium:3,thick:5}[a]||a};return[parseFloat(c(b.css('border-left-width'))),parseFloat(c(b.css('border-top-width')))]},_checkOffset:function(a){var b=(a.elem.is(':hidden')&&a.trigger?a.trigger:a.elem);var c=b.offset();var d=$(window).width();var e=$(window).height();if(d===0){return c}var f=false;$(a.elem).parents().each(function(){f|=$(this).css('position')==='fixed';return!f});var g=document.documentElement.scrollLeft||document.body.scrollLeft;var h=document.documentElement.scrollTop||document.body.scrollTop;var i=c.top-(f?h:0)-a.div.outerHeight();var j=c.top-(f?h:0)+b.outerHeight();var k=c.left-(f?g:0);var l=c.left-(f?g:0)+b.outerWidth()-a.div.outerWidth();var m=(c.left-g+a.div.outerWidth())>d;var n=(c.top-h+a.elem.outerHeight()+a.div.outerHeight())>e;a.div.css('position',f?'fixed':'absolute');var o=a.options.alignment;if(o==='topLeft'){c={left:k,top:i}}else if(o==='topRight'){c={left:l,top:i}}else if(o==='bottomLeft'){c={left:k,top:j}}else if(o==='bottomRight'){c={left:l,top:j}}else if(o==='top'){c={left:(a.options.isRTL||m?l:k),top:i}}else{c={left:(a.options.isRTL||m?l:k),top:(n?i:j)}}c.left=Math.max((f?0:g),c.left);c.top=Math.max((f?0:h),c.top);return c},_checkExternalClick:function(a){if(!I.curInst){return}var b=$(a.target);if(b.closest('.'+I._popupClass+',.'+I._triggerClass).length===0&&!b.hasClass(I._getMarker())){I.hide(I.curInst)}},hide:function(a,b){if(!a){return}var c=this._getInst(a);if($.isEmptyObject(c)){c=a}if(c&&c===I.curInst){var d=(b?'':c.options.showAnim);var e=c.options.showSpeed;e=(e==='normal'&&$.ui&&parseInt($.ui.version.substring(2))>=8?'_default':e);var f=function(){if(!c.div){return}c.div.remove();c.div=null;I.curInst=null;if($.isFunction(c.options.onClose)){c.options.onClose.apply(a,[c.selectedDates])}};c.div.stop();if($.effects&&($.effects[d]||($.effects.effect&&$.effects.effect[d]))){c.div.hide(d,c.options.showOptions,e,f)}else{var g=(d==='slideDown'?'slideUp':(d==='fadeIn'?'fadeOut':'hide'));c.div[g]((d?e:''),f)}if(!d){f()}}},_keyDown:function(a){var b=(a.data&&a.data.elem)||a.target;var c=I._getInst(b);var d=false;if(c.inline||c.div){if(a.keyCode===9){I.hide(b)}else if(a.keyCode===13){I.selectDate(b,$('a.'+c.options.renderer.highlightedClass,c.div)[0]);d=true}else{var e=c.options.commands;for(var f in e){var g=e[f];if(g.keystroke.keyCode===a.keyCode&&!!g.keystroke.ctrlKey===!!(a.ctrlKey||a.metaKey)&&!!g.keystroke.altKey===a.altKey&&!!g.keystroke.shiftKey===a.shiftKey){I.performAction(b,f);d=true;break}}}}else{var g=c.options.commands.current;if(g.keystroke.keyCode===a.keyCode&&!!g.keystroke.ctrlKey===!!(a.ctrlKey||a.metaKey)&&!!g.keystroke.altKey===a.altKey&&!!g.keystroke.shiftKey===a.shiftKey){I.show(b);d=true}}c.ctrlKey=((a.keyCode<48&&a.keyCode!==32)||a.ctrlKey||a.metaKey);if(d){a.preventDefault();a.stopPropagation()}return!d},_keyPress:function(a){var b=I._getInst((a.data&&a.data.elem)||a.target);if(!$.isEmptyObject(b)&&b.options.constrainInput){var c=String.fromCharCode(a.keyCode||a.charCode);var d=I._allowedChars(b);return(a.metaKey||b.ctrlKey||c<' '||!d||d.indexOf(c)>-1)}return true},_allowedChars:function(a){var b=(a.options.multiSelect?a.options.multiSeparator:(a.options.rangeSelect?a.options.rangeSeparator:''));var c=false;var d=false;var e=a.get('dateFormat');for(var i=0;i0){I.setDate(b,d,null,true)}}catch(a){}}return true},_doMouseWheel:function(a,b){var c=(I.curInst&&I.curInst.elem[0])||$(a.target).closest('.'+I._getMarker())[0];if(I.isDisabled(c)){return}var d=I._getInst(c);if(d.options.useMouseWheel){b=(b<0?-1:+1);I.changeMonth(c,-d.options[a.ctrlKey?'monthsToJump':'monthsToStep']*b)}a.preventDefault()},clear:function(a){var b=this._getInst(a);if(!$.isEmptyObject(b)){b.selectedDates=[];this.hide(a);var c=b.get('defaultDate');if(b.options.selectDefaultDate&&c){this.setDate(a,(c||b.options.calendar.today()).newDate())}else{this._updateInput(a)}}},getDate:function(a){var b=this._getInst(a);return(!$.isEmptyObject(b)?b.selectedDates:[])},setDate:function(a,b,c,d,e){var f=this._getInst(a);if(!$.isEmptyObject(f)){if(!$.isArray(b)){b=[b];if(c){b.push(c)}}var g=f.get('minDate');var h=f.get('maxDate');var k=f.selectedDates[0];f.selectedDates=[];for(var i=0;i=d.toJD())&&(!e||b.toJD()<=e.toJD())},performAction:function(a,b){var c=this._getInst(a);if(!$.isEmptyObject(c)&&!this.isDisabled(a)){var d=c.options.commands;if(d[b]&&d[b].enabled.apply(a,[c])){d[b].action.apply(a,[c])}}},showMonth:function(a,b,c,d){var e=this._getInst(a);if(!$.isEmptyObject(e)&&(d!=null||(e.drawDate.year()!==b||e.drawDate.month()!==c))){e.prevDate=e.drawDate.newDate();var f=e.options.calendar;var g=this._checkMinMax((b!=null?f.newDate(b,c,1):f.today()),e);e.drawDate.date(g.year(),g.month(),(d!=null?d:Math.min(e.drawDate.day(),f.daysInMonth(g.year(),g.month()))));this._update(a)}},changeMonth:function(a,b){var c=this._getInst(a);if(!$.isEmptyObject(c)){var d=c.drawDate.newDate().add(b,'m');this.showMonth(a,d.year(),d.month())}},changeDay:function(a,b){var c=this._getInst(a);if(!$.isEmptyObject(c)){var d=c.drawDate.newDate().add(b,'d');this.showMonth(a,d.year(),d.month(),d.day())}},_checkMinMax:function(a,b){var c=b.get('minDate');var d=b.get('maxDate');a=(c&&a.compareTo(c)===-1?c.newDate():a);a=(d&&a.compareTo(d)===+1?d.newDate():a);return a},retrieveDate:function(a,b){var c=this._getInst(a);return($.isEmptyObject(c)?null:c.options.calendar.fromJD(parseFloat(b.className.replace(/^.*jd(\d+\.5).*$/,'$1'))))},selectDate:function(a,b){var c=this._getInst(a);if(!$.isEmptyObject(c)&&!this.isDisabled(a)){var d=this.retrieveDate(a,b);if(c.options.multiSelect){var e=false;for(var i=0;i'+(g?g.formatDate(i.options[f.text],{localNumbers:i.options.localNumbers}):i.options[f.text])+'')};for(var r in i.options.commands){q('button','button type="button"','button',r,i.options.renderer.commandButtonClass);q('link','a href="javascript:void(0)"','a',r,i.options.renderer.commandLinkClass)}p=$(p);if(j[1]>1){var s=0;$(i.options.renderer.monthSelector,p).each(function(){var a=++s%j[1];$(this).addClass(a===1?'first':(a===0?'last':''))})}var t=this;function removeHighlight(){(i.inline?$(this).closest('.'+t._getMarker()):i.div).find(i.options.renderer.daySelector+' a').removeClass(i.options.renderer.highlightedClass)}p.find(i.options.renderer.daySelector+' a').hover(function(){removeHighlight.apply(this);$(this).addClass(i.options.renderer.highlightedClass)},removeHighlight).click(function(){t.selectDate(h,this)}).end().find('select.'+this._monthYearClass+':not(.'+this._anyYearClass+')').change(function(){var a=$(this).val().split('/');t.showMonth(h,parseInt(a[1],10),parseInt(a[0],10))}).end().find('select.'+this._anyYearClass).click(function(){$(this).css('visibility','hidden').next('input').css({left:this.offsetLeft,top:this.offsetTop,width:this.offsetWidth,height:this.offsetHeight}).show().focus()}).end().find('input.'+t._monthYearClass).change(function(){try{var a=parseInt($(this).val(),10);a=(isNaN(a)?i.drawDate.year():a);t.showMonth(h,a,i.drawDate.month(),i.drawDate.day())}catch(e){alert(e)}}).keydown(function(a){if(a.keyCode===13){$(a.elem).change()}else if(a.keyCode===27){$(a.elem).hide().prev('select').css('visibility','visible');i.elem.focus()}});var u={elem:i.elem[0]};p.keydown(u,this._keyDown).keypress(u,this._keyPress).keyup(u,this._keyUp);p.find('.'+i.options.renderer.commandClass).click(function(){if(!$(this).hasClass(i.options.renderer.disabledClass)){var a=this.className.replace(new RegExp('^.*'+i.options.renderer.commandClass+'-([^ ]+).*$'),'$1');I.performAction(h,a)}});if(i.options.isRTL){p.addClass(i.options.renderer.rtlClass)}if(j[0]*j[1]>1){p.addClass(i.options.renderer.multiClass)}if(i.options.pickerClass){p.addClass(i.options.pickerClass)}$('body').append(p);var v=0;p.find(i.options.renderer.monthSelector).each(function(){v+=$(this).outerWidth()});p.width(v/j[0]);if($.isFunction(i.options.onShow)){i.options.onShow.apply(h,[p,i.options.calendar,i])}return p},_generateMonth:function(b,c,d,e,f,g,h){var j=f.daysInMonth(d,e);var k=c.options.monthsToShow;k=($.isArray(k)?k:[1,k]);var l=c.options.fixedWeeks||(k[0]*k[1]>1);var m=c.options.firstDay;m=(m==null?f.local.firstDay:m);var n=(f.dayOfWeek(d,e,f.minDay)-m+f.daysInWeek())%f.daysInWeek();var o=(l?6:Math.ceil((n+j)/f.daysInWeek()));var p=c.options.selectOtherMonths&&c.options.showOtherMonths;var q=(c.pickingRange?c.selectedDates[0]:c.get('minDate'));var r=c.get('maxDate');var s=g.week.indexOf('{weekOfYear}')>-1;var t=f.today();var u=f.newDate(d,e,f.minDay);u.add(-n-(l&&(u.dayOfWeek()===m||u.daysInMonth()'+($.isFunction(c.options.calculateWeek)?c.options.calculateWeek(u):u.weekOfYear())+'');var A='';for(var B=0;B0){C=(u.compareTo(c.selectedDates[0])!==-1&&u.compareTo(c.selectedDates[1])!==+1)}else{for(var i=0;i'+(c.options.showOtherMonths||u.month()===e?D.content||w(u.day()):' ')+(E?'':''));u.add(1,'d');v++}x+=this._prepare(g.week,c).replace(/\{days\}/g,A).replace(/\{weekOfYear\}/g,z)}var F=this._prepare(g.month,c).match(/\{monthHeader(:[^\}]+)?\}/);F=(F[0].length<=13?'MM yyyy':F[0].substring(13,F[0].length-1));F=(h?this._generateMonthSelection(c,d,e,q,r,F,f,g):f.formatDate(F,f.newDate(d,e,f.minDay),{localNumbers:c.options.localNumbers}));var G=this._prepare(g.weekHeader,c).replace(/\{days\}/g,this._generateDayHeaders(c,f,g));return this._prepare(g.month,c).replace(/\{monthHeader(:[^\}]+)?\}/g,F).replace(/\{weekHeader\}/g,G).replace(/\{weeks\}/g,x)},_generateDayHeaders:function(a,b,c){var d=a.options.firstDay;d=(d==null?b.local.firstDay:d);var e='';for(var f=0;f'+b.local.dayNamesMin[g]+'')}return e},_generateMonthSelection:function(b,c,d,e,f,g,h){if(!b.options.changeMonth){return h.formatDate(g,h.newDate(c,d,1),{localNumbers:b.options.localNumbers})}var i=h.local['monthNames'+(g.match(/mm/i)?'':'Short')];var j=g.replace(/m+/i,'\\x2E').replace(/y+/i,'\\x2F');var k='';j=j.replace(/\\x2E/,k);var n=b.options.yearRange;if(n==='any'){k=''+''}else{n=n.split(':');var o=h.today().year();var p=(n[0].match('c[+-].*')?c+parseInt(n[0].substring(1),10):((n[0].match('[+-].*')?o:0)+parseInt(n[0],10)));var q=(n[1].match('c[+-].*')?c+parseInt(n[1].substring(1),10):((n[1].match('[+-].*')?o:0)+parseInt(n[1],10)));k=''; + var maxMonth = calendar.monthsInYear(year) + calendar.minMonth; + for (var m = calendar.minMonth; m < maxMonth; m++) { + if ((!minDate || calendar.newDate(year, m, + calendar.daysInMonth(year, m) - 1 + calendar.minDay). + compareTo(minDate) !== -1) && + (!maxDate || calendar.newDate(year, m, calendar.minDay). + compareTo(maxDate) !== +1)) { + selector += ''; + } + } + selector += ''; + html = html.replace(/\\x2E/, selector); + // Years + var yearRange = inst.options.yearRange; + if (yearRange === 'any') { + selector = '' + + ''; + } + else { + yearRange = yearRange.split(':'); + var todayYear = calendar.today().year(); + var start = (yearRange[0].match('c[+-].*') ? year + parseInt(yearRange[0].substring(1), 10) : + ((yearRange[0].match('[+-].*') ? todayYear : 0) + parseInt(yearRange[0], 10))); + var end = (yearRange[1].match('c[+-].*') ? year + parseInt(yearRange[1].substring(1), 10) : + ((yearRange[1].match('[+-].*') ? todayYear : 0) + parseInt(yearRange[1], 10))); + selector = ''; + } + html = html.replace(/\\x2F/, selector); + return html; + }, + + /** Prepare a render template for use. + Exclude popup/inline sections that are not applicable. + Localise text of the form: {l10n:name}. + @memberof CalendarsPicker + @private + @param text {string} The text to localise. + @param inst {object} The current instance settings. + @return {string} The localised text. */ + _prepare: function(text, inst) { + var replaceSection = function(type, retain) { + while (true) { + var start = text.indexOf('{' + type + ':start}'); + if (start === -1) { + return; + } + var end = text.substring(start).indexOf('{' + type + ':end}'); + if (end > -1) { + text = text.substring(0, start) + + (retain ? text.substr(start + type.length + 8, end - type.length - 8) : '') + + text.substring(start + end + type.length + 6); + } + } + }; + replaceSection('inline', inst.inline); + replaceSection('popup', !inst.inline); + var pattern = /\{l10n:([^\}]+)\}/; + var matches = null; + while (matches = pattern.exec(text)) { + text = text.replace(matches[0], inst.options[matches[1]]); + } + return text; + } + }); + + var plugin = $.calendarsPicker; // Singleton instance + + $(function() { + $(document).on('mousedown.' + pluginName, plugin._checkExternalClick). + on('resize.' + pluginName, function() { plugin.hide(plugin.curInst); }); + }); + +})(jQuery); diff --git a/jquery-src/jquery.calendars.picker.lang.js b/jquery-src/jquery.calendars.picker.lang.js new file mode 100755 index 0000000..93aa1c9 --- /dev/null +++ b/jquery-src/jquery.calendars.picker.lang.js @@ -0,0 +1,1571 @@ +/* http://keith-wood.name/calendars.html + Calendars datepicker localisations for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ +/* http://keith-wood.name/calendars.html + Afrikaans localisation for calendars datepicker for jQuery. + Written by Renier Pretorius and Ruediger Thiede. */ +(function($) { + $.calendarsPicker.regionalOptions['af'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'Vorige', prevStatus: 'Vertoon vorige maand', + prevJumpText: '<<', prevJumpStatus: 'Vertoon vorige jaar', + nextText: 'Volgende', nextStatus: 'Vertoon volgende maand', + nextJumpText: '>>', nextJumpStatus: 'Vertoon volgende jaar', + currentText: 'Vandag', currentStatus: 'Vertoon huidige maand', + todayText: 'Vandag', todayStatus: 'Vertoon huidige maand', + clearText: 'Vee uit', clearStatus: 'Verwyder die huidige datum', + closeText: 'Klaar', closeStatus: 'Sluit sonder verandering', + yearStatus: 'Vertoon \'n ander jaar', monthStatus: 'Vertoon \'n ander maand', + weekText: 'Wk', weekStatus: 'Week van die jaar', + dayStatus: 'Kies DD, M d', defaultStatus: 'Kies \'n datum', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['af']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Amharic (አማርኛ) localisation for calendars datepicker for jQuery. + Leyu Sisay. */ +(function($) { + $.calendarsPicker.regionalOptions['am'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'ያለፈ', prevStatus: 'ያለፈውን ወር አሳይ', + prevJumpText: '<<', prevJumpStatus: 'ያለፈውን ዓመት አሳይ', + nextText: 'ቀጣይ', nextStatus: 'ቀጣዩን ወር አሳይ', + nextJumpText: '>>', nextJumpStatus: 'ቀጣዩን ዓመት አሳይ', + currentText: 'አሁን', currentStatus: 'የአሁኑን ወር አሳይ', + todayText: 'ዛሬ', todayStatus: 'የዛሬን ወር አሳይ', + clearText: 'አጥፋ', clearStatus: 'የተመረጠውን ቀን አጥፋ', + closeText: 'ዝጋ', closeStatus: 'የቀን መምረጫውን ዝጋ', + yearStatus: 'ዓመቱን ቀይር', monthStatus: 'ወሩን ቀይር', + weekText: 'ሳም', weekStatus: 'የዓመቱ ሳምንት ', + dayStatus: 'DD, M d, yyyy ምረጥ', defaultStatus: 'ቀን ምረጥ', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['am']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Algerian (and Tunisian) Arabic localisation for calendars datepicker for jQuery. + Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */ +(function($) { + $.calendarsPicker.regionalOptions['ar-DZ'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<السابق', prevStatus: 'عرض الشهر السابق', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'التالي>', nextStatus: 'عرض الشهر القادم', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'اليوم', currentStatus: 'عرض الشهر الحالي', + todayText: 'اليوم', todayStatus: 'عرض الشهر الحالي', + clearText: 'مسح', clearStatus: 'امسح التاريخ الحالي', + closeText: 'إغلاق', closeStatus: 'إغلاق بدون حفظ', + yearStatus: 'عرض سنة آخرى', monthStatus: 'عرض شهر آخر', + weekText: 'أسبوع', weekStatus: 'أسبوع السنة', + dayStatus: 'اختر D, M d', defaultStatus: 'اختر يوم', + isRTL: true + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ar-DZ']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Arabic localisation for calendars datepicker for jQuery. + Mahmoud Khaled -- mahmoud.khaled@badrit.com + NOTE: monthNames are the new months names */ +(function($) { + $.calendarsPicker.regionalOptions['ar-EG'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<السابق', prevStatus: 'عرض الشهر السابق', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'التالي>', nextStatus: 'عرض الشهر القادم', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'اليوم', currentStatus: 'عرض الشهر الحالي', + todayText: 'اليوم', todayStatus: 'عرض الشهر الحالي', + clearText: 'مسح', clearStatus: 'امسح التاريخ الحالي', + closeText: 'إغلاق', closeStatus: 'إغلاق بدون حفظ', + yearStatus: 'عرض سنة آخرى', monthStatus: 'عرض شهر آخر', + weekText: 'أسبوع', weekStatus: 'أسبوع السنة', + dayStatus: 'اختر D, M d', defaultStatus: 'اختر يوم', + isRTL: true + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ar-EG']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Arabic localisation for calendars datepicker for jQuery. + Khaled Al Horani -- خالد الحوراني -- koko.dw@gmail.com */ +(function($) { + $.calendarsPicker.regionalOptions['ar'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<السابق', prevStatus: 'عرض الشهر السابق', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'التالي>', nextStatus: 'عرض الشهر القادم', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'اليوم', currentStatus: 'عرض الشهر الحالي', + todayText: 'اليوم', todayStatus: 'عرض الشهر الحالي', + clearText: 'مسح', clearStatus: 'امسح التاريخ الحالي', + closeText: 'إغلاق', closeStatus: 'إغلاق بدون حفظ', + yearStatus: 'عرض سنة آخرى', monthStatus: 'عرض شهر آخر', + weekText: 'أسبوع', weekStatus: 'أسبوع السنة', + dayStatus: 'اختر D, M d', defaultStatus: 'اختر يوم', + isRTL: true + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ar']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Azerbaijani localisation for calendars datepicker for jQuery. + Written by Jamil Najafov (necefov33@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['az'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Geri', prevStatus: 'Əvvəlki ay', + prevJumpText: '<<', prevJumpStatus: 'Əvvəlki il', + nextText: 'İrəli>', nextStatus: 'Sonrakı ay', + nextJumpText: '>>', nextJumpStatus: 'Sonrakı il', + currentText: 'Bugün', currentStatus: 'İndiki ay', + todayText: 'Bugün', todayStatus: 'İndiki ay', + clearText: 'Təmizlə', clearStatus: 'Tarixi sil', + closeText: 'Bağla', closeStatus: 'Təqvimi bağla', + yearStatus: 'Başqa il', monthStatus: 'Başqa ay', + weekText: 'Hf', weekStatus: 'Həftələr', + dayStatus: 'D, M d seçin', defaultStatus: 'Bir tarix seçin', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['az']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Bulgarian localisation for calendars datepicker for jQuery. + Written by Stoyan Kyosev (http://svest.org). */ +(function($) { + $.calendarsPicker.regionalOptions['bg'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<назад', prevStatus: 'покажи последния месец', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'напред>', nextStatus: 'покажи следващия месец', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'днес', currentStatus: '', + todayText: 'днес', todayStatus: '', + clearText: 'изчисти', clearStatus: 'изчисти актуалната дата', + closeText: 'затвори', closeStatus: 'затвори без промени', + yearStatus: 'покажи друга година', monthStatus: 'покажи друг месец', + weekText: 'Wk', weekStatus: 'седмица от месеца', + dayStatus: 'Избери D, M d', defaultStatus: 'Избери дата', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['bg']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Bosnian localisation for calendars datepicker for jQuery. + Kenan Konjo. */ +(function($) { + $.calendarsPicker.regionalOptions['bs'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: '>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Danas', currentStatus: '', + todayText: 'Danas', todayStatus: '', + clearText: 'X', clearStatus: '', + closeText: 'Zatvori', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Wk', weekStatus: '', + dayStatus: '', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['bs']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Catalan localisation for calendars datepicker for jQuery. + Writers: (joan.leon@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['ca'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Ant', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Seg>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Avui', currentStatus: '', + todayText: 'Avui', todayStatus: '', + clearText: 'Netejar', clearStatus: '', + closeText: 'Tancar', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Wk', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ca']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Czech localisation for calendars datepicker for jQuery. + Written by Tomas Muller (tomas@tomas-muller.net). */ +(function($) { + $.calendarsPicker.regionalOptions['cs'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Dříve', prevStatus: 'Přejít na předchozí měsí', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Později>', nextStatus: 'Přejít na další měsíc', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Nyní', currentStatus: 'Přejde na aktuální měsíc', + todayText: 'Nyní', todayStatus: 'Přejde na aktuální měsíc', + clearText: 'Vymazat', clearStatus: 'Vymaže zadané datum', + closeText: 'Zavřít', closeStatus: 'Zavře kalendář beze změny', + yearStatus: 'Přejít na jiný rok', monthStatus: 'Přejít na jiný měsíc', + weekText: 'Týd', weekStatus: 'Týden v roce', + dayStatus: '\'Vyber\' DD, M d', defaultStatus: 'Vyberte datum', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['cs']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Danish localisation for calendars datepicker for jQuery. + Written by Jan Christensen ( deletestuff@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['da'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Forrige', prevStatus: 'Vis forrige måned', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Næste>', nextStatus: 'Vis næste måned', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Idag', currentStatus: 'Vis aktuel måned', + todayText: 'Idag', todayStatus: 'Vis aktuel måned', + clearText: 'Nulstil', clearStatus: 'Nulstil den aktuelle dato', + closeText: 'Luk', closeStatus: 'Luk uden ændringer', + yearStatus: 'Vis et andet år', monthStatus: 'Vis en anden måned', + weekText: 'Uge', weekStatus: 'Årets uge', + dayStatus: 'Vælg D, M d', defaultStatus: 'Vælg en dato', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['da']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Swiss-German localisation for calendars datepicker for jQuery. + Written by Douglas Jose & Juerg Meier. */ +(function($) { + $.calendarsPicker.regionalOptions['de-CH'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<zurück', prevStatus: 'letzten Monat zeigen', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'nächster>', nextStatus: 'nächsten Monat zeigen', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'heute', currentStatus: '', + todayText: 'heute', todayStatus: '', + clearText: 'löschen', clearStatus: 'aktuelles Datum löschen', + closeText: 'schliessen', closeStatus: 'ohne Änderungen schliessen', + yearStatus: 'anderes Jahr anzeigen', monthStatus: 'anderen Monat anzeige', + weekText: 'Wo', weekStatus: 'Woche des Monats', + dayStatus: 'Wähle D, M d', defaultStatus: 'Wähle ein Datum', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['de-CH']); +})(jQuery); +/* http://keith-wood.name/calendars.html + German localisation for calendars datepicker for jQuery. + Written by Milian Wolff (mail@milianw.de). */ +(function($) { + $.calendarsPicker.regionalOptions['de'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<zurück', prevStatus: 'letzten Monat zeigen', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Vor>', nextStatus: 'nächsten Monat zeigen', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'heute', currentStatus: '', + todayText: 'heute', todayStatus: '', + clearText: 'löschen', clearStatus: 'aktuelles Datum löschen', + closeText: 'schließen', closeStatus: 'ohne Änderungen schließen', + yearStatus: 'anderes Jahr anzeigen', monthStatus: 'anderen Monat anzeige', + weekText: 'Wo', weekStatus: 'Woche des Monats', + dayStatus: 'Wähle D, M d', defaultStatus: 'Wähle ein Datum', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['de']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Greek localisation for calendars datepicker for jQuery. + Written by Alex Cicovic (http://www.alexcicovic.com). */ +(function($) { + $.calendarsPicker.regionalOptions['el'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'Προηγούμενος', prevStatus: 'Επισκόπηση προηγούμενου μήνα', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Επόμενος', nextStatus: 'Επισκόπηση επόμενου μήνα', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Τρέχων Μήνας', currentStatus: 'Επισκόπηση τρέχοντος μήνα', + todayText: 'Τρέχων Μήνας', todayStatus: 'Επισκόπηση τρέχοντος μήνα', + clearText: 'Σβήσιμο', clearStatus: 'Σβήσιμο της επιλεγμένης ημερομηνίας', + closeText: 'Κλείσιμο', closeStatus: 'Κλείσιμο χωρίς αλλαγή', + yearStatus: 'Επισκόπηση άλλου έτους', monthStatus: 'Επισκόπηση άλλου μήνα', + weekText: 'Εβδ', weekStatus: '', + dayStatus: 'Επιλογή DD d MM', defaultStatus: 'Επιλέξτε μια ημερομηνία', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['el']); +})(jQuery); +/* http://keith-wood.name/calendars.html + English/Australia localisation for calendars datepicker for jQuery. + Based on en-GB. */ +(function($) { + $.calendarsPicker.regionalOptions['en-AU'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'Prev', prevStatus: 'Show the previous month', + prevJumpText: '<<', prevJumpStatus: 'Show the previous year', + nextText: 'Next', nextStatus: 'Show the next month', + nextJumpText: '>>', nextJumpStatus: 'Show the next year', + currentText: 'Current', currentStatus: 'Show the current month', + todayText: 'Today', todayStatus: 'Show today\'s month', + clearText: 'Clear', clearStatus: 'Clear all the dates', + closeText: 'Done', closeStatus: 'Close the datepicker', + yearStatus: 'Change the year', monthStatus: 'Change the month', + weekText: 'Wk', weekStatus: 'Week of the year', + dayStatus: 'Select DD, M d, yyyy', defaultStatus: 'Select a date', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['en-AU']); +})(jQuery); +/* http://keith-wood.name/calendars.html + English/UK localisation for calendars datepicker for jQuery. + Stuart. */ +(function($) { + $.calendarsPicker.regionalOptions['en-GB'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'Prev', prevStatus: 'Show the previous month', + prevJumpText: '<<', prevJumpStatus: 'Show the previous year', + nextText: 'Next', nextStatus: 'Show the next month', + nextJumpText: '>>', nextJumpStatus: 'Show the next year', + currentText: 'Current', currentStatus: 'Show the current month', + todayText: 'Today', todayStatus: 'Show today\'s month', + clearText: 'Clear', clearStatus: 'Clear all the dates', + closeText: 'Done', closeStatus: 'Close the datepicker', + yearStatus: 'Change the year', monthStatus: 'Change the month', + weekText: 'Wk', weekStatus: 'Week of the year', + dayStatus: 'Select DD, M d, yyyy', defaultStatus: 'Select a date', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['en-GB']); +})(jQuery); +/* http://keith-wood.name/calendars.html + English/New Zealand localisation for calendars datepicker for jQuery. + Based on en-GB. */ +(function($) { + $.calendarsPicker.regionalOptions['en-NZ'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'Prev', prevStatus: 'Show the previous month', + prevJumpText: '<<', prevJumpStatus: 'Show the previous year', + nextText: 'Next', nextStatus: 'Show the next month', + nextJumpText: '>>', nextJumpStatus: 'Show the next year', + currentText: 'Current', currentStatus: 'Show the current month', + todayText: 'Today', todayStatus: 'Show today\'s month', + clearText: 'Clear', clearStatus: 'Clear all the dates', + closeText: 'Done', closeStatus: 'Close the datepicker', + yearStatus: 'Change the year', monthStatus: 'Change the month', + weekText: 'Wk', weekStatus: 'Week of the year', + dayStatus: 'Select DD, M d, yyyy', defaultStatus: 'Select a date', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['en-NZ']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Esperanto localisation for calendars datepicker for jQuery. + Written by Olivier M. (olivierweb@ifrance.com). */ +(function($) { + $.calendarsPicker.regionalOptions['eo'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Anta', prevStatus: 'Vidi la antaŭan monaton', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Sekv>', nextStatus: 'Vidi la sekvan monaton', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Nuna', currentStatus: 'Vidi la nunan monaton', + todayText: 'Nuna', todayStatus: 'Vidi la nunan monaton', + clearText: 'Vakigi', clearStatus: '', + closeText: 'Fermi', closeStatus: 'Fermi sen modifi', + yearStatus: 'Vidi alian jaron', monthStatus: 'Vidi alian monaton', + weekText: 'Sb', weekStatus: '', + dayStatus: 'Elekti DD, MM d', defaultStatus: 'Elekti la daton', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['eo']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Spanish/Argentina localisation for calendars datepicker for jQuery. + Written by Esteban Acosta Villafane (esteban.acosta@globant.com) of Globant (http://www.globant.com). */ +(function($) { + $.calendarsPicker.regionalOptions['es-AR'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Ant', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Sig>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Hoy', currentStatus: '', + todayText: 'Hoy', todayStatus: '', + clearText: 'Limpiar', clearStatus: '', + closeText: 'Cerrar', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Sm', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['es-AR']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Spanish/Perú localisation for calendars datepicker for jQuery. + Written by Fischer Tirado (fishdev@globant.com) of ASIX (http://www.asixonline.com). */ +(function($) { + $.calendarsPicker.regionalOptions['es-PE'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Ant', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Sig>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Hoy', currentStatus: '', + todayText: 'Hoy', todayStatus: '', + clearText: 'Limpiar', clearStatus: '', + closeText: 'Cerrar', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Sm', weekStatus: '', + dayStatus: 'DD d, MM yyyy', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['es-PE']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Spanish localisation for calendars datepicker for jQuery. + Traducido por Vester (xvester@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['es'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Ant', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Sig>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Hoy', currentStatus: '', + todayText: 'Hoy', todayStatus: '', + clearText: 'Limpiar', clearStatus: '', + closeText: 'Cerrar', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Sm', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['es']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Estonian localisation for calendars datepicker for jQuery. + Written by Mart Sõmermaa (mrts.pydev at gmail com). */ +(function($) { + $.calendarsPicker.regionalOptions['et'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'Eelnev', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Järgnev', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Täna', currentStatus: '', + todayText: 'Täna', todayStatus: '', + clearText: 'X', clearStatus: '', + closeText: 'Sulge', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Wk', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['et']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Basque localisation for calendars datepicker for jQuery. + Karrikas-ek itzulia (karrikas@karrikas.com). */ +(function($) { + $.calendarsPicker.regionalOptions['eu'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Aur', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Hur>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Gaur', currentStatus: '', + todayText: 'Gaur', todayStatus: '', + clearText: 'X', clearStatus: '', + closeText: 'Egina', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Wk', weekStatus: '', + dayStatus: 'DD d MM', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['eu']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Farsi/Persian localisation for calendars datepicker for jQuery. + Javad Mowlanezhad -- jmowla@gmail.com. */ +(function($) { + $.calendarsPicker.regionalOptions['fa'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<قبلي', prevStatus: 'نمايش ماه قبل', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'بعدي>', nextStatus: 'نمايش ماه بعد', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'امروز', currentStatus: 'نمايش ماه جاري', + todayText: 'امروز', todayStatus: 'نمايش ماه جاري', + clearText: 'حذف تاريخ', clearStatus: 'پاک کردن تاريخ جاري', + closeText: 'بستن', closeStatus: 'بستن بدون اعمال تغييرات', + yearStatus: 'نمايش سال متفاوت', monthStatus: 'نمايش ماه متفاوت', + weekText: 'هف', weekStatus: 'هفتهِ سال', + dayStatus: 'انتخاب D, M d', defaultStatus: 'انتخاب تاريخ', + isRTL: true + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['fa']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Finnish localisation for calendars datepicker for jQuery. + Written by Harri Kilpiö (harrikilpio@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['fi'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '«Edellinen', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Seuraava»', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Tänään', currentStatus: '', + todayText: 'Tänään', todayStatus: '', + clearText: 'Tyhjennä', clearStatus: '', + closeText: 'Sulje', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Vk', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['fi']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Faroese localisation for calendars datepicker for jQuery. + Written by Sverri Mohr Olsen, sverrimo@gmail.com */ +(function($) { + $.calendarsPicker.regionalOptions['fo'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Sísta', prevStatus: 'Vís sísta mánaðan', + prevJumpText: '<<', prevJumpStatus: 'Vís sísta árið', + nextText: 'Næsta>', nextStatus: 'Vís næsta mánaðan', + nextJumpText: '>>', nextJumpStatus: 'Vís næsta árið', + currentText: 'Hesin', currentStatus: 'Vís hendan mánaðan', + todayText: 'Í dag', todayStatus: 'Vís mánaðan fyri í dag', + clearText: 'Strika', clearStatus: 'Strika allir mánaðarnar', + closeText: 'Goym', closeStatus: 'Goym hetta vindeyðga', + yearStatus: 'Broyt árið', monthStatus: 'Broyt mánaðans', + weekText: 'Vk', weekStatus: 'Vika av árinum', + dayStatus: 'Vel DD, M d, yyyy', defaultStatus: 'Vel ein dato', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['fo']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Swiss French localisation for calendars datepicker for jQuery. + Written by Martin Voelkle (martin.voelkle@e-tc.ch). */ +(function($) { + $.calendarsPicker.regionalOptions['fr-CH'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Préc', prevStatus: 'Voir le mois précédent', + prevJumpText: '<<', prevJumpStatus: 'Voir l\'année précédent', + nextText: 'Suiv>', nextStatus: 'Voir le mois suivant', + nextJumpText: '>>', nextJumpStatus: 'Voir l\'année suivant', + currentText: 'Courant', currentStatus: 'Voir le mois courant', + todayText: 'Aujourd\'hui', todayStatus: 'Voir aujourd\'hui', + clearText: 'Effacer', clearStatus: 'Effacer la date sélectionnée', + closeText: 'Fermer', closeStatus: 'Fermer sans modifier', + yearStatus: 'Voir une autre année', monthStatus: 'Voir un autre mois', + weekText: 'Sm', weekStatus: 'Semaine de l\'année', + dayStatus: '\'Choisir\' le DD d MM', defaultStatus: 'Choisir la date', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['fr-CH']); +})(jQuery); +/* http://keith-wood.name/calendars.html + French localisation for calendars datepicker for jQuery. + Stéphane Nahmani (sholby@sholby.net). */ +(function($) { + $.calendarsPicker.regionalOptions['fr'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Préc', prevStatus: 'Voir le mois précédent', + prevJumpText: '<<', prevJumpStatus: 'Voir l\'année précédent', + nextText: 'Suiv>', nextStatus: 'Voir le mois suivant', + nextJumpText: '>>', nextJumpStatus: 'Voir l\'année suivant', + currentText: 'Courant', currentStatus: 'Voir le mois courant', + todayText: 'Aujourd\'hui', todayStatus: 'Voir aujourd\'hui', + clearText: 'Effacer', clearStatus: 'Effacer la date sélectionnée', + closeText: 'Fermer', closeStatus: 'Fermer sans modifier', + yearStatus: 'Voir une autre année', monthStatus: 'Voir un autre mois', + weekText: 'Sm', weekStatus: 'Semaine de l\'année', + dayStatus: '\'Choisir\' le DD d MM', defaultStatus: 'Choisir la date', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['fr']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Iniciacion en galego para a extensión 'UI date picker' para jQuery. + Traducido por Manuel (McNuel@gmx.net). */ +(function($) { + $.calendarsPicker.regionalOptions['gl'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Ant', prevStatus: 'Amosar mes anterior', + prevJumpText: '<<', prevJumpStatus: 'Amosar ano anterior', + nextText: 'Seg>', nextStatus: 'Amosar mes seguinte', + nextJumpText: '>>', nextJumpStatus: 'Amosar ano seguinte', + currentText: 'Hoxe', currentStatus: 'Amosar mes actual', + todayText: 'Hoxe', todayStatus: 'Amosar mes actual', + clearText: 'Limpar', clearStatus: 'Borrar data actual', + closeText: 'Pechar', closeStatus: 'Pechar sen gardar', + yearStatus: 'Amosar outro ano', monthStatus: 'Amosar outro mes', + weekText: 'Sm', weekStatus: 'Semana do ano', + dayStatus: 'D, M d', defaultStatus: 'Selecciona Data', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['gl']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Gujarati (ગુજરાતી) localisation for calendars datepicker for jQuery. + Naymesh Mistry (naymesh@yahoo.com). */ +(function($) { + $.calendarsPicker.regionalOptions['gu'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<પાછળ', prevStatus: 'પાછલો મહિનો બતાવો', + prevJumpText: '<<', prevJumpStatus: 'પાછળ', + nextText: 'આગળ>', nextStatus: 'આગલો મહિનો બતાવો', + nextJumpText: '>>', nextJumpStatus: 'આગળ', + currentText: 'આજે', currentStatus: 'આજનો દિવસ બતાવો', + todayText: 'આજે', todayStatus: 'આજનો દિવસ', + clearText: 'ભૂંસો', clearStatus: 'હાલ પસંદ કરેલી તારીખ ભૂંસો', + closeText: 'બંધ કરો', closeStatus: 'તારીખ પસંદ કર્યા વગર બંધ કરો', + yearStatus: 'જુદુ વર્ષ બતાવો', monthStatus: 'જુદો મહિનો બતાવો', + weekText: 'અઠવાડિયું', weekStatus: 'અઠવાડિયું', + dayStatus: 'અઠવાડિયાનો પહેલો દિવસ પસંદ કરો', defaultStatus: 'તારીખ પસંદ કરો', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['gu']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Hebrew localisation for calendars datepicker for jQuery. + Written by Amir Hardon (ahardon at gmail dot com). */ +(function($) { + $.calendarsPicker.regionalOptions['he'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<הקודם', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'הבא>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'היום', currentStatus: '', + todayText: 'היום', todayStatus: '', + clearText: 'נקה', clearStatus: '', + closeText: 'סגור', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Wk', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: true + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['he']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Hindi INDIA localisation for calendars datepicker for jQuery. + Written by Pawan Kumar Singh. */ +(function($) { + $.calendarsPicker.regionalOptions['hi-IN'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'पिछला', prevStatus: 'पिछला महीना देखें', + prevJumpText: '<<', prevJumpStatus: 'पिछला वर्ष देखें', + nextText: 'अगला', nextStatus: 'अगला महीना देखें', + nextJumpText: '>>', nextJumpStatus: 'अगला वर्ष देखें', + currentText: 'वर्तमान', currentStatus: 'वर्तमान महीना देखें', + todayText: 'आज', todayStatus: 'वर्तमान दिन देखें', + clearText: 'साफ', clearStatus: 'वर्तमान दिनांक मिटाए', + closeText: 'समाप्त', closeStatus: 'बदलाव के बिना बंद', + yearStatus: 'एक अलग वर्ष का चयन करें', monthStatus: 'एक अलग महीने का चयन करें', + weekText: 'Wk', weekStatus: 'वर्ष का सप्ताह', + dayStatus: 'चुने DD, M d', defaultStatus: 'एक तिथि का चयन करें', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['hi-IN']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Croatian localisation for calendars datepicker for jQuery. + Written by Vjekoslav Nesek. */ +(function($) { + $.calendarsPicker.regionalOptions['hr'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<', prevStatus: 'Prikaži prethodni mjesec', + prevJumpText: '<<', prevJumpStatus: '', + nextText: '>', nextStatus: 'Prikaži slijedeći mjesec', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Danas', currentStatus: 'Današnji datum', + todayText: 'Danas', todayStatus: 'Današnji datum', + clearText: 'izbriši', clearStatus: 'Izbriši trenutni datum', + closeText: 'Zatvori', closeStatus: 'Zatvori kalendar', + yearStatus: 'Prikaži godine', monthStatus: 'Prikaži mjesece', + weekText: 'Tje', weekStatus: 'Tjedanr', + dayStatus: '\'Datum\' DD, M d', defaultStatus: 'Odaberi datum', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['hr']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Hungarian localisation for calendars datepicker for jQuery. + Written by Istvan Karaszi (jquerycalendar@spam.raszi.hu). */ +(function($) { + $.calendarsPicker.regionalOptions['hu'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '« vissza', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'előre »', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'ma', currentStatus: '', + todayText: 'ma', todayStatus: '', + clearText: 'törlés', clearStatus: '', + closeText: 'bezárás', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Hé', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['hu']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Armenian localisation for calendars datepicker for jQuery. + Written by Levon Zakaryan (levon.zakaryan@gmail.com) */ +(function($) { + $.calendarsPicker.regionalOptions['hy'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Նախ.', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Հաջ.>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Այսօր', currentStatus: '', + todayText: 'Այսօր', todayStatus: '', + clearText: 'Մաքրել', clearStatus: '', + closeText: 'Փակել', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'ՇԲՏ', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['hy']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Indonesian localisation for calendars datepicker for jQuery. + Written by Deden Fathurahman (dedenf@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['id'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<mundur', prevStatus: 'Tampilkan bulan sebelumnya', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'maju>', nextStatus: 'Tampilkan bulan berikutnya', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'hari ini', currentStatus: 'Tampilkan bulan sekarang', + todayText: 'hari ini', todayStatus: 'Tampilkan bulan sekarang', + clearText: 'kosongkan', clearStatus: 'bersihkan tanggal yang sekarang', + closeText: 'Tutup', closeStatus: 'Tutup tanpa mengubah', + yearStatus: 'Tampilkan tahun yang berbeda', monthStatus: 'Tampilkan bulan yang berbeda', + weekText: 'Mg', weekStatus: 'Minggu dalam tahu', + dayStatus: 'pilih le DD, MM d', defaultStatus: 'Pilih Tanggal', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['id']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Icelandic localisation for calendars datepicker for jQuery. + Written by Haukur H. Thorsson (haukur@eskill.is). */ +(function($) { + $.calendarsPicker.regionalOptions['is'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '< Fyrri', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Næsti >', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Í dag', currentStatus: '', + todayText: 'Í dag', todayStatus: '', + clearText: 'Hreinsa', clearStatus: '', + closeText: 'Loka', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Vika', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['is']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Italian localisation for calendars datepicker for jQuery. + Written by Apaella (apaella@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['it'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Prec', prevStatus: 'Mese precedente', + prevJumpText: '<<', prevJumpStatus: 'Mostra l\'anno precedente', + nextText: 'Succ>', nextStatus: 'Mese successivo', + nextJumpText: '>>', nextJumpStatus: 'Mostra l\'anno successivo', + currentText: 'Oggi', currentStatus: 'Mese corrente', + todayText: 'Oggi', todayStatus: 'Mese corrente', + clearText: 'Svuota', clearStatus: 'Annulla', + closeText: 'Chiudi', closeStatus: 'Chiudere senza modificare', + yearStatus: 'Seleziona un altro anno', monthStatus: 'Seleziona un altro mese', + weekText: 'Sm', weekStatus: 'Settimana dell\'anno', + dayStatus: '\'Seleziona\' DD, M d', defaultStatus: 'Scegliere una data', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['it']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Japanese localisation for calendars datepicker for jQuery. + Written by Kentaro SATO (kentaro@ranvis.com). */ +(function($) { + $.calendarsPicker.regionalOptions['ja'] = { + renderer: $.extend({}, $.calendarsPicker.defaultRenderer, + {month: $.calendarsPicker.defaultRenderer.month. + replace(/monthHeader/, 'monthHeader:yyyy年 MM')}), + prevText: '<前', prevStatus: '前月を表示します', + prevJumpText: '<<', prevJumpStatus: '前年を表示します', + nextText: '次>', nextStatus: '翌月を表示します', + nextJumpText: '>>', nextJumpStatus: '翌年を表示します', + currentText: '今日', currentStatus: '今月を表示します', + todayText: '今日', todayStatus: '今月を表示します', + clearText: 'クリア', clearStatus: '日付をクリアします', + closeText: '閉じる', closeStatus: '変更せずに閉じます', + yearStatus: '表示する年を変更します', monthStatus: '表示する月を変更します', + weekText: '週', weekStatus: '暦週で第何週目かを表します', + dayStatus: 'yyyy/mm/dd', defaultStatus: '日付を選択します', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ja']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Georgian localisation for calendars datepicker for jQuery. + Andrei Gorbushkin. */ +(function($) { + $.calendarsPicker.regionalOptions['ka'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<უკან', prevStatus: 'წინა თვე', + prevJumpText: '<<', prevJumpStatus: 'წინა წელი', + nextText: 'წინ>', nextStatus: 'შემდეგი თვე', + nextJumpText: '>>', nextJumpStatus: 'შემდეგი წელი', + currentText: 'მიმდინარე', currentStatus: 'მიმდინარე თვე', + todayText: 'დღეს', todayStatus: 'მიმდინარე დღე', + clearText: 'გასუფთავება', clearStatus: 'მიმდინარე თარიღის წაშლა', + closeText: 'არის', closeStatus: 'დახურვა უცვლილებოდ', + yearStatus: 'სხვა წელი', monthStatus: 'სხვა თვე', + weekText: 'კვ', weekStatus: 'წლის კვირა', + dayStatus: 'აირჩიეთ DD, M d', defaultStatus: 'აიღჩიეთ თარიღი', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ka']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Khmer initialisation for calendars datepicker for jQuery. + Written by Sovichet Tep (sovichet.tep@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['km'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'ថយ​ក្រោយ', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'ទៅ​មុខ', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'ថ្ងៃ​នេះ', currentStatus: '', + todayText: 'ថ្ងៃ​នេះ', todayStatus: '', + clearText: 'X', clearStatus: '', + closeText: 'រួច​រាល់', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Wk', weekStatus: '', + dayStatus: 'DD d MM', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['km']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Korean localisation for calendars datepicker for jQuery. + Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */ +(function($) { + $.calendarsPicker.regionalOptions['ko'] = { + renderer: $.extend({}, $.calendarsPicker.defaultRenderer, + {month: $.calendarsPicker.defaultRenderer.month. + replace(/monthHeader/, 'monthHeader:yyyy년 MM')}), + prevText: '이전달', prevStatus: '이전달을 표시합니다', + prevJumpText: '<<', prevJumpStatus: '이전 연도를 표시합니다', + nextText: '다음달', nextStatus: '다음달을 표시합니다', + nextJumpText: '>>', nextJumpStatus: '다음 연도를 표시합니다', + currentText: '현재', currentStatus: '입력한 달을 표시합니다', + todayText: '오늘', todayStatus: '이번달을 표시합니다', + clearText: '지우기', clearStatus: '입력한 날짜를 지웁니다', + closeText: '닫기', closeStatus: '', + yearStatus: '표시할 연도를 변경합니다', monthStatus: '표시할 월을 변경합니다', + weekText: 'Wk', weekStatus: '해당 연도의 주차', + dayStatus: 'M d일 (D)', defaultStatus: '날짜를 선택하세요', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ko']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Lithuanian localisation for calendars datepicker for jQuery. + Arturas Paleicikas . */ +(function($) { + $.calendarsPicker.regionalOptions['lt'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Atgal', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Pirmyn>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Šiandien', currentStatus: '', + todayText: 'Šiandien', todayStatus: '', + clearText: 'Išvalyti', clearStatus: '', + closeText: 'Uždaryti', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Wk', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['lt']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Latvian localisation for calendars datepicker for jQuery. + Arturas Paleicikas . */ +(function($) { + $.calendarsPicker.regionalOptions['lv'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'Iepr', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Nāka', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Šodien', currentStatus: '', + todayText: 'Šodien', todayStatus: '', + clearText: 'Notīrīt', clearStatus: '', + closeText: 'Aizvērt', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Nav', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['lv']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Montenegrin localisation for calendars datepicker for jQuery. + Written by Miloš Milošević - fleka d.o.o. */ +(function($) { + $.calendarsPicker.regionalOptions['me-ME'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<', prevStatus: 'Prikaži prethodni mjesec', + prevJumpText: '<<', prevJumpStatus: 'Prikaži prethodnu godinu', + nextText: '>', nextStatus: 'Prikaži sljedeći mjesec', + nextJumpText: '>>', nextJumpStatus: 'Prikaži sljedeću godinu', + currentText: 'Danas', currentStatus: 'Tekući mjesec', + todayText: 'Danas', todayStatus: 'Tekući mjesec', + clearText: 'Obriši', clearStatus: 'Obriši trenutni datum', + closeText: 'Zatvori', closeStatus: 'Zatvori kalendar', + yearStatus: 'Prikaži godine', monthStatus: 'Prikaži mjesece', + weekText: 'Sed', weekStatus: 'Sedmica', + dayStatus: '\'Datum\' DD, M d', defaultStatus: 'Odaberi datum', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['me-ME']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Montenegrin localisation for calendars datepicker for jQuery. + Written by Miloš Milošević - fleka d.o.o. */ +(function($) { + $.calendarsPicker.regionalOptions['me'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<', prevStatus: 'Прикажи претходни мјесец', + prevJumpText: '<<', prevJumpStatus: 'Прикажи претходну годину', + nextText: '>', nextStatus: 'Прикажи сљедећи мјесец', + nextJumpText: '>>', nextJumpStatus: 'Прикажи сљедећу годину', + currentText: 'Данас', currentStatus: 'Текући мјесец', + todayText: 'Данас', todayStatus: 'Текући мјесец', + clearText: 'Обриши', clearStatus: 'Обриши тренутни датум', + closeText: 'Затвори', closeStatus: 'Затвори календар', + yearStatus: 'Прикажи године', monthStatus: 'Прикажи мјесеце', + weekText: 'Сед', weekStatus: 'Седмица', + dayStatus: '\'Датум\' DD d MM', defaultStatus: 'Одабери датум', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['me']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Македонски MK localisation for calendars datepicker for jQuery. + Hajan Selmani (hajan [at] live [dot] com). */ +(function($) { + $.calendarsPicker.regionalOptions['mk'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'Претх.', prevStatus: 'Прикажи го претходниот месец', + prevJumpText: '<<', prevJumpStatus: 'Прикажи ја претходната година', + nextText: 'Следен', nextStatus: 'Прикажи го следниот месец', + nextJumpText: '>>', nextJumpStatus: 'Прикажи ја следната година', + currentText: 'Тековен', currentStatus: 'Прикажи го тековниот месец', + todayText: 'Денес', todayStatus: 'Прикажи го денешниот месец', + clearText: 'Бриши', clearStatus: 'Избриши го тековниот датум', + closeText: 'Затвори', closeStatus: 'Затвори без промени', + yearStatus: 'Избери друга година', monthStatus: 'Избери друг месец', + weekText: 'Нед', weekStatus: 'Недела во годината', + dayStatus: 'Избери DD, M d', defaultStatus: 'Избери датум', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['mk']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Malayalam localisation for calendars datepicker for jQuery. + Saji Nediyanchath (saji89@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['ml'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'മുന്നത്തെ', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'അടുത്തത് ', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'ഇന്ന്', currentStatus: '', + todayText: 'ഇന്ന്', todayStatus: '', + clearText: 'X', clearStatus: '', + closeText: 'ശരി', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'ആ', weekStatus: '', + dayStatus: 'DD d MM', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ml']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Malaysian localisation for calendars datepicker for jQuery. + Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */ +(function($) { + $.calendarsPicker.regionalOptions['ms'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Sebelum', prevStatus: 'Tunjukkan bulan lepas', + prevJumpText: '<<', prevJumpStatus: 'Tunjukkan tahun lepas', + nextText: 'Selepas>', nextStatus: 'Tunjukkan bulan depan', + nextJumpText: '>>', nextJumpStatus: 'Tunjukkan tahun depan', + currentText: 'hari ini', currentStatus: 'Tunjukkan bulan terkini', + todayText: 'hari ini', todayStatus: 'Tunjukkan bulan terkini', + clearText: 'Padam', clearStatus: 'Padamkan tarikh terkini', + closeText: 'Tutup', closeStatus: 'Tutup tanpa perubahan', + yearStatus: 'Tunjukkan tahun yang lain', monthStatus: 'Tunjukkan bulan yang lain', + weekText: 'Mg', weekStatus: 'Minggu bagi tahun ini', + dayStatus: 'DD, d MM', defaultStatus: 'Sila pilih tarikh', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ms']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Maltese localisation for calendars datepicker for jQuery. + Written by Chritian Sciberras (uuf6429@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['mt'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'Ta Qabel', prevStatus: 'Ix-xahar ta qabel', + prevJumpText: '<<', prevJumpStatus: 'Is-sena ta qabel', + nextText: 'Li Jmiss', nextStatus: 'Ix-xahar li jmiss', + nextJumpText: '>>', nextJumpStatus: 'Is-sena li jmiss', + currentText: 'Illum', currentStatus: 'Ix-xahar ta llum', + todayText: 'Illum', todayStatus: 'Uri ix-xahar ta llum', + clearText: 'Ħassar', clearStatus: 'Ħassar id-data', + closeText: 'Lest', closeStatus: 'Għalaq mingħajr tibdiliet', + yearStatus: 'Uri sena differenti', monthStatus: 'Uri xahar differenti', + weekText: 'Ġm', weekStatus: 'Il-Ġimgħa fis-sena', + dayStatus: 'Għazel DD, M d', defaultStatus: 'Għazel data', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['mt']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Dutch/Belgian localisation for calendars datepicker for jQuery. + Written by Mathias Bynens . */ +(function($) { + $.calendarsPicker.regionalOptions['nl-BE'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '←', prevStatus: 'Bekijk de vorige maand', + prevJumpText: '«', nextJumpStatus: 'Bekijk het vorige jaar', + nextText: '→', nextStatus: 'Bekijk de volgende maand', + nextJumpText: '»', nextJumpStatus: 'Bekijk het volgende jaar', + currentText: 'Vandaag', currentStatus: 'Bekijk de huidige maand', + todayText: 'Vandaag', todayStatus: 'Bekijk de huidige maand', + clearText: 'Wissen', clearStatus: 'Wis de huidige datum', + closeText: 'Sluiten', closeStatus: 'Sluit zonder verandering', + yearStatus: 'Bekijk een ander jaar', monthStatus: 'Bekijk een andere maand', + weekText: 'Wk', weekStatus: 'Week van het jaar', + dayStatus: 'dd/mm/yyyy', defaultStatus: 'Kies een datum', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['nl-BE']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Dutch localisation for calendars datepicker for jQuery. + Written by Mathias Bynens . */ +(function($) { + $.calendarsPicker.regionalOptions['nl'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '←', prevStatus: 'Bekijk de vorige maand', + prevJumpText: '«', nextJumpStatus: 'Bekijk het vorige jaar', + nextText: '→', nextStatus: 'Bekijk de volgende maand', + nextJumpText: '»', nextJumpStatus: 'Bekijk het volgende jaar', + currentText: 'Vandaag', currentStatus: 'Bekijk de huidige maand', + todayText: 'Vandaag', todayStatus: 'Bekijk de huidige maand', + clearText: 'Wissen', clearStatus: 'Wis de huidige datum', + closeText: 'Sluiten', closeStatus: 'Sluit zonder verandering', + yearStatus: 'Bekijk een ander jaar', monthStatus: 'Bekijk een andere maand', + weekText: 'Wk', weekStatus: 'Week van het jaar', + dayStatus: 'dd-mm-yyyy', defaultStatus: 'Kies een datum', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['nl']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Norwegian localisation for calendars datepicker for jQuery. + Written by Naimdjon Takhirov (naimdjon@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['no'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '«Forrige', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Neste»', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'I dag', currentStatus: '', + todayText: 'I dag', todayStatus: '', + clearText: 'Tøm', clearStatus: '', + closeText: 'Lukk', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Uke', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['no']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Polish localisation for calendars datepicker for jQuery. + Written by Jacek Wysocki (jacek.wysocki@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['pl'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Poprzedni', prevStatus: 'Pokaż poprzedni miesiąc', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Następny>', nextStatus: 'Pokaż następny miesiąc', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Dziś', currentStatus: 'Pokaż aktualny miesiąc', + todayText: 'Dziś', todayStatus: 'Pokaż aktualny miesiąc', + clearText: 'Wyczyść', clearStatus: 'Wyczyść obecną datę', + closeText: 'Zamknij', closeStatus: 'Zamknij bez zapisywania', + yearStatus: 'Pokaż inny rok', monthStatus: 'Pokaż inny miesiąc', + weekText: 'Tydz', weekStatus: 'Tydzień roku', + dayStatus: '\'Wybierz\' DD, M d', defaultStatus: 'Wybierz datę', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['pl']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Brazilian Portuguese localisation for calendars datepicker for jQuery. + Written by Leonildo Costa Silva (leocsilva@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['pt-BR'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Anterior', prevStatus: 'Mostra o mês anterior', + prevJumpText: '<<', prevJumpStatus: 'Mostra o ano anterior', + nextText: 'Próximo>', nextStatus: 'Mostra o próximo mês', + nextJumpText: '>>', nextJumpStatus: 'Mostra o próximo ano', + currentText: 'Atual', currentStatus: 'Mostra o mês atual', + todayText: 'Hoje', todayStatus: 'Vai para hoje', + clearText: 'Limpar', clearStatus: 'Limpar data', + closeText: 'Fechar', closeStatus: 'Fechar o calendário', + yearStatus: 'Selecionar ano', monthStatus: 'Selecionar mês', + weekText: 's', weekStatus: 'Semana do ano', + dayStatus: 'DD, d \'de\' M \'de\' yyyy', defaultStatus: 'Selecione um dia', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['pt-BR']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Romansh localisation for calendars datepicker for jQuery. + Yvonne Gienal (yvonne.gienal@educa.ch). */ +(function($) { + $.calendarsPicker.regionalOptions['rm'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Suandant', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Precedent>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Actual', currentStatus: '', + todayText: 'Actual', todayStatus: '', + clearText: 'X', clearStatus: '', + closeText: 'Serrar', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'emna', weekStatus: '', + dayStatus: 'DD d MM', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['rm']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Romanian localisation for calendars datepicker for jQuery. + Written by Edmond L. (ll_edmond@walla.com) and Ionut G. Stan (ionut.g.stan@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['ro'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '«Precedenta', prevStatus: 'Arata luna precedenta', + prevJumpText: '««', prevJumpStatus: '', + nextText: 'Urmatoare»', nextStatus: 'Arata luna urmatoare', + nextJumpText: '»»', nextJumpStatus: '', + currentText: 'Azi', currentStatus: 'Arata luna curenta', + todayText: 'Azi', todayStatus: 'Arata luna curenta', + clearText: 'Curat', clearStatus: 'Sterge data curenta', + closeText: 'Închide', closeStatus: 'Închide fara schimbare', + yearStatus: 'Arat un an diferit', monthStatus: 'Arata o luna diferita', + weekText: 'Săpt', weekStatus: 'Săptamana anului', + dayStatus: 'Selecteaza DD, M d', defaultStatus: 'Selecteaza o data', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ro']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Russian localisation for calendars datepicker for jQuery. + Written by Andrew Stromnov (stromnov@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['ru'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Пред', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'След>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Сегодня', currentStatus: '', + todayText: 'Сегодня', todayStatus: '', + clearText: 'Очистить', clearStatus: '', + closeText: 'Закрыть', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Не', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ru']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Slovak localisation for calendars datepicker for jQuery. + Written by Vojtech Rinik (vojto@hmm.sk). */ +(function($) { + $.calendarsPicker.regionalOptions['sk'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Predchádzajúci', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Nasledujúci>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Dnes', currentStatus: '', + todayText: 'Dnes', todayStatus: '', + clearText: 'Zmazať', clearStatus: '', + closeText: 'Zavrieť', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Ty', weekStatus: '', + dayStatus: 'DD. M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sk']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Slovenian localisation for calendars datepicker for jQuery. + Written by Jaka Jancar (jaka@kubje.org). */ +(function($) { + $.calendarsPicker.regionalOptions['sl'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Prejšnji', prevStatus: 'Prikaži prejšnji mesec', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Naslednji>', nextStatus: 'Prikaži naslednji mesec', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Trenutni', currentStatus: 'Prikaži trenutni mesec', + todayText: 'Trenutni', todayStatus: 'Prikaži trenutni mesec', + clearText: 'Izbriši', clearStatus: 'Izbriši trenutni datum', + closeText: 'Zapri', closeStatus: 'Zapri brez spreminjanja', + yearStatus: 'Prikaži drugo leto', monthStatus: 'Prikaži drug mesec', + weekText: 'Teden', weekStatus: 'Teden v letu', + dayStatus: 'Izberi DD, d MM yy', defaultStatus: 'Izbira datuma', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sl']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Albanian localisation for calendars datepicker for jQuery. + Written by Flakron Bytyqi (flakron@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['sq'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<mbrapa', prevStatus: 'trego muajin e fundit', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Përpara>', nextStatus: 'trego muajin tjetër', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'sot', currentStatus: '', + todayText: 'sot', todayStatus: '', + clearText: 'fshije', clearStatus: 'fshije datën aktuale', + closeText: 'mbylle', closeStatus: 'mbylle pa ndryshime', + yearStatus: 'trego tjetër vit', monthStatus: 'trego muajin tjetër', + weekText: 'Ja', weekStatus: 'Java e muajit', + dayStatus: '\'Zgjedh\' D, M d', defaultStatus: 'Zgjedhe një datë', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sq']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Serbian localisation for calendars datepicker for jQuery. + Written by Dejan Dimić. */ +(function($) { + $.calendarsPicker.regionalOptions['sr-SR'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<', prevStatus: 'Prikaži predhodni mesec', + prevJumpText: '<<', prevJumpStatus: 'Prikaži predhodnu godinu', + nextText: '>', nextStatus: 'Prikaži sledeći mesec', + nextJumpText: '>>', nextJumpStatus: 'Prikaži sledeću godinu', + currentText: 'Danas', currentStatus: 'Tekući mesec', + todayText: 'Danas', todayStatus: 'Tekući mesec', + clearText: 'Obriši', clearStatus: 'Obriši trenutni datum', + closeText: 'Zatvori', closeStatus: 'Zatvori kalendar', + yearStatus: 'Prikaži godine', monthStatus: 'Prikaži mesece', + weekText: 'Sed', weekStatus: 'Sedmica', + dayStatus: '\'Datum\' DD, M d', defaultStatus: 'Odaberi datum', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sr-SR']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Serbian localisation for calendars datepicker for jQuery. + Written by Dejan Dimić. */ +(function($) { + $.calendarsPicker.regionalOptions['sr'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<', prevStatus: 'Прикажи предходни месец', + prevJumpText: '<<', prevJumpStatus: 'Прикажи предходну годину', + nextText: '>', nextStatus: 'Прикажи слецећи месец', + nextJumpText: '>>', nextJumpStatus: 'Прикажи следећу годину', + currentText: 'Данас', currentStatus: 'Текући месец', + todayText: 'Данас', todayStatus: 'Текући месец', + clearText: 'Обриши', clearStatus: 'Обриши тренутни датум', + closeText: 'Затвори', closeStatus: 'Затвори календар', + yearStatus: 'Прикажи године', monthStatus: 'Прикажи месеце', + weekText: 'Сед', weekStatus: 'Седмица', + dayStatus: '\'Датум\' DD d MM', defaultStatus: 'Одабери датум', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sr']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Swedish localisation for calendars datepicker for jQuery. + Written by Anders Ekdahl ( anders@nomadiz.se). */ +(function($) { + $.calendarsPicker.regionalOptions['sv'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '«Förra', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'Nästa»', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Idag', currentStatus: '', + todayText: 'Idag', todayStatus: '', + clearText: 'Rensa', clearStatus: '', + closeText: 'Stäng', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Ve', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sv']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Tamil (UTF-8) localisation for calendars datepicker for jQuery. + Written by S A Sureshkumar (saskumar@live.com). */ +(function($) { + $.calendarsPicker.regionalOptions['ta'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'முன்னையது', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'அடுத்தது', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'இன்று', currentStatus: '', + todayText: 'இன்று', todayStatus: '', + clearText: 'அழி', clearStatus: '', + closeText: 'மூடு', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Wk', weekStatus: '', + dayStatus: 'D, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ta']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Thai localisation for calendars datepicker for jQuery. + Written by pipo (pipo@sixhead.com). */ +(function($) { + $.calendarsPicker.regionalOptions['th'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '« ย้อน', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'ถัดไป »', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'วันนี้', currentStatus: '', + todayText: 'วันนี้', todayStatus: '', + clearText: 'ลบ', clearStatus: '', + closeText: 'ปิด', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Wk', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['th']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Turkish localisation for calendars datepicker for jQuery. + Written by Izzet Emre Erkan (kara@karalamalar.net). */ +(function($) { + $.calendarsPicker.regionalOptions['tr'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<geri', prevStatus: 'önceki ayı göster', + prevJumpText: '<<', prevJumpStatus: '', + nextText: 'ileri>', nextStatus: 'sonraki ayı göster', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'bugün', currentStatus: '', + todayText: 'bugün', todayStatus: '', + clearText: 'temizle', clearStatus: 'geçerli tarihi temizler', + closeText: 'kapat', closeStatus: 'sadece göstergeyi kapat', + yearStatus: 'başka yıl', monthStatus: 'başka ay', + weekText: 'Hf', weekStatus: 'Ayın haftaları', + dayStatus: 'D, M d seçiniz', defaultStatus: 'Bir tarih seçiniz', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['tr']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Tatar localisation for calendars datepicker for jQuery. + Written by Irek Khaziev (khazirek@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['tt'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: 'Алдагы', prevStatus: 'Алдагы айны күрсәтү', + prevJumpText: '<<', prevJumpStatus: 'Алдагы елны күрсәтү', + nextText: 'Киләсе', nextStatus: 'Киләсе айны күрсәтү', + nextJumpText: '>>', nextJumpStatus: 'Киләсе елны күрсәтү', + currentText: 'Хәзер', currentStatus: 'Хәзерге айны күрсәтү', + todayText: 'Бүген', todayStatus: 'Бүгенге айны күрсәтү', + clearText: 'Чистарту', clearStatus: 'Барлык көннәрне чистарту', + closeText: 'Ябарга', closeStatus: 'Көн сайлауны ябарга', + yearStatus: 'Елны кертегез', monthStatus: 'Айны кертегез', + weekText: 'Атна', weekStatus: 'Елда атна саны', + dayStatus: 'DD, M d', defaultStatus: 'Көнне сайлагыз', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['tt']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Ukrainian localisation for calendars datepicker for jQuery. + Written by Maxim Drogobitskiy (maxdao@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['uk'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<', prevStatus: '', + prevJumpText: '<<', prevJumpStatus: '', + nextText: '>', nextStatus: '', + nextJumpText: '>>', nextJumpStatus: '', + currentText: 'Сьогодні', currentStatus: '', + todayText: 'Сьогодні', todayStatus: '', + clearText: 'Очистити', clearStatus: '', + closeText: 'Закрити', closeStatus: '', + yearStatus: '', monthStatus: '', + weekText: 'Не', weekStatus: '', + dayStatus: 'DD, M d', defaultStatus: '', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['uk']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Urdu localisation for calendars datepicker for jQuery. + Mansoor Munib -- mansoormunib@gmail.com + Thanks to Habib Ahmed, ObaidUllah Anwar. */ +(function($) { + $.calendarsPicker.regionalOptions['ur'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<گذشتہ', prevStatus: 'ماه گذشتہ', + prevJumpText: '<<', prevJumpStatus: 'برس گذشتہ', + nextText: 'آئندہ>', nextStatus: 'ماه آئندہ', + nextJumpText: '>>', nextJumpStatus: 'برس آئندہ', + currentText: 'رواں', currentStatus: 'ماه رواں', + todayText: 'آج', todayStatus: 'آج', + clearText: 'حذف تاريخ', clearStatus: 'کریں حذف تاریخ', + closeText: 'کریں بند', closeStatus: 'کیلئے کرنے بند', + yearStatus: 'برس تبدیلی', monthStatus: 'ماه تبدیلی', + weekText: 'ہفتہ', weekStatus: 'ہفتہ', + dayStatus: 'انتخاب D, M d', defaultStatus: 'کریں منتخب تاريخ', + isRTL: true + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ur']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Vietnamese localisation for calendars datepicker for jQuery. + Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */ +(function($) { + $.calendarsPicker.regionalOptions['vi'] = { + renderer: $.calendarsPicker.defaultRenderer, + prevText: '<Trước', prevStatus: 'Tháng trước', + prevJumpText: '<<', prevJumpStatus: 'Năm trước', + nextText: 'Tiếp>', nextStatus: 'Tháng sau', + nextJumpText: '>>', nextJumpStatus: 'Năm sau', + currentText: 'Hôm nay', currentStatus: 'Tháng hiện tại', + todayText: 'Hôm nay', todayStatus: 'Tháng hiện tại', + clearText: 'Xóa', clearStatus: 'Xóa ngày hiện tại', + closeText: 'Đóng', closeStatus: 'Đóng và không lưu lại thay đổi', + yearStatus: 'Năm khác', monthStatus: 'Tháng khác', + weekText: 'Tu', weekStatus: 'Tuần trong năm', + dayStatus: 'Đang chọn DD, \'ngày\' d M', defaultStatus: 'Chọn ngày', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['vi']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Simplified Chinese localisation for calendars datepicker for jQuery. + Written by Cloudream (cloudream@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['zh-CN'] = { + renderer: $.extend({}, $.calendarsPicker.defaultRenderer, + {month: $.calendarsPicker.defaultRenderer.month. + replace(/monthHeader/, 'monthHeader:MM yyyy年')}), + prevText: '<上月', prevStatus: '显示上月', + prevJumpText: '<<', prevJumpStatus: '显示上一年', + nextText: '下月>', nextStatus: '显示下月', + nextJumpText: '>>', nextJumpStatus: '显示下一年', + currentText: '今天', currentStatus: '显示本月', + todayText: '今天', todayStatus: '显示本月', + clearText: '清除', clearStatus: '清除已选日期', + closeText: '关闭', closeStatus: '不改变当前选择', + yearStatus: '选择年份', monthStatus: '选择月份', + weekText: '周', weekStatus: '年内周次', + dayStatus: '选择 m月 d日, DD', defaultStatus: '请选择日期', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['zh-CN']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Hong Kong Chinese localisation for calendars datepicker for jQuery. + Written by SCCY (samuelcychan@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['zh-HK'] = { + renderer: $.extend({}, $.calendarsPicker.defaultRenderer, + {month: $.calendarsPicker.defaultRenderer.month. + replace(/monthHeader/, 'monthHeader:yyyy年 MM')}), + prevText: '<上月', prevStatus: '顯示上月', + prevJumpText: '<<', prevJumpStatus: '顯示上一年', + nextText: '下月>', nextStatus: '顯示下月', + nextJumpText: '>>', nextJumpStatus: '顯示下一年', + currentText: '今天', currentStatus: '顯示本月', + todayText: '今天', todayStatus: '顯示本月', + clearText: '清除', clearStatus: '清除已選日期', + closeText: '關閉', closeStatus: '不改變目前的選擇', + yearStatus: '選擇年份', monthStatus: '選擇月份', + weekText: '周', weekStatus: '年內周次', + dayStatus: '選擇 m月 d日, DD', defaultStatus: '請選擇日期', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['zh-HK']); +})(jQuery); +/* http://keith-wood.name/calendars.html + Traditional Chinese localisation for calendars datepicker for jQuery. + Written by Ressol (ressol@gmail.com). */ +(function($) { + $.calendarsPicker.regionalOptions['zh-TW'] = { + renderer: $.extend({}, $.calendarsPicker.defaultRenderer, + {month: $.calendarsPicker.defaultRenderer.month. + replace(/monthHeader/, 'monthHeader:MM yyyy年')}), + prevText: '<上月', prevStatus: '顯示上月', + prevJumpText: '<<', prevJumpStatus: '顯示上一年', + nextText: '下月>', nextStatus: '顯示下月', + nextJumpText: '>>', nextJumpStatus: '顯示下一年', + currentText: '今天', currentStatus: '顯示本月', + todayText: '今天', todayStatus: '顯示本月', + clearText: '清除', clearStatus: '清除已選日期', + closeText: '關閉', closeStatus: '不改變目前的選擇', + yearStatus: '選擇年份', monthStatus: '選擇月份', + weekText: '周', weekStatus: '年內周次', + dayStatus: '選擇 m月 d日, DD', defaultStatus: '請選擇日期', + isRTL: false + }; + $.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['zh-TW']); +})(jQuery); diff --git a/jquery-src/jquery.calendars.picker.lang.min.js b/jquery-src/jquery.calendars.picker.lang.min.js new file mode 100755 index 0000000..7e22608 --- /dev/null +++ b/jquery-src/jquery.calendars.picker.lang.min.js @@ -0,0 +1,6 @@ +/* http://keith-wood.name/calendars.html + Calendars datepicker localisations for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ +(function($){$.calendarsPicker.regionalOptions['af']={renderer:$.calendarsPicker.defaultRenderer,prevText:'Vorige',prevStatus:'Vertoon vorige maand',prevJumpText:'<<',prevJumpStatus:'Vertoon vorige jaar',nextText:'Volgende',nextStatus:'Vertoon volgende maand',nextJumpText:'>>',nextJumpStatus:'Vertoon volgende jaar',currentText:'Vandag',currentStatus:'Vertoon huidige maand',todayText:'Vandag',todayStatus:'Vertoon huidige maand',clearText:'Vee uit',clearStatus:'Verwyder die huidige datum',closeText:'Klaar',closeStatus:'Sluit sonder verandering',yearStatus:'Vertoon \'n ander jaar',monthStatus:'Vertoon \'n ander maand',weekText:'Wk',weekStatus:'Week van die jaar',dayStatus:'Kies DD, M d',defaultStatus:'Kies \'n datum',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['af'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['am']={renderer:$.calendarsPicker.defaultRenderer,prevText:'ያለፈ',prevStatus:'ያለፈውን ወር አሳይ',prevJumpText:'<<',prevJumpStatus:'ያለፈውን ዓመት አሳይ',nextText:'ቀጣይ',nextStatus:'ቀጣዩን ወር አሳይ',nextJumpText:'>>',nextJumpStatus:'ቀጣዩን ዓመት አሳይ',currentText:'አሁን',currentStatus:'የአሁኑን ወር አሳይ',todayText:'ዛሬ',todayStatus:'የዛሬን ወር አሳይ',clearText:'አጥፋ',clearStatus:'የተመረጠውን ቀን አጥፋ',closeText:'ዝጋ',closeStatus:'የቀን መምረጫውን ዝጋ',yearStatus:'ዓመቱን ቀይር',monthStatus:'ወሩን ቀይር',weekText:'ሳም',weekStatus:'የዓመቱ ሳምንት ',dayStatus:'DD, M d, yyyy ምረጥ',defaultStatus:'ቀን ምረጥ',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['am'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ar-DZ']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<السابق',prevStatus:'عرض الشهر السابق',prevJumpText:'<<',prevJumpStatus:'',nextText:'التالي>',nextStatus:'عرض الشهر القادم',nextJumpText:'>>',nextJumpStatus:'',currentText:'اليوم',currentStatus:'عرض الشهر الحالي',todayText:'اليوم',todayStatus:'عرض الشهر الحالي',clearText:'مسح',clearStatus:'امسح التاريخ الحالي',closeText:'إغلاق',closeStatus:'إغلاق بدون حفظ',yearStatus:'عرض سنة آخرى',monthStatus:'عرض شهر آخر',weekText:'أسبوع',weekStatus:'أسبوع السنة',dayStatus:'اختر D, M d',defaultStatus:'اختر يوم',isRTL:true};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ar-DZ'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ar-EG']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<السابق',prevStatus:'عرض الشهر السابق',prevJumpText:'<<',prevJumpStatus:'',nextText:'التالي>',nextStatus:'عرض الشهر القادم',nextJumpText:'>>',nextJumpStatus:'',currentText:'اليوم',currentStatus:'عرض الشهر الحالي',todayText:'اليوم',todayStatus:'عرض الشهر الحالي',clearText:'مسح',clearStatus:'امسح التاريخ الحالي',closeText:'إغلاق',closeStatus:'إغلاق بدون حفظ',yearStatus:'عرض سنة آخرى',monthStatus:'عرض شهر آخر',weekText:'أسبوع',weekStatus:'أسبوع السنة',dayStatus:'اختر D, M d',defaultStatus:'اختر يوم',isRTL:true};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ar-EG'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ar']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<السابق',prevStatus:'عرض الشهر السابق',prevJumpText:'<<',prevJumpStatus:'',nextText:'التالي>',nextStatus:'عرض الشهر القادم',nextJumpText:'>>',nextJumpStatus:'',currentText:'اليوم',currentStatus:'عرض الشهر الحالي',todayText:'اليوم',todayStatus:'عرض الشهر الحالي',clearText:'مسح',clearStatus:'امسح التاريخ الحالي',closeText:'إغلاق',closeStatus:'إغلاق بدون حفظ',yearStatus:'عرض سنة آخرى',monthStatus:'عرض شهر آخر',weekText:'أسبوع',weekStatus:'أسبوع السنة',dayStatus:'اختر D, M d',defaultStatus:'اختر يوم',isRTL:true};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ar'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['az']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Geri',prevStatus:'Əvvəlki ay',prevJumpText:'<<',prevJumpStatus:'Əvvəlki il',nextText:'İrəli>',nextStatus:'Sonrakı ay',nextJumpText:'>>',nextJumpStatus:'Sonrakı il',currentText:'Bugün',currentStatus:'İndiki ay',todayText:'Bugün',todayStatus:'İndiki ay',clearText:'Təmizlə',clearStatus:'Tarixi sil',closeText:'Bağla',closeStatus:'Təqvimi bağla',yearStatus:'Başqa il',monthStatus:'Başqa ay',weekText:'Hf',weekStatus:'Həftələr',dayStatus:'D, M d seçin',defaultStatus:'Bir tarix seçin',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['az'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['bg']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<назад',prevStatus:'покажи последния месец',prevJumpText:'<<',prevJumpStatus:'',nextText:'напред>',nextStatus:'покажи следващия месец',nextJumpText:'>>',nextJumpStatus:'',currentText:'днес',currentStatus:'',todayText:'днес',todayStatus:'',clearText:'изчисти',clearStatus:'изчисти актуалната дата',closeText:'затвори',closeStatus:'затвори без промени',yearStatus:'покажи друга година',monthStatus:'покажи друг месец',weekText:'Wk',weekStatus:'седмица от месеца',dayStatus:'Избери D, M d',defaultStatus:'Избери дата',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['bg'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['bs']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Danas',currentStatus:'',todayText:'Danas',todayStatus:'',clearText:'X',clearStatus:'',closeText:'Zatvori',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Wk',weekStatus:'',dayStatus:'',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['bs'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ca']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Ant',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Seg>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Avui',currentStatus:'',todayText:'Avui',todayStatus:'',clearText:'Netejar',clearStatus:'',closeText:'Tancar',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Wk',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ca'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['cs']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Dříve',prevStatus:'Přejít na předchozí měsí',prevJumpText:'<<',prevJumpStatus:'',nextText:'Později>',nextStatus:'Přejít na další měsíc',nextJumpText:'>>',nextJumpStatus:'',currentText:'Nyní',currentStatus:'Přejde na aktuální měsíc',todayText:'Nyní',todayStatus:'Přejde na aktuální měsíc',clearText:'Vymazat',clearStatus:'Vymaže zadané datum',closeText:'Zavřít',closeStatus:'Zavře kalendář beze změny',yearStatus:'Přejít na jiný rok',monthStatus:'Přejít na jiný měsíc',weekText:'Týd',weekStatus:'Týden v roce',dayStatus:'\'Vyber\' DD, M d',defaultStatus:'Vyberte datum',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['cs'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['da']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Forrige',prevStatus:'Vis forrige måned',prevJumpText:'<<',prevJumpStatus:'',nextText:'Næste>',nextStatus:'Vis næste måned',nextJumpText:'>>',nextJumpStatus:'',currentText:'Idag',currentStatus:'Vis aktuel måned',todayText:'Idag',todayStatus:'Vis aktuel måned',clearText:'Nulstil',clearStatus:'Nulstil den aktuelle dato',closeText:'Luk',closeStatus:'Luk uden ændringer',yearStatus:'Vis et andet år',monthStatus:'Vis en anden måned',weekText:'Uge',weekStatus:'Årets uge',dayStatus:'Vælg D, M d',defaultStatus:'Vælg en dato',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['da'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['de-CH']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<zurück',prevStatus:'letzten Monat zeigen',prevJumpText:'<<',prevJumpStatus:'',nextText:'nächster>',nextStatus:'nächsten Monat zeigen',nextJumpText:'>>',nextJumpStatus:'',currentText:'heute',currentStatus:'',todayText:'heute',todayStatus:'',clearText:'löschen',clearStatus:'aktuelles Datum löschen',closeText:'schliessen',closeStatus:'ohne Änderungen schliessen',yearStatus:'anderes Jahr anzeigen',monthStatus:'anderen Monat anzeige',weekText:'Wo',weekStatus:'Woche des Monats',dayStatus:'Wähle D, M d',defaultStatus:'Wähle ein Datum',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['de-CH'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['de']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<zurück',prevStatus:'letzten Monat zeigen',prevJumpText:'<<',prevJumpStatus:'',nextText:'Vor>',nextStatus:'nächsten Monat zeigen',nextJumpText:'>>',nextJumpStatus:'',currentText:'heute',currentStatus:'',todayText:'heute',todayStatus:'',clearText:'löschen',clearStatus:'aktuelles Datum löschen',closeText:'schließen',closeStatus:'ohne Änderungen schließen',yearStatus:'anderes Jahr anzeigen',monthStatus:'anderen Monat anzeige',weekText:'Wo',weekStatus:'Woche des Monats',dayStatus:'Wähle D, M d',defaultStatus:'Wähle ein Datum',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['de'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['el']={renderer:$.calendarsPicker.defaultRenderer,prevText:'Προηγούμενος',prevStatus:'Επισκόπηση προηγούμενου μήνα',prevJumpText:'<<',prevJumpStatus:'',nextText:'Επόμενος',nextStatus:'Επισκόπηση επόμενου μήνα',nextJumpText:'>>',nextJumpStatus:'',currentText:'Τρέχων Μήνας',currentStatus:'Επισκόπηση τρέχοντος μήνα',todayText:'Τρέχων Μήνας',todayStatus:'Επισκόπηση τρέχοντος μήνα',clearText:'Σβήσιμο',clearStatus:'Σβήσιμο της επιλεγμένης ημερομηνίας',closeText:'Κλείσιμο',closeStatus:'Κλείσιμο χωρίς αλλαγή',yearStatus:'Επισκόπηση άλλου έτους',monthStatus:'Επισκόπηση άλλου μήνα',weekText:'Εβδ',weekStatus:'',dayStatus:'Επιλογή DD d MM',defaultStatus:'Επιλέξτε μια ημερομηνία',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['el'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['en-AU']={renderer:$.calendarsPicker.defaultRenderer,prevText:'Prev',prevStatus:'Show the previous month',prevJumpText:'<<',prevJumpStatus:'Show the previous year',nextText:'Next',nextStatus:'Show the next month',nextJumpText:'>>',nextJumpStatus:'Show the next year',currentText:'Current',currentStatus:'Show the current month',todayText:'Today',todayStatus:'Show today\'s month',clearText:'Clear',clearStatus:'Clear all the dates',closeText:'Done',closeStatus:'Close the datepicker',yearStatus:'Change the year',monthStatus:'Change the month',weekText:'Wk',weekStatus:'Week of the year',dayStatus:'Select DD, M d, yyyy',defaultStatus:'Select a date',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['en-AU'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['en-GB']={renderer:$.calendarsPicker.defaultRenderer,prevText:'Prev',prevStatus:'Show the previous month',prevJumpText:'<<',prevJumpStatus:'Show the previous year',nextText:'Next',nextStatus:'Show the next month',nextJumpText:'>>',nextJumpStatus:'Show the next year',currentText:'Current',currentStatus:'Show the current month',todayText:'Today',todayStatus:'Show today\'s month',clearText:'Clear',clearStatus:'Clear all the dates',closeText:'Done',closeStatus:'Close the datepicker',yearStatus:'Change the year',monthStatus:'Change the month',weekText:'Wk',weekStatus:'Week of the year',dayStatus:'Select DD, M d, yyyy',defaultStatus:'Select a date',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['en-GB'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['en-NZ']={renderer:$.calendarsPicker.defaultRenderer,prevText:'Prev',prevStatus:'Show the previous month',prevJumpText:'<<',prevJumpStatus:'Show the previous year',nextText:'Next',nextStatus:'Show the next month',nextJumpText:'>>',nextJumpStatus:'Show the next year',currentText:'Current',currentStatus:'Show the current month',todayText:'Today',todayStatus:'Show today\'s month',clearText:'Clear',clearStatus:'Clear all the dates',closeText:'Done',closeStatus:'Close the datepicker',yearStatus:'Change the year',monthStatus:'Change the month',weekText:'Wk',weekStatus:'Week of the year',dayStatus:'Select DD, M d, yyyy',defaultStatus:'Select a date',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['en-NZ'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['eo']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Anta',prevStatus:'Vidi la antaŭan monaton',prevJumpText:'<<',prevJumpStatus:'',nextText:'Sekv>',nextStatus:'Vidi la sekvan monaton',nextJumpText:'>>',nextJumpStatus:'',currentText:'Nuna',currentStatus:'Vidi la nunan monaton',todayText:'Nuna',todayStatus:'Vidi la nunan monaton',clearText:'Vakigi',clearStatus:'',closeText:'Fermi',closeStatus:'Fermi sen modifi',yearStatus:'Vidi alian jaron',monthStatus:'Vidi alian monaton',weekText:'Sb',weekStatus:'',dayStatus:'Elekti DD, MM d',defaultStatus:'Elekti la daton',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['eo'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['es-AR']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Ant',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Sig>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Hoy',currentStatus:'',todayText:'Hoy',todayStatus:'',clearText:'Limpiar',clearStatus:'',closeText:'Cerrar',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Sm',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['es-AR'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['es-PE']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Ant',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Sig>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Hoy',currentStatus:'',todayText:'Hoy',todayStatus:'',clearText:'Limpiar',clearStatus:'',closeText:'Cerrar',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Sm',weekStatus:'',dayStatus:'DD d, MM yyyy',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['es-PE'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['es']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Ant',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Sig>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Hoy',currentStatus:'',todayText:'Hoy',todayStatus:'',clearText:'Limpiar',clearStatus:'',closeText:'Cerrar',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Sm',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['es'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['et']={renderer:$.calendarsPicker.defaultRenderer,prevText:'Eelnev',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Järgnev',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Täna',currentStatus:'',todayText:'Täna',todayStatus:'',clearText:'X',clearStatus:'',closeText:'Sulge',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Wk',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['et'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['eu']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Aur',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Hur>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Gaur',currentStatus:'',todayText:'Gaur',todayStatus:'',clearText:'X',clearStatus:'',closeText:'Egina',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Wk',weekStatus:'',dayStatus:'DD d MM',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['eu'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['fa']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<قبلي',prevStatus:'نمايش ماه قبل',prevJumpText:'<<',prevJumpStatus:'',nextText:'بعدي>',nextStatus:'نمايش ماه بعد',nextJumpText:'>>',nextJumpStatus:'',currentText:'امروز',currentStatus:'نمايش ماه جاري',todayText:'امروز',todayStatus:'نمايش ماه جاري',clearText:'حذف تاريخ',clearStatus:'پاک کردن تاريخ جاري',closeText:'بستن',closeStatus:'بستن بدون اعمال تغييرات',yearStatus:'نمايش سال متفاوت',monthStatus:'نمايش ماه متفاوت',weekText:'هف',weekStatus:'هفتهِ سال',dayStatus:'انتخاب D, M d',defaultStatus:'انتخاب تاريخ',isRTL:true};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['fa'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['fi']={renderer:$.calendarsPicker.defaultRenderer,prevText:'«Edellinen',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Seuraava»',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Tänään',currentStatus:'',todayText:'Tänään',todayStatus:'',clearText:'Tyhjennä',clearStatus:'',closeText:'Sulje',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Vk',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['fi'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['fo']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Sísta',prevStatus:'Vís sísta mánaðan',prevJumpText:'<<',prevJumpStatus:'Vís sísta árið',nextText:'Næsta>',nextStatus:'Vís næsta mánaðan',nextJumpText:'>>',nextJumpStatus:'Vís næsta árið',currentText:'Hesin',currentStatus:'Vís hendan mánaðan',todayText:'Í dag',todayStatus:'Vís mánaðan fyri í dag',clearText:'Strika',clearStatus:'Strika allir mánaðarnar',closeText:'Goym',closeStatus:'Goym hetta vindeyðga',yearStatus:'Broyt árið',monthStatus:'Broyt mánaðans',weekText:'Vk',weekStatus:'Vika av árinum',dayStatus:'Vel DD, M d, yyyy',defaultStatus:'Vel ein dato',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['fo'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['fr-CH']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Préc',prevStatus:'Voir le mois précédent',prevJumpText:'<<',prevJumpStatus:'Voir l\'année précédent',nextText:'Suiv>',nextStatus:'Voir le mois suivant',nextJumpText:'>>',nextJumpStatus:'Voir l\'année suivant',currentText:'Courant',currentStatus:'Voir le mois courant',todayText:'Aujourd\'hui',todayStatus:'Voir aujourd\'hui',clearText:'Effacer',clearStatus:'Effacer la date sélectionnée',closeText:'Fermer',closeStatus:'Fermer sans modifier',yearStatus:'Voir une autre année',monthStatus:'Voir un autre mois',weekText:'Sm',weekStatus:'Semaine de l\'année',dayStatus:'\'Choisir\' le DD d MM',defaultStatus:'Choisir la date',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['fr-CH'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['fr']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Préc',prevStatus:'Voir le mois précédent',prevJumpText:'<<',prevJumpStatus:'Voir l\'année précédent',nextText:'Suiv>',nextStatus:'Voir le mois suivant',nextJumpText:'>>',nextJumpStatus:'Voir l\'année suivant',currentText:'Courant',currentStatus:'Voir le mois courant',todayText:'Aujourd\'hui',todayStatus:'Voir aujourd\'hui',clearText:'Effacer',clearStatus:'Effacer la date sélectionnée',closeText:'Fermer',closeStatus:'Fermer sans modifier',yearStatus:'Voir une autre année',monthStatus:'Voir un autre mois',weekText:'Sm',weekStatus:'Semaine de l\'année',dayStatus:'\'Choisir\' le DD d MM',defaultStatus:'Choisir la date',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['fr'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['gl']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Ant',prevStatus:'Amosar mes anterior',prevJumpText:'<<',prevJumpStatus:'Amosar ano anterior',nextText:'Seg>',nextStatus:'Amosar mes seguinte',nextJumpText:'>>',nextJumpStatus:'Amosar ano seguinte',currentText:'Hoxe',currentStatus:'Amosar mes actual',todayText:'Hoxe',todayStatus:'Amosar mes actual',clearText:'Limpar',clearStatus:'Borrar data actual',closeText:'Pechar',closeStatus:'Pechar sen gardar',yearStatus:'Amosar outro ano',monthStatus:'Amosar outro mes',weekText:'Sm',weekStatus:'Semana do ano',dayStatus:'D, M d',defaultStatus:'Selecciona Data',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['gl'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['gu']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<પાછળ',prevStatus:'પાછલો મહિનો બતાવો',prevJumpText:'<<',prevJumpStatus:'પાછળ',nextText:'આગળ>',nextStatus:'આગલો મહિનો બતાવો',nextJumpText:'>>',nextJumpStatus:'આગળ',currentText:'આજે',currentStatus:'આજનો દિવસ બતાવો',todayText:'આજે',todayStatus:'આજનો દિવસ',clearText:'ભૂંસો',clearStatus:'હાલ પસંદ કરેલી તારીખ ભૂંસો',closeText:'બંધ કરો',closeStatus:'તારીખ પસંદ કર્યા વગર બંધ કરો',yearStatus:'જુદુ વર્ષ બતાવો',monthStatus:'જુદો મહિનો બતાવો',weekText:'અઠવાડિયું',weekStatus:'અઠવાડિયું',dayStatus:'અઠવાડિયાનો પહેલો દિવસ પસંદ કરો',defaultStatus:'તારીખ પસંદ કરો',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['gu'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['he']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<הקודם',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'הבא>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'היום',currentStatus:'',todayText:'היום',todayStatus:'',clearText:'נקה',clearStatus:'',closeText:'סגור',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Wk',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:true};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['he'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['hi-IN']={renderer:$.calendarsPicker.defaultRenderer,prevText:'पिछला',prevStatus:'पिछला महीना देखें',prevJumpText:'<<',prevJumpStatus:'पिछला वर्ष देखें',nextText:'अगला',nextStatus:'अगला महीना देखें',nextJumpText:'>>',nextJumpStatus:'अगला वर्ष देखें',currentText:'वर्तमान',currentStatus:'वर्तमान महीना देखें',todayText:'आज',todayStatus:'वर्तमान दिन देखें',clearText:'साफ',clearStatus:'वर्तमान दिनांक मिटाए',closeText:'समाप्त',closeStatus:'बदलाव के बिना बंद',yearStatus:'एक अलग वर्ष का चयन करें',monthStatus:'एक अलग महीने का चयन करें',weekText:'Wk',weekStatus:'वर्ष का सप्ताह',dayStatus:'चुने DD, M d',defaultStatus:'एक तिथि का चयन करें',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['hi-IN'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['hr']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<',prevStatus:'Prikaži prethodni mjesec',prevJumpText:'<<',prevJumpStatus:'',nextText:'>',nextStatus:'Prikaži slijedeći mjesec',nextJumpText:'>>',nextJumpStatus:'',currentText:'Danas',currentStatus:'Današnji datum',todayText:'Danas',todayStatus:'Današnji datum',clearText:'izbriši',clearStatus:'Izbriši trenutni datum',closeText:'Zatvori',closeStatus:'Zatvori kalendar',yearStatus:'Prikaži godine',monthStatus:'Prikaži mjesece',weekText:'Tje',weekStatus:'Tjedanr',dayStatus:'\'Datum\' DD, M d',defaultStatus:'Odaberi datum',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['hr'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['hu']={renderer:$.calendarsPicker.defaultRenderer,prevText:'« vissza',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'előre »',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'ma',currentStatus:'',todayText:'ma',todayStatus:'',clearText:'törlés',clearStatus:'',closeText:'bezárás',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Hé',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['hu'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['hy']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Նախ.',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Հաջ.>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Այսօր',currentStatus:'',todayText:'Այսօր',todayStatus:'',clearText:'Մաքրել',clearStatus:'',closeText:'Փակել',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'ՇԲՏ',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['hy'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['id']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<mundur',prevStatus:'Tampilkan bulan sebelumnya',prevJumpText:'<<',prevJumpStatus:'',nextText:'maju>',nextStatus:'Tampilkan bulan berikutnya',nextJumpText:'>>',nextJumpStatus:'',currentText:'hari ini',currentStatus:'Tampilkan bulan sekarang',todayText:'hari ini',todayStatus:'Tampilkan bulan sekarang',clearText:'kosongkan',clearStatus:'bersihkan tanggal yang sekarang',closeText:'Tutup',closeStatus:'Tutup tanpa mengubah',yearStatus:'Tampilkan tahun yang berbeda',monthStatus:'Tampilkan bulan yang berbeda',weekText:'Mg',weekStatus:'Minggu dalam tahu',dayStatus:'pilih le DD, MM d',defaultStatus:'Pilih Tanggal',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['id'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['is']={renderer:$.calendarsPicker.defaultRenderer,prevText:'< Fyrri',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Næsti >',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Í dag',currentStatus:'',todayText:'Í dag',todayStatus:'',clearText:'Hreinsa',clearStatus:'',closeText:'Loka',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Vika',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['is'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['it']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Prec',prevStatus:'Mese precedente',prevJumpText:'<<',prevJumpStatus:'Mostra l\'anno precedente',nextText:'Succ>',nextStatus:'Mese successivo',nextJumpText:'>>',nextJumpStatus:'Mostra l\'anno successivo',currentText:'Oggi',currentStatus:'Mese corrente',todayText:'Oggi',todayStatus:'Mese corrente',clearText:'Svuota',clearStatus:'Annulla',closeText:'Chiudi',closeStatus:'Chiudere senza modificare',yearStatus:'Seleziona un altro anno',monthStatus:'Seleziona un altro mese',weekText:'Sm',weekStatus:'Settimana dell\'anno',dayStatus:'\'Seleziona\' DD, M d',defaultStatus:'Scegliere una data',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['it'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ja']={renderer:$.extend({},$.calendarsPicker.defaultRenderer,{month:$.calendarsPicker.defaultRenderer.month.replace(/monthHeader/,'monthHeader:yyyy年 MM')}),prevText:'<前',prevStatus:'前月を表示します',prevJumpText:'<<',prevJumpStatus:'前年を表示します',nextText:'次>',nextStatus:'翌月を表示します',nextJumpText:'>>',nextJumpStatus:'翌年を表示します',currentText:'今日',currentStatus:'今月を表示します',todayText:'今日',todayStatus:'今月を表示します',clearText:'クリア',clearStatus:'日付をクリアします',closeText:'閉じる',closeStatus:'変更せずに閉じます',yearStatus:'表示する年を変更します',monthStatus:'表示する月を変更します',weekText:'週',weekStatus:'暦週で第何週目かを表します',dayStatus:'yyyy/mm/dd',defaultStatus:'日付を選択します',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ja'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ka']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<უკან',prevStatus:'წინა თვე',prevJumpText:'<<',prevJumpStatus:'წინა წელი',nextText:'წინ>',nextStatus:'შემდეგი თვე',nextJumpText:'>>',nextJumpStatus:'შემდეგი წელი',currentText:'მიმდინარე',currentStatus:'მიმდინარე თვე',todayText:'დღეს',todayStatus:'მიმდინარე დღე',clearText:'გასუფთავება',clearStatus:'მიმდინარე თარიღის წაშლა',closeText:'არის',closeStatus:'დახურვა უცვლილებოდ',yearStatus:'სხვა წელი',monthStatus:'სხვა თვე',weekText:'კვ',weekStatus:'წლის კვირა',dayStatus:'აირჩიეთ DD, M d',defaultStatus:'აიღჩიეთ თარიღი',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ka'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['km']={renderer:$.calendarsPicker.defaultRenderer,prevText:'ថយ​ក្រោយ',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'ទៅ​មុខ',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'ថ្ងៃ​នេះ',currentStatus:'',todayText:'ថ្ងៃ​នេះ',todayStatus:'',clearText:'X',clearStatus:'',closeText:'រួច​រាល់',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Wk',weekStatus:'',dayStatus:'DD d MM',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['km'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ko']={renderer:$.extend({},$.calendarsPicker.defaultRenderer,{month:$.calendarsPicker.defaultRenderer.month.replace(/monthHeader/,'monthHeader:yyyy년 MM')}),prevText:'이전달',prevStatus:'이전달을 표시합니다',prevJumpText:'<<',prevJumpStatus:'이전 연도를 표시합니다',nextText:'다음달',nextStatus:'다음달을 표시합니다',nextJumpText:'>>',nextJumpStatus:'다음 연도를 표시합니다',currentText:'현재',currentStatus:'입력한 달을 표시합니다',todayText:'오늘',todayStatus:'이번달을 표시합니다',clearText:'지우기',clearStatus:'입력한 날짜를 지웁니다',closeText:'닫기',closeStatus:'',yearStatus:'표시할 연도를 변경합니다',monthStatus:'표시할 월을 변경합니다',weekText:'Wk',weekStatus:'해당 연도의 주차',dayStatus:'M d일 (D)',defaultStatus:'날짜를 선택하세요',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ko'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['lt']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Atgal',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Pirmyn>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Šiandien',currentStatus:'',todayText:'Šiandien',todayStatus:'',clearText:'Išvalyti',clearStatus:'',closeText:'Uždaryti',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Wk',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['lt'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['lv']={renderer:$.calendarsPicker.defaultRenderer,prevText:'Iepr',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Nāka',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Šodien',currentStatus:'',todayText:'Šodien',todayStatus:'',clearText:'Notīrīt',clearStatus:'',closeText:'Aizvērt',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Nav',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['lv'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['me-ME']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<',prevStatus:'Prikaži prethodni mjesec',prevJumpText:'<<',prevJumpStatus:'Prikaži prethodnu godinu',nextText:'>',nextStatus:'Prikaži sljedeći mjesec',nextJumpText:'>>',nextJumpStatus:'Prikaži sljedeću godinu',currentText:'Danas',currentStatus:'Tekući mjesec',todayText:'Danas',todayStatus:'Tekući mjesec',clearText:'Obriši',clearStatus:'Obriši trenutni datum',closeText:'Zatvori',closeStatus:'Zatvori kalendar',yearStatus:'Prikaži godine',monthStatus:'Prikaži mjesece',weekText:'Sed',weekStatus:'Sedmica',dayStatus:'\'Datum\' DD, M d',defaultStatus:'Odaberi datum',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['me-ME'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['me']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<',prevStatus:'Прикажи претходни мјесец',prevJumpText:'<<',prevJumpStatus:'Прикажи претходну годину',nextText:'>',nextStatus:'Прикажи сљедећи мјесец',nextJumpText:'>>',nextJumpStatus:'Прикажи сљедећу годину',currentText:'Данас',currentStatus:'Текући мјесец',todayText:'Данас',todayStatus:'Текући мјесец',clearText:'Обриши',clearStatus:'Обриши тренутни датум',closeText:'Затвори',closeStatus:'Затвори календар',yearStatus:'Прикажи године',monthStatus:'Прикажи мјесеце',weekText:'Сед',weekStatus:'Седмица',dayStatus:'\'Датум\' DD d MM',defaultStatus:'Одабери датум',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['me'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['mk']={renderer:$.calendarsPicker.defaultRenderer,prevText:'Претх.',prevStatus:'Прикажи го претходниот месец',prevJumpText:'<<',prevJumpStatus:'Прикажи ја претходната година',nextText:'Следен',nextStatus:'Прикажи го следниот месец',nextJumpText:'>>',nextJumpStatus:'Прикажи ја следната година',currentText:'Тековен',currentStatus:'Прикажи го тековниот месец',todayText:'Денес',todayStatus:'Прикажи го денешниот месец',clearText:'Бриши',clearStatus:'Избриши го тековниот датум',closeText:'Затвори',closeStatus:'Затвори без промени',yearStatus:'Избери друга година',monthStatus:'Избери друг месец',weekText:'Нед',weekStatus:'Недела во годината',dayStatus:'Избери DD, M d',defaultStatus:'Избери датум',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['mk'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ml']={renderer:$.calendarsPicker.defaultRenderer,prevText:'മുന്നത്തെ',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'അടുത്തത് ',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'ഇന്ന്',currentStatus:'',todayText:'ഇന്ന്',todayStatus:'',clearText:'X',clearStatus:'',closeText:'ശരി',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'ആ',weekStatus:'',dayStatus:'DD d MM',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ml'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ms']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Sebelum',prevStatus:'Tunjukkan bulan lepas',prevJumpText:'<<',prevJumpStatus:'Tunjukkan tahun lepas',nextText:'Selepas>',nextStatus:'Tunjukkan bulan depan',nextJumpText:'>>',nextJumpStatus:'Tunjukkan tahun depan',currentText:'hari ini',currentStatus:'Tunjukkan bulan terkini',todayText:'hari ini',todayStatus:'Tunjukkan bulan terkini',clearText:'Padam',clearStatus:'Padamkan tarikh terkini',closeText:'Tutup',closeStatus:'Tutup tanpa perubahan',yearStatus:'Tunjukkan tahun yang lain',monthStatus:'Tunjukkan bulan yang lain',weekText:'Mg',weekStatus:'Minggu bagi tahun ini',dayStatus:'DD, d MM',defaultStatus:'Sila pilih tarikh',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ms'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['mt']={renderer:$.calendarsPicker.defaultRenderer,prevText:'Ta Qabel',prevStatus:'Ix-xahar ta qabel',prevJumpText:'<<',prevJumpStatus:'Is-sena ta qabel',nextText:'Li Jmiss',nextStatus:'Ix-xahar li jmiss',nextJumpText:'>>',nextJumpStatus:'Is-sena li jmiss',currentText:'Illum',currentStatus:'Ix-xahar ta llum',todayText:'Illum',todayStatus:'Uri ix-xahar ta llum',clearText:'Ħassar',clearStatus:'Ħassar id-data',closeText:'Lest',closeStatus:'Għalaq mingħajr tibdiliet',yearStatus:'Uri sena differenti',monthStatus:'Uri xahar differenti',weekText:'Ġm',weekStatus:'Il-Ġimgħa fis-sena',dayStatus:'Għazel DD, M d',defaultStatus:'Għazel data',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['mt'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['nl-BE']={renderer:$.calendarsPicker.defaultRenderer,prevText:'←',prevStatus:'Bekijk de vorige maand',prevJumpText:'«',nextJumpStatus:'Bekijk het vorige jaar',nextText:'→',nextStatus:'Bekijk de volgende maand',nextJumpText:'»',nextJumpStatus:'Bekijk het volgende jaar',currentText:'Vandaag',currentStatus:'Bekijk de huidige maand',todayText:'Vandaag',todayStatus:'Bekijk de huidige maand',clearText:'Wissen',clearStatus:'Wis de huidige datum',closeText:'Sluiten',closeStatus:'Sluit zonder verandering',yearStatus:'Bekijk een ander jaar',monthStatus:'Bekijk een andere maand',weekText:'Wk',weekStatus:'Week van het jaar',dayStatus:'dd/mm/yyyy',defaultStatus:'Kies een datum',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['nl-BE'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['nl']={renderer:$.calendarsPicker.defaultRenderer,prevText:'←',prevStatus:'Bekijk de vorige maand',prevJumpText:'«',nextJumpStatus:'Bekijk het vorige jaar',nextText:'→',nextStatus:'Bekijk de volgende maand',nextJumpText:'»',nextJumpStatus:'Bekijk het volgende jaar',currentText:'Vandaag',currentStatus:'Bekijk de huidige maand',todayText:'Vandaag',todayStatus:'Bekijk de huidige maand',clearText:'Wissen',clearStatus:'Wis de huidige datum',closeText:'Sluiten',closeStatus:'Sluit zonder verandering',yearStatus:'Bekijk een ander jaar',monthStatus:'Bekijk een andere maand',weekText:'Wk',weekStatus:'Week van het jaar',dayStatus:'dd-mm-yyyy',defaultStatus:'Kies een datum',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['nl'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['no']={renderer:$.calendarsPicker.defaultRenderer,prevText:'«Forrige',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Neste»',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'I dag',currentStatus:'',todayText:'I dag',todayStatus:'',clearText:'Tøm',clearStatus:'',closeText:'Lukk',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Uke',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['no'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['pl']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Poprzedni',prevStatus:'Pokaż poprzedni miesiąc',prevJumpText:'<<',prevJumpStatus:'',nextText:'Następny>',nextStatus:'Pokaż następny miesiąc',nextJumpText:'>>',nextJumpStatus:'',currentText:'Dziś',currentStatus:'Pokaż aktualny miesiąc',todayText:'Dziś',todayStatus:'Pokaż aktualny miesiąc',clearText:'Wyczyść',clearStatus:'Wyczyść obecną datę',closeText:'Zamknij',closeStatus:'Zamknij bez zapisywania',yearStatus:'Pokaż inny rok',monthStatus:'Pokaż inny miesiąc',weekText:'Tydz',weekStatus:'Tydzień roku',dayStatus:'\'Wybierz\' DD, M d',defaultStatus:'Wybierz datę',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['pl'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['pt-BR']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Anterior',prevStatus:'Mostra o mês anterior',prevJumpText:'<<',prevJumpStatus:'Mostra o ano anterior',nextText:'Próximo>',nextStatus:'Mostra o próximo mês',nextJumpText:'>>',nextJumpStatus:'Mostra o próximo ano',currentText:'Atual',currentStatus:'Mostra o mês atual',todayText:'Hoje',todayStatus:'Vai para hoje',clearText:'Limpar',clearStatus:'Limpar data',closeText:'Fechar',closeStatus:'Fechar o calendário',yearStatus:'Selecionar ano',monthStatus:'Selecionar mês',weekText:'s',weekStatus:'Semana do ano',dayStatus:'DD, d \'de\' M \'de\' yyyy',defaultStatus:'Selecione um dia',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['pt-BR'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['rm']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Suandant',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Precedent>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Actual',currentStatus:'',todayText:'Actual',todayStatus:'',clearText:'X',clearStatus:'',closeText:'Serrar',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'emna',weekStatus:'',dayStatus:'DD d MM',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['rm'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ro']={renderer:$.calendarsPicker.defaultRenderer,prevText:'«Precedenta',prevStatus:'Arata luna precedenta',prevJumpText:'««',prevJumpStatus:'',nextText:'Urmatoare»',nextStatus:'Arata luna urmatoare',nextJumpText:'»»',nextJumpStatus:'',currentText:'Azi',currentStatus:'Arata luna curenta',todayText:'Azi',todayStatus:'Arata luna curenta',clearText:'Curat',clearStatus:'Sterge data curenta',closeText:'Închide',closeStatus:'Închide fara schimbare',yearStatus:'Arat un an diferit',monthStatus:'Arata o luna diferita',weekText:'Săpt',weekStatus:'Săptamana anului',dayStatus:'Selecteaza DD, M d',defaultStatus:'Selecteaza o data',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ro'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ru']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Пред',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'След>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Сегодня',currentStatus:'',todayText:'Сегодня',todayStatus:'',clearText:'Очистить',clearStatus:'',closeText:'Закрыть',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Не',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ru'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['sk']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Predchádzajúci',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Nasledujúci>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Dnes',currentStatus:'',todayText:'Dnes',todayStatus:'',clearText:'Zmazať',clearStatus:'',closeText:'Zavrieť',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Ty',weekStatus:'',dayStatus:'DD. M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sk'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['sl']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Prejšnji',prevStatus:'Prikaži prejšnji mesec',prevJumpText:'<<',prevJumpStatus:'',nextText:'Naslednji>',nextStatus:'Prikaži naslednji mesec',nextJumpText:'>>',nextJumpStatus:'',currentText:'Trenutni',currentStatus:'Prikaži trenutni mesec',todayText:'Trenutni',todayStatus:'Prikaži trenutni mesec',clearText:'Izbriši',clearStatus:'Izbriši trenutni datum',closeText:'Zapri',closeStatus:'Zapri brez spreminjanja',yearStatus:'Prikaži drugo leto',monthStatus:'Prikaži drug mesec',weekText:'Teden',weekStatus:'Teden v letu',dayStatus:'Izberi DD, d MM yy',defaultStatus:'Izbira datuma',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sl'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['sq']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<mbrapa',prevStatus:'trego muajin e fundit',prevJumpText:'<<',prevJumpStatus:'',nextText:'Përpara>',nextStatus:'trego muajin tjetër',nextJumpText:'>>',nextJumpStatus:'',currentText:'sot',currentStatus:'',todayText:'sot',todayStatus:'',clearText:'fshije',clearStatus:'fshije datën aktuale',closeText:'mbylle',closeStatus:'mbylle pa ndryshime',yearStatus:'trego tjetër vit',monthStatus:'trego muajin tjetër',weekText:'Ja',weekStatus:'Java e muajit',dayStatus:'\'Zgjedh\' D, M d',defaultStatus:'Zgjedhe një datë',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sq'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['sr-SR']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<',prevStatus:'Prikaži predhodni mesec',prevJumpText:'<<',prevJumpStatus:'Prikaži predhodnu godinu',nextText:'>',nextStatus:'Prikaži sledeći mesec',nextJumpText:'>>',nextJumpStatus:'Prikaži sledeću godinu',currentText:'Danas',currentStatus:'Tekući mesec',todayText:'Danas',todayStatus:'Tekući mesec',clearText:'Obriši',clearStatus:'Obriši trenutni datum',closeText:'Zatvori',closeStatus:'Zatvori kalendar',yearStatus:'Prikaži godine',monthStatus:'Prikaži mesece',weekText:'Sed',weekStatus:'Sedmica',dayStatus:'\'Datum\' DD, M d',defaultStatus:'Odaberi datum',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sr-SR'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['sr']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<',prevStatus:'Прикажи предходни месец',prevJumpText:'<<',prevJumpStatus:'Прикажи предходну годину',nextText:'>',nextStatus:'Прикажи слецећи месец',nextJumpText:'>>',nextJumpStatus:'Прикажи следећу годину',currentText:'Данас',currentStatus:'Текући месец',todayText:'Данас',todayStatus:'Текући месец',clearText:'Обриши',clearStatus:'Обриши тренутни датум',closeText:'Затвори',closeStatus:'Затвори календар',yearStatus:'Прикажи године',monthStatus:'Прикажи месеце',weekText:'Сед',weekStatus:'Седмица',dayStatus:'\'Датум\' DD d MM',defaultStatus:'Одабери датум',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sr'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['sv']={renderer:$.calendarsPicker.defaultRenderer,prevText:'«Förra',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'Nästa»',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Idag',currentStatus:'',todayText:'Idag',todayStatus:'',clearText:'Rensa',clearStatus:'',closeText:'Stäng',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Ve',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['sv'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ta']={renderer:$.calendarsPicker.defaultRenderer,prevText:'முன்னையது',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'அடுத்தது',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'இன்று',currentStatus:'',todayText:'இன்று',todayStatus:'',clearText:'அழி',clearStatus:'',closeText:'மூடு',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Wk',weekStatus:'',dayStatus:'D, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ta'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['th']={renderer:$.calendarsPicker.defaultRenderer,prevText:'« ย้อน',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'ถัดไป »',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'วันนี้',currentStatus:'',todayText:'วันนี้',todayStatus:'',clearText:'ลบ',clearStatus:'',closeText:'ปิด',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Wk',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['th'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['tr']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<geri',prevStatus:'önceki ayı göster',prevJumpText:'<<',prevJumpStatus:'',nextText:'ileri>',nextStatus:'sonraki ayı göster',nextJumpText:'>>',nextJumpStatus:'',currentText:'bugün',currentStatus:'',todayText:'bugün',todayStatus:'',clearText:'temizle',clearStatus:'geçerli tarihi temizler',closeText:'kapat',closeStatus:'sadece göstergeyi kapat',yearStatus:'başka yıl',monthStatus:'başka ay',weekText:'Hf',weekStatus:'Ayın haftaları',dayStatus:'D, M d seçiniz',defaultStatus:'Bir tarih seçiniz',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['tr'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['tt']={renderer:$.calendarsPicker.defaultRenderer,prevText:'Алдагы',prevStatus:'Алдагы айны күрсәтү',prevJumpText:'<<',prevJumpStatus:'Алдагы елны күрсәтү',nextText:'Киләсе',nextStatus:'Киләсе айны күрсәтү',nextJumpText:'>>',nextJumpStatus:'Киләсе елны күрсәтү',currentText:'Хәзер',currentStatus:'Хәзерге айны күрсәтү',todayText:'Бүген',todayStatus:'Бүгенге айны күрсәтү',clearText:'Чистарту',clearStatus:'Барлык көннәрне чистарту',closeText:'Ябарга',closeStatus:'Көн сайлауны ябарга',yearStatus:'Елны кертегез',monthStatus:'Айны кертегез',weekText:'Атна',weekStatus:'Елда атна саны',dayStatus:'DD, M d',defaultStatus:'Көнне сайлагыз',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['tt'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['uk']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<',prevStatus:'',prevJumpText:'<<',prevJumpStatus:'',nextText:'>',nextStatus:'',nextJumpText:'>>',nextJumpStatus:'',currentText:'Сьогодні',currentStatus:'',todayText:'Сьогодні',todayStatus:'',clearText:'Очистити',clearStatus:'',closeText:'Закрити',closeStatus:'',yearStatus:'',monthStatus:'',weekText:'Не',weekStatus:'',dayStatus:'DD, M d',defaultStatus:'',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['uk'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['ur']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<گذشتہ',prevStatus:'ماه گذشتہ',prevJumpText:'<<',prevJumpStatus:'برس گذشتہ',nextText:'آئندہ>',nextStatus:'ماه آئندہ',nextJumpText:'>>',nextJumpStatus:'برس آئندہ',currentText:'رواں',currentStatus:'ماه رواں',todayText:'آج',todayStatus:'آج',clearText:'حذف تاريخ',clearStatus:'کریں حذف تاریخ',closeText:'کریں بند',closeStatus:'کیلئے کرنے بند',yearStatus:'برس تبدیلی',monthStatus:'ماه تبدیلی',weekText:'ہفتہ',weekStatus:'ہفتہ',dayStatus:'انتخاب D, M d',defaultStatus:'کریں منتخب تاريخ',isRTL:true};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['ur'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['vi']={renderer:$.calendarsPicker.defaultRenderer,prevText:'<Trước',prevStatus:'Tháng trước',prevJumpText:'<<',prevJumpStatus:'Năm trước',nextText:'Tiếp>',nextStatus:'Tháng sau',nextJumpText:'>>',nextJumpStatus:'Năm sau',currentText:'Hôm nay',currentStatus:'Tháng hiện tại',todayText:'Hôm nay',todayStatus:'Tháng hiện tại',clearText:'Xóa',clearStatus:'Xóa ngày hiện tại',closeText:'Đóng',closeStatus:'Đóng và không lưu lại thay đổi',yearStatus:'Năm khác',monthStatus:'Tháng khác',weekText:'Tu',weekStatus:'Tuần trong năm',dayStatus:'Đang chọn DD, \'ngày\' d M',defaultStatus:'Chọn ngày',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['vi'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['zh-CN']={renderer:$.extend({},$.calendarsPicker.defaultRenderer,{month:$.calendarsPicker.defaultRenderer.month.replace(/monthHeader/,'monthHeader:MM yyyy年')}),prevText:'<上月',prevStatus:'显示上月',prevJumpText:'<<',prevJumpStatus:'显示上一年',nextText:'下月>',nextStatus:'显示下月',nextJumpText:'>>',nextJumpStatus:'显示下一年',currentText:'今天',currentStatus:'显示本月',todayText:'今天',todayStatus:'显示本月',clearText:'清除',clearStatus:'清除已选日期',closeText:'关闭',closeStatus:'不改变当前选择',yearStatus:'选择年份',monthStatus:'选择月份',weekText:'周',weekStatus:'年内周次',dayStatus:'选择 m月 d日, DD',defaultStatus:'请选择日期',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['zh-CN'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['zh-HK']={renderer:$.extend({},$.calendarsPicker.defaultRenderer,{month:$.calendarsPicker.defaultRenderer.month.replace(/monthHeader/,'monthHeader:yyyy年 MM')}),prevText:'<上月',prevStatus:'顯示上月',prevJumpText:'<<',prevJumpStatus:'顯示上一年',nextText:'下月>',nextStatus:'顯示下月',nextJumpText:'>>',nextJumpStatus:'顯示下一年',currentText:'今天',currentStatus:'顯示本月',todayText:'今天',todayStatus:'顯示本月',clearText:'清除',clearStatus:'清除已選日期',closeText:'關閉',closeStatus:'不改變目前的選擇',yearStatus:'選擇年份',monthStatus:'選擇月份',weekText:'周',weekStatus:'年內周次',dayStatus:'選擇 m月 d日, DD',defaultStatus:'請選擇日期',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['zh-HK'])})(jQuery);(function($){$.calendarsPicker.regionalOptions['zh-TW']={renderer:$.extend({},$.calendarsPicker.defaultRenderer,{month:$.calendarsPicker.defaultRenderer.month.replace(/monthHeader/,'monthHeader:MM yyyy年')}),prevText:'<上月',prevStatus:'顯示上月',prevJumpText:'<<',prevJumpStatus:'顯示上一年',nextText:'下月>',nextStatus:'顯示下月',nextJumpText:'>>',nextJumpStatus:'顯示下一年',currentText:'今天',currentStatus:'顯示本月',todayText:'今天',todayStatus:'顯示本月',clearText:'清除',clearStatus:'清除已選日期',closeText:'關閉',closeStatus:'不改變目前的選擇',yearStatus:'選擇年份',monthStatus:'選擇月份',weekText:'周',weekStatus:'年內周次',dayStatus:'選擇 m月 d日, DD',defaultStatus:'請選擇日期',isRTL:false};$.calendarsPicker.setDefaults($.calendarsPicker.regionalOptions['zh-TW'])})(jQuery); \ No newline at end of file diff --git a/jquery-src/jquery.calendars.picker.min.js b/jquery-src/jquery.calendars.picker.min.js new file mode 100755 index 0000000..973e5df --- /dev/null +++ b/jquery-src/jquery.calendars.picker.min.js @@ -0,0 +1,6 @@ +/* http://keith-wood.name/calendars.html + Calendars date picker for jQuery v2.0.2. + Written by Keith Wood (wood.keith{at}optusnet.com.au) August 2009. + Available under the MIT (http://keith-wood.name/licence.html) license. + Please attribute the author if you use it. */ +(function($){var H='calendarsPicker';$.JQPlugin.createPlugin({name:H,defaultRenderer:{picker:'
'+'
{link:prev}{link:today}{link:next}
{months}'+'{popup:start}
{link:clear}{link:close}
{popup:end}'+'
',monthRow:'
{months}
',month:'
{monthHeader}
'+'{weekHeader}{weeks}
',weekHeader:'{days}',dayHeader:'{day}',week:'{days}',day:'{day}',monthSelector:'.calendars-month',daySelector:'td',rtlClass:'calendars-rtl',multiClass:'calendars-multi',defaultClass:'',selectedClass:'calendars-selected',highlightedClass:'calendars-highlight',todayClass:'calendars-today',otherMonthClass:'calendars-other-month',weekendClass:'calendars-weekend',commandClass:'calendars-cmd',commandButtonClass:'',commandLinkClass:'',disabledClass:'calendars-disabled'},commands:{prev:{text:'prevText',status:'prevStatus',keystroke:{keyCode:33},enabled:function(a){var b=a.curMinDate();return(!b||a.drawDate.newDate().add(1-a.options.monthsToStep-a.options.monthsOffset,'m').day(a.options.calendar.minDay).add(-1,'d').compareTo(b)!==-1)},date:function(a){return a.drawDate.newDate().add(-a.options.monthsToStep-a.options.monthsOffset,'m').day(a.options.calendar.minDay)},action:function(a){I.changeMonth(this,-a.options.monthsToStep)}},prevJump:{text:'prevJumpText',status:'prevJumpStatus',keystroke:{keyCode:33,ctrlKey:true},enabled:function(a){var b=a.curMinDate();return(!b||a.drawDate.newDate().add(1-a.options.monthsToJump-a.options.monthsOffset,'m').day(a.options.calendar.minDay).add(-1,'d').compareTo(b)!==-1)},date:function(a){return a.drawDate.newDate().add(-a.options.monthsToJump-a.options.monthsOffset,'m').day(a.options.calendar.minDay)},action:function(a){I.changeMonth(this,-a.options.monthsToJump)}},next:{text:'nextText',status:'nextStatus',keystroke:{keyCode:34},enabled:function(a){var b=a.get('maxDate');return(!b||a.drawDate.newDate().add(a.options.monthsToStep-a.options.monthsOffset,'m').day(a.options.calendar.minDay).compareTo(b)!==+1)},date:function(a){return a.drawDate.newDate().add(a.options.monthsToStep-a.options.monthsOffset,'m').day(a.options.calendar.minDay)},action:function(a){I.changeMonth(this,a.options.monthsToStep)}},nextJump:{text:'nextJumpText',status:'nextJumpStatus',keystroke:{keyCode:34,ctrlKey:true},enabled:function(a){var b=a.get('maxDate');return(!b||a.drawDate.newDate().add(a.options.monthsToJump-a.options.monthsOffset,'m').day(a.options.calendar.minDay).compareTo(b)!==+1)},date:function(a){return a.drawDate.newDate().add(a.options.monthsToJump-a.options.monthsOffset,'m').day(a.options.calendar.minDay)},action:function(a){I.changeMonth(this,a.options.monthsToJump)}},current:{text:'currentText',status:'currentStatus',keystroke:{keyCode:36,ctrlKey:true},enabled:function(a){var b=a.curMinDate();var c=a.get('maxDate');var d=a.selectedDates[0]||a.options.calendar.today();return(!b||d.compareTo(b)!==-1)&&(!c||d.compareTo(c)!==+1)},date:function(a){return a.selectedDates[0]||a.options.calendar.today()},action:function(a){var b=a.selectedDates[0]||a.options.calendar.today();I.showMonth(this,b.year(),b.month())}},today:{text:'todayText',status:'todayStatus',keystroke:{keyCode:36,ctrlKey:true},enabled:function(a){var b=a.curMinDate();var c=a.get('maxDate');return(!b||a.options.calendar.today().compareTo(b)!==-1)&&(!c||a.options.calendar.today().compareTo(c)!==+1)},date:function(a){return a.options.calendar.today()},action:function(a){I.showMonth(this)}},clear:{text:'clearText',status:'clearStatus',keystroke:{keyCode:35,ctrlKey:true},enabled:function(a){return true},date:function(a){return null},action:function(a){I.clear(this)}},close:{text:'closeText',status:'closeStatus',keystroke:{keyCode:27},enabled:function(a){return true},date:function(a){return null},action:function(a){I.hide(this)}},prevWeek:{text:'prevWeekText',status:'prevWeekStatus',keystroke:{keyCode:38,ctrlKey:true},enabled:function(a){var b=a.curMinDate();return(!b||a.drawDate.newDate().add(-a.options.calendar.daysInWeek(),'d').compareTo(b)!==-1)},date:function(a){return a.drawDate.newDate().add(-a.options.calendar.daysInWeek(),'d')},action:function(a){I.changeDay(this,-a.options.calendar.daysInWeek())}},prevDay:{text:'prevDayText',status:'prevDayStatus',keystroke:{keyCode:37,ctrlKey:true},enabled:function(a){var b=a.curMinDate();return(!b||a.drawDate.newDate().add(-1,'d').compareTo(b)!==-1)},date:function(a){return a.drawDate.newDate().add(-1,'d')},action:function(a){I.changeDay(this,-1)}},nextDay:{text:'nextDayText',status:'nextDayStatus',keystroke:{keyCode:39,ctrlKey:true},enabled:function(a){var b=a.get('maxDate');return(!b||a.drawDate.newDate().add(1,'d').compareTo(b)!==+1)},date:function(a){return a.drawDate.newDate().add(1,'d')},action:function(a){I.changeDay(this,1)}},nextWeek:{text:'nextWeekText',status:'nextWeekStatus',keystroke:{keyCode:40,ctrlKey:true},enabled:function(a){var b=a.get('maxDate');return(!b||a.drawDate.newDate().add(a.options.calendar.daysInWeek(),'d').compareTo(b)!==+1)},date:function(a){return a.drawDate.newDate().add(a.options.calendar.daysInWeek(),'d')},action:function(a){I.changeDay(this,a.options.calendar.daysInWeek())}}},defaultOptions:{calendar:$.calendars.instance(),pickerClass:'',showOnFocus:true,showTrigger:null,showAnim:'show',showOptions:{},showSpeed:'normal',popupContainer:null,alignment:'bottom',fixedWeeks:false,firstDay:null,calculateWeek:null,localNumbers:false,monthsToShow:1,monthsOffset:0,monthsToStep:1,monthsToJump:12,useMouseWheel:true,changeMonth:true,yearRange:'c-10:c+10',showOtherMonths:false,selectOtherMonths:false,defaultDate:null,selectDefaultDate:false,minDate:null,maxDate:null,dateFormat:null,autoSize:false,rangeSelect:false,rangeSeparator:' - ',multiSelect:0,multiSeparator:',',onDate:null,onShow:null,onChangeMonthYear:null,onSelect:null,onClose:null,altField:null,altFormat:null,constrainInput:true,commandsAsDateFormat:false,commands:{}},regionalOptions:{'':{renderer:{},prevText:'<Prev',prevStatus:'Show the previous month',prevJumpText:'<<',prevJumpStatus:'Show the previous year',nextText:'Next>',nextStatus:'Show the next month',nextJumpText:'>>',nextJumpStatus:'Show the next year',currentText:'Current',currentStatus:'Show the current month',todayText:'Today',todayStatus:'Show today\'s month',clearText:'Clear',clearStatus:'Clear all the dates',closeText:'Close',closeStatus:'Close the datepicker',yearStatus:'Change the year',earlierText:'  ▲',laterText:'  ▼',monthStatus:'Change the month',weekText:'Wk',weekStatus:'Week of the year',dayStatus:'Select DD, M d, yyyy',defaultStatus:'Select a date',isRTL:false}},_getters:['getDate','isDisabled','isSelectable','retrieveDate'],_disabled:[],_popupClass:'calendars-popup',_triggerClass:'calendars-trigger',_disableClass:'calendars-disable',_monthYearClass:'calendars-month-year',_curMonthClass:'calendars-month-',_anyYearClass:'calendars-any-year',_curDoWClass:'calendars-dow-',_init:function(){this.defaultOptions.commands=this.commands;this.regionalOptions[''].renderer=this.defaultRenderer;this._super()},_instSettings:function(b,c){return{selectedDates:[],drawDate:null,pickingRange:false,inline:($.inArray(b[0].nodeName.toLowerCase(),['div','span'])>-1),get:function(a){if($.inArray(a,['defaultDate','minDate','maxDate'])>-1){return this.options.calendar.determineDate(this.options[a],null,this.selectedDates[0],this.get('dateFormat'),this.getConfig())}if(a==='dateFormat'){return this.options.dateFormat||this.options.calendar.local.dateFormat}return this.options[a]},curMinDate:function(){return(this.pickingRange?this.selectedDates[0]:this.get('minDate'))},getConfig:function(){return{dayNamesShort:this.options.dayNamesShort,dayNames:this.options.dayNames,monthNamesShort:this.options.monthNamesShort,monthNames:this.options.monthNames,calculateWeek:this.options.calculateWeek,shortYearCutoff:this.options.shortYearCutoff}}}},_postAttach:function(a,b){if(b.inline){b.drawDate=I._checkMinMax((b.selectedDates[0]||b.get('defaultDate')||b.options.calendar.today()).newDate(),b);b.prevDate=b.drawDate.newDate();this._update(a[0]);if($.fn.mousewheel){a.mousewheel(this._doMouseWheel)}}else{this._attachments(a,b);a.on('keydown.'+b.name,this._keyDown).on('keypress.'+b.name,this._keyPress).on('keyup.'+b.name,this._keyUp);if(a.attr('disabled')){this.disable(a[0])}}},_optionsChanged:function(b,c,d){if(d.calendar&&d.calendar!==c.options.calendar){var e=function(a){return(typeof c.options[a]==='object'?null:c.options[a])};d=$.extend({defaultDate:e('defaultDate'),minDate:e('minDate'),maxDate:e('maxDate')},d);c.selectedDates=[];c.drawDate=null}var f=c.selectedDates;$.extend(c.options,d);this.setDate(b[0],f,null,false,true);c.pickingRange=false;var g=c.options.calendar;var h=c.get('defaultDate');c.drawDate=this._checkMinMax((h?h:c.drawDate)||h||g.today(),c).newDate();if(!c.inline){this._attachments(b,c)}if(c.inline||c.div){this._update(b[0])}},_attachments:function(a,b){a.off('focus.'+b.name);if(b.options.showOnFocus){a.on('focus.'+b.name,this.show)}if(b.trigger){b.trigger.remove()}var c=b.options.showTrigger;b.trigger=(!c?$([]):$(c).clone().removeAttr('id').addClass(this._triggerClass)[b.options.isRTL?'insertBefore':'insertAfter'](a).click(function(){if(!I.isDisabled(a[0])){I[I.curInst===b?'hide':'show'](a[0])}}));this._autoSize(a,b);var d=this._extractDates(b,a.val());if(d){this.setDate(a[0],d,null,true)}var e=b.get('defaultDate');if(b.options.selectDefaultDate&&e&&b.selectedDates.length===0){this.setDate(a[0],(e||b.options.calendar.today()).newDate())}},_autoSize:function(d,e){if(e.options.autoSize&&!e.inline){var f=e.options.calendar;var g=f.newDate(2009,10,20);var h=e.get('dateFormat');if(h.match(/[DM]/)){var j=function(a){var b=0;var c=0;for(var i=0;ib){b=a[i].length;c=i}}return c};g.month(j(f.local[h.match(/MM/)?'monthNames':'monthNamesShort'])+1);g.day(j(f.local[h.match(/DD/)?'dayNames':'dayNamesShort'])+20-g.dayOfWeek())}e.elem.attr('size',g.formatDate(h,{localNumbers:e.options.localnumbers}).length)}},_preDestroy:function(a,b){if(b.trigger){b.trigger.remove()}a.empty().off('.'+b.name);if(b.inline&&$.fn.mousewheel){a.unmousewheel()}if(!b.inline&&b.options.autoSize){a.removeAttr('size')}},multipleEvents:function(b){var c=arguments;return function(a){for(var i=0;i').find('button,select').prop('disabled',true).end().find('a').removeAttr('href')}else{b.prop('disabled',true);c.trigger.filter('button.'+this._triggerClass).prop('disabled',true).end().filter('img.'+this._triggerClass).css({opacity:'0.5',cursor:'default'})}this._disabled=$.map(this._disabled,function(a){return(a===b[0]?null:a)});this._disabled.push(b[0])},isDisabled:function(a){return(a&&$.inArray(a,this._disabled)>-1)},show:function(a){a=$(a.target||a);var b=I._getInst(a);if(I.curInst===b){return}if(I.curInst){I.hide(I.curInst,true)}if(!$.isEmptyObject(b)){b.lastVal=null;b.selectedDates=I._extractDates(b,a.val());b.pickingRange=false;b.drawDate=I._checkMinMax((b.selectedDates[0]||b.get('defaultDate')||b.options.calendar.today()).newDate(),b);b.prevDate=b.drawDate.newDate();I.curInst=b;I._update(a[0],true);var c=I._checkOffset(b);b.div.css({left:c.left,top:c.top});var d=b.options.showAnim;var e=b.options.showSpeed;e=(e==='normal'&&$.ui&&parseInt($.ui.version.substring(2))>=8?'_default':e);if($.effects&&($.effects[d]||($.effects.effect&&$.effects.effect[d]))){var f=b.div.data();for(var g in f){if(g.match(/^ec\.storage\./)){f[g]=b._mainDiv.css(g.replace(/ec\.storage\./,''))}}b.div.data(f).show(d,b.options.showOptions,e)}else{b.div[d||'show'](d?e:0)}}},_extractDates:function(a,b){if(b===a.lastVal){return}a.lastVal=b;b=b.split(a.options.multiSelect?a.options.multiSeparator:(a.options.rangeSelect?a.options.rangeSeparator:'\x00'));var c=[];for(var i=0;i').addClass(this._popupClass).css({display:(b?'none':'static'),position:'absolute',left:a.offset().left,top:a.offset().top+a.outerHeight()}).appendTo($(c.options.popupContainer||'body'));if($.fn.mousewheel){c.div.mousewheel(this._doMouseWheel)}}c.div.html(this._generateContent(a[0],c));a.focus()}}},_updateInput:function(a,b){var c=this._getInst(a);if(!$.isEmptyObject(c)){var d='';var e='';var f=(c.options.multiSelect?c.options.multiSeparator:c.options.rangeSeparator);var g=c.options.calendar;var h=c.get('dateFormat');var j=c.options.altFormat||h;var k={localNumbers:c.options.localNumbers};for(var i=0;i0?f:'')+g.formatDate(h,c.selectedDates[i],k));e+=(i>0?f:'')+g.formatDate(j,c.selectedDates[i],k)}if(!c.inline&&!b){$(a).val(d)}$(c.options.altField).val(e);if($.isFunction(c.options.onSelect)&&!b&&!c.inSelect){c.inSelect=true;c.options.onSelect.apply(a,[c.selectedDates]);c.inSelect=false}}},_getBorders:function(b){var c=function(a){return{thin:1,medium:3,thick:5}[a]||a};return[parseFloat(c(b.css('border-left-width'))),parseFloat(c(b.css('border-top-width')))]},_checkOffset:function(a){var b=(a.elem.is(':hidden')&&a.trigger?a.trigger:a.elem);var c=b.offset();var d=$(window).width();var e=$(window).height();if(d===0){return c}var f=false;$(a.elem).parents().each(function(){f|=$(this).css('position')==='fixed';return!f});var g=document.documentElement.scrollLeft||document.body.scrollLeft;var h=document.documentElement.scrollTop||document.body.scrollTop;var i=c.top-(f?h:0)-a.div.outerHeight();var j=c.top-(f?h:0)+b.outerHeight();var k=c.left-(f?g:0);var l=c.left-(f?g:0)+b.outerWidth()-a.div.outerWidth();var m=(c.left-g+a.div.outerWidth())>d;var n=(c.top-h+a.elem.outerHeight()+a.div.outerHeight())>e;a.div.css('position',f?'fixed':'absolute');var o=a.options.alignment;if(o==='topLeft'){c={left:k,top:i}}else if(o==='topRight'){c={left:l,top:i}}else if(o==='bottomLeft'){c={left:k,top:j}}else if(o==='bottomRight'){c={left:l,top:j}}else if(o==='top'){c={left:(a.options.isRTL||m?l:k),top:i}}else{c={left:(a.options.isRTL||m?l:k),top:(n?i:j)}}c.left=Math.max((f?0:g),c.left);c.top=Math.max((f?0:h),c.top);return c},_checkExternalClick:function(a){if(!I.curInst){return}var b=$(a.target);if(b.closest('.'+I._popupClass+',.'+I._triggerClass).length===0&&!b.hasClass(I._getMarker())){I.hide(I.curInst)}},hide:function(a,b){if(!a){return}var c=this._getInst(a);if($.isEmptyObject(c)){c=a}if(c&&c===I.curInst){var d=(b?'':c.options.showAnim);var e=c.options.showSpeed;e=(e==='normal'&&$.ui&&parseInt($.ui.version.substring(2))>=8?'_default':e);var f=function(){if(!c.div){return}c.div.remove();c.div=null;I.curInst=null;if($.isFunction(c.options.onClose)){c.options.onClose.apply(a,[c.selectedDates])}};c.div.stop();if($.effects&&($.effects[d]||($.effects.effect&&$.effects.effect[d]))){c.div.hide(d,c.options.showOptions,e,f)}else{var g=(d==='slideDown'?'slideUp':(d==='fadeIn'?'fadeOut':'hide'));c.div[g]((d?e:''),f)}if(!d){f()}}},_keyDown:function(a){var b=(a.data&&a.data.elem)||a.target;var c=I._getInst(b);var d=false;if(c.inline||c.div){if(a.keyCode===9){I.hide(b)}else if(a.keyCode===13){I.selectDate(b,$('a.'+c.options.renderer.highlightedClass,c.div)[0]);d=true}else{var e=c.options.commands;for(var f in e){var g=e[f];if(g.keystroke.keyCode===a.keyCode&&!!g.keystroke.ctrlKey===!!(a.ctrlKey||a.metaKey)&&!!g.keystroke.altKey===a.altKey&&!!g.keystroke.shiftKey===a.shiftKey){I.performAction(b,f);d=true;break}}}}else{var g=c.options.commands.current;if(g.keystroke.keyCode===a.keyCode&&!!g.keystroke.ctrlKey===!!(a.ctrlKey||a.metaKey)&&!!g.keystroke.altKey===a.altKey&&!!g.keystroke.shiftKey===a.shiftKey){I.show(b);d=true}}c.ctrlKey=((a.keyCode<48&&a.keyCode!==32)||a.ctrlKey||a.metaKey);if(d){a.preventDefault();a.stopPropagation()}return!d},_keyPress:function(a){var b=I._getInst((a.data&&a.data.elem)||a.target);if(!$.isEmptyObject(b)&&b.options.constrainInput){var c=String.fromCharCode(a.keyCode||a.charCode);var d=I._allowedChars(b);return(a.metaKey||b.ctrlKey||c<' '||!d||d.indexOf(c)>-1)}return true},_allowedChars:function(a){var b=(a.options.multiSelect?a.options.multiSeparator:(a.options.rangeSelect?a.options.rangeSeparator:''));var c=false;var d=false;var e=a.get('dateFormat');for(var i=0;i0){I.setDate(b,d,null,true)}}catch(a){}}return true},_doMouseWheel:function(a,b){var c=(I.curInst&&I.curInst.elem[0])||$(a.target).closest('.'+I._getMarker())[0];if(I.isDisabled(c)){return}var d=I._getInst(c);if(d.options.useMouseWheel){b=(b<0?-1:+1);I.changeMonth(c,-d.options[a.ctrlKey?'monthsToJump':'monthsToStep']*b)}a.preventDefault()},clear:function(a){var b=this._getInst(a);if(!$.isEmptyObject(b)){b.selectedDates=[];this.hide(a);var c=b.get('defaultDate');if(b.options.selectDefaultDate&&c){this.setDate(a,(c||b.options.calendar.today()).newDate())}else{this._updateInput(a)}}},getDate:function(a){var b=this._getInst(a);return(!$.isEmptyObject(b)?b.selectedDates:[])},setDate:function(a,b,c,d,e){var f=this._getInst(a);if(!$.isEmptyObject(f)){if(!$.isArray(b)){b=[b];if(c){b.push(c)}}var g=f.get('minDate');var h=f.get('maxDate');var k=f.selectedDates[0];f.selectedDates=[];for(var i=0;i=d.toJD())&&(!e||b.toJD()<=e.toJD())},performAction:function(a,b){var c=this._getInst(a);if(!$.isEmptyObject(c)&&!this.isDisabled(a)){var d=c.options.commands;if(d[b]&&d[b].enabled.apply(a,[c])){d[b].action.apply(a,[c])}}},showMonth:function(a,b,c,d){var e=this._getInst(a);if(!$.isEmptyObject(e)&&(d!=null||(e.drawDate.year()!==b||e.drawDate.month()!==c))){e.prevDate=e.drawDate.newDate();var f=e.options.calendar;var g=this._checkMinMax((b!=null?f.newDate(b,c,1):f.today()),e);e.drawDate.date(g.year(),g.month(),(d!=null?d:Math.min(e.drawDate.day(),f.daysInMonth(g.year(),g.month()))));this._update(a)}},changeMonth:function(a,b){var c=this._getInst(a);if(!$.isEmptyObject(c)){var d=c.drawDate.newDate().add(b,'m');this.showMonth(a,d.year(),d.month())}},changeDay:function(a,b){var c=this._getInst(a);if(!$.isEmptyObject(c)){var d=c.drawDate.newDate().add(b,'d');this.showMonth(a,d.year(),d.month(),d.day())}},_checkMinMax:function(a,b){var c=b.get('minDate');var d=b.get('maxDate');a=(c&&a.compareTo(c)===-1?c.newDate():a);a=(d&&a.compareTo(d)===+1?d.newDate():a);return a},retrieveDate:function(a,b){var c=this._getInst(a);return($.isEmptyObject(c)?null:c.options.calendar.fromJD(parseFloat(b.className.replace(/^.*jd(\d+\.5).*$/,'$1'))))},selectDate:function(a,b){var c=this._getInst(a);if(!$.isEmptyObject(c)&&!this.isDisabled(a)){var d=this.retrieveDate(a,b);if(c.options.multiSelect){var e=false;for(var i=0;i'+(g?g.formatDate(i.options[f.text],{localNumbers:i.options.localNumbers}):i.options[f.text])+'')};for(var r in i.options.commands){q('button','button type="button"','button',r,i.options.renderer.commandButtonClass);q('link','a href="javascript:void(0)"','a',r,i.options.renderer.commandLinkClass)}p=$(p);if(j[1]>1){var s=0;$(i.options.renderer.monthSelector,p).each(function(){var a=++s%j[1];$(this).addClass(a===1?'first':(a===0?'last':''))})}var t=this;function removeHighlight(){(i.inline?$(this).closest('.'+t._getMarker()):i.div).find(i.options.renderer.daySelector+' a').removeClass(i.options.renderer.highlightedClass)}p.find(i.options.renderer.daySelector+' a').hover(function(){removeHighlight.apply(this);$(this).addClass(i.options.renderer.highlightedClass)},removeHighlight).click(function(){t.selectDate(h,this)}).end().find('select.'+this._monthYearClass+':not(.'+this._anyYearClass+')').change(function(){var a=$(this).val().split('/');t.showMonth(h,parseInt(a[1],10),parseInt(a[0],10))}).end().find('select.'+this._anyYearClass).click(function(){$(this).css('visibility','hidden').next('input').css({left:this.offsetLeft,top:this.offsetTop,width:this.offsetWidth,height:this.offsetHeight}).show().focus()}).end().find('input.'+t._monthYearClass).change(function(){try{var a=parseInt($(this).val(),10);a=(isNaN(a)?i.drawDate.year():a);t.showMonth(h,a,i.drawDate.month(),i.drawDate.day())}catch(e){alert(e)}}).keydown(function(a){if(a.keyCode===13){$(a.elem).change()}else if(a.keyCode===27){$(a.elem).hide().prev('select').css('visibility','visible');i.elem.focus()}});var u={elem:i.elem[0]};p.keydown(u,this._keyDown).keypress(u,this._keyPress).keyup(u,this._keyUp);p.find('.'+i.options.renderer.commandClass).click(function(){if(!$(this).hasClass(i.options.renderer.disabledClass)){var a=this.className.replace(new RegExp('^.*'+i.options.renderer.commandClass+'-([^ ]+).*$'),'$1');I.performAction(h,a)}});if(i.options.isRTL){p.addClass(i.options.renderer.rtlClass)}if(j[0]*j[1]>1){p.addClass(i.options.renderer.multiClass)}if(i.options.pickerClass){p.addClass(i.options.pickerClass)}$('body').append(p);var v=0;p.find(i.options.renderer.monthSelector).each(function(){v+=$(this).outerWidth()});p.width(v/j[0]);if($.isFunction(i.options.onShow)){i.options.onShow.apply(h,[p,i.options.calendar,i])}return p},_generateMonth:function(b,c,d,e,f,g,h){var j=f.daysInMonth(d,e);var k=c.options.monthsToShow;k=($.isArray(k)?k:[1,k]);var l=c.options.fixedWeeks||(k[0]*k[1]>1);var m=c.options.firstDay;m=(m==null?f.local.firstDay:m);var n=(f.dayOfWeek(d,e,f.minDay)-m+f.daysInWeek())%f.daysInWeek();var o=(l?6:Math.ceil((n+j)/f.daysInWeek()));var p=c.options.selectOtherMonths&&c.options.showOtherMonths;var q=(c.pickingRange?c.selectedDates[0]:c.get('minDate'));var r=c.get('maxDate');var s=g.week.indexOf('{weekOfYear}')>-1;var t=f.today();var u=f.newDate(d,e,f.minDay);u.add(-n-(l&&(u.dayOfWeek()===m||u.daysInMonth()'+($.isFunction(c.options.calculateWeek)?c.options.calculateWeek(u):u.weekOfYear())+'');var A='';for(var B=0;B0){C=(u.compareTo(c.selectedDates[0])!==-1&&u.compareTo(c.selectedDates[1])!==+1)}else{for(var i=0;i'+(c.options.showOtherMonths||u.month()===e?D.content||w(u.day()):' ')+(E?'':''));u.add(1,'d');v++}x+=this._prepare(g.week,c).replace(/\{days\}/g,A).replace(/\{weekOfYear\}/g,z)}var F=this._prepare(g.month,c).match(/\{monthHeader(:[^\}]+)?\}/);F=(F[0].length<=13?'MM yyyy':F[0].substring(13,F[0].length-1));F=(h?this._generateMonthSelection(c,d,e,q,r,F,f,g):f.formatDate(F,f.newDate(d,e,f.minDay),{localNumbers:c.options.localNumbers}));var G=this._prepare(g.weekHeader,c).replace(/\{days\}/g,this._generateDayHeaders(c,f,g));return this._prepare(g.month,c).replace(/\{monthHeader(:[^\}]+)?\}/g,F).replace(/\{weekHeader\}/g,G).replace(/\{weeks\}/g,x)},_generateDayHeaders:function(a,b,c){var d=a.options.firstDay;d=(d==null?b.local.firstDay:d);var e='';for(var f=0;f'+b.local.dayNamesMin[g]+'')}return e},_generateMonthSelection:function(b,c,d,e,f,g,h){if(!b.options.changeMonth){return h.formatDate(g,h.newDate(c,d,1),{localNumbers:b.options.localNumbers})}var i=h.local['monthNames'+(g.match(/mm/i)?'':'Short')];var j=g.replace(/m+/i,'\\x2E').replace(/y+/i,'\\x2F');var k='';j=j.replace(/\\x2E/,k);var n=b.options.yearRange;if(n==='any'){k=''+''}else{n=n.split(':');var o=h.today().year();var p=(n[0].match('c[+-].*')?c+parseInt(n[0].substring(1),10):((n[0].match('[+-].*')?o:0)+parseInt(n[0],10)));var q=(n[1].match('c[+-].*')?c+parseInt(n[1].substring(1),10):((n[1].match('[+-].*')?o:0)+parseInt(n[1],10)));k='