From b56fdcb28f01ebba24b0584db7a465772bd2d6dc Mon Sep 17 00:00:00 2001 From: Joe Germuska Date: Wed, 30 Oct 2013 12:07:55 -0500 Subject: [PATCH] replace git submodules with directly included code --- source/js/Core/.gitignore | 5 + source/js/Core/Core/VMM.Browser.js | 156 + source/js/Core/Core/VMM.Core.js | 15 + source/js/Core/Core/VMM.Date.js | 569 ++ source/js/Core/Core/VMM.FileExtention.js | 21 + source/js/Core/Core/VMM.Library.js | 600 ++ source/js/Core/Core/VMM.LoadLib.js | 49 + source/js/Core/Core/VMM.Util.js | 478 ++ source/js/Core/Core/VMM.js | 382 ++ source/js/Core/Embed/Embed.LoadLib.js | 50 + source/js/Core/Embed/Embed.js | 355 ++ source/js/Core/LICENSE | 361 ++ source/js/Core/Language/VMM.Language.js | 37 + source/js/Core/Language/locale/af.js | 38 + source/js/Core/Language/locale/ar.js | 38 + source/js/Core/Language/locale/bg.js | 37 + source/js/Core/Language/locale/ca.js | 37 + source/js/Core/Language/locale/cz.js | 37 + source/js/Core/Language/locale/da.js | 37 + source/js/Core/Language/locale/de.js | 37 + source/js/Core/Language/locale/el.js | 37 + source/js/Core/Language/locale/en-24hr.js | 37 + source/js/Core/Language/locale/en.js | 37 + source/js/Core/Language/locale/es.js | 37 + source/js/Core/Language/locale/eu.js | 38 + source/js/Core/Language/locale/fi.js | 37 + source/js/Core/Language/locale/fo.js | 37 + source/js/Core/Language/locale/fr.js | 38 + source/js/Core/Language/locale/gl.js | 37 + source/js/Core/Language/locale/he.js | 38 + source/js/Core/Language/locale/hu.js | 37 + source/js/Core/Language/locale/hy.js | 37 + source/js/Core/Language/locale/id.js | 37 + source/js/Core/Language/locale/is.js | 38 + source/js/Core/Language/locale/it.js | 38 + source/js/Core/Language/locale/iw.js | 39 + source/js/Core/Language/locale/ja.js | 38 + source/js/Core/Language/locale/ka.js | 37 + source/js/Core/Language/locale/ko.js | 38 + source/js/Core/Language/locale/lb.js | 37 + source/js/Core/Language/locale/lv.js | 37 + source/js/Core/Language/locale/nl.js | 38 + source/js/Core/Language/locale/no.js | 37 + source/js/Core/Language/locale/pl.js | 37 + source/js/Core/Language/locale/pt-br.js | 38 + source/js/Core/Language/locale/pt.js | 37 + source/js/Core/Language/locale/ru.js | 37 + source/js/Core/Language/locale/si.js | 34 + source/js/Core/Language/locale/sk.js | 35 + source/js/Core/Language/locale/sl.js | 37 + source/js/Core/Language/locale/sr-cy.js | 38 + source/js/Core/Language/locale/sr.js | 38 + source/js/Core/Language/locale/sv.js | 37 + source/js/Core/Language/locale/ta.js | 37 + source/js/Core/Language/locale/tl.js | 37 + source/js/Core/Language/locale/tr.js | 37 + source/js/Core/Language/locale/zh-cn.js | 38 + source/js/Core/Language/locale/zh-tw.js | 38 + source/js/Core/Library/AES.js | 463 ++ source/js/Core/Library/LazyLoad.js | 391 ++ source/js/Core/Library/Leaflet.js | 5670 +++++++++++++++++ source/js/Core/Library/bootstrap-tooltip.js | 270 + source/js/Core/Library/jQuery/easing.js | 205 + source/js/Core/Media/VMM.ExternalAPI.js | 1590 +++++ source/js/Core/Media/VMM.Media.js | 10 + source/js/Core/Media/VMM.MediaElement.js | 228 + source/js/Core/Media/VMM.MediaType.js | 145 + source/js/Core/Media/VMM.TextElement.js | 16 + source/js/Core/README.md | 8 + source/js/Core/Slider/VMM.DragSlider.js | 247 + source/js/Core/Slider/VMM.Slider.Slide.js | 281 + source/js/Core/Slider/VMM.Slider.js | 805 +++ source/js/Core/VMM.StoryJS.js | 30 + source/less/Core/.gitignore | 2 + source/less/Core/Font.Default.less | 37 + .../less/Core/Font/AbrilFatface-Average.less | 40 + source/less/Core/Font/Arvo-PTSans.less | 39 + source/less/Core/Font/Bevan-PotanoSans.less | 39 + source/less/Core/Font/BreeSerif-OpenSans.less | 39 + .../less/Core/Font/DroidSerif-DroidSans.less | 45 + source/less/Core/Font/Georgia-Helvetica.less | 37 + source/less/Core/Font/Lekton-Molengo.less | 39 + source/less/Core/Font/Lora-Istok.less | 40 + .../Core/Font/Merriweather-NewsCycle.less | 50 + .../Core/Font/NewsCycle-Merriweather.less | 50 + source/less/Core/Font/NixieOne-Ledger.less | 39 + source/less/Core/Font/PT.less | 44 + source/less/Core/Font/PTSerif-PTSans.less | 40 + source/less/Core/Font/Pacifico-Arimo.less | 39 + .../less/Core/Font/PlayfairDisplay-Muli.less | 39 + source/less/Core/Font/PoiretOne-Molengo.less | 49 + source/less/Core/Font/Rancho-Gudea.less | 41 + source/less/Core/Font/SansitaOne-Kameron.less | 39 + source/less/Core/GFX.less | 453 ++ source/less/Core/LICENSE | 361 ++ source/less/Core/Mixins.less | 236 + source/less/Core/README.md | 8 + source/less/Core/Reset.less | 117 + source/less/Core/Typography.less | 195 + source/less/Core/VMM.Core.less | 404 ++ source/less/Core/VMM.FancyBox.less | 275 + source/less/Core/VMM.Slider.less | 828 +++ source/less/Core/VMM.Tooltip.less | 86 + source/less/Core/Variables.less | 86 + 104 files changed, 18950 insertions(+) create mode 100644 source/js/Core/.gitignore create mode 100644 source/js/Core/Core/VMM.Browser.js create mode 100644 source/js/Core/Core/VMM.Core.js create mode 100644 source/js/Core/Core/VMM.Date.js create mode 100644 source/js/Core/Core/VMM.FileExtention.js create mode 100644 source/js/Core/Core/VMM.Library.js create mode 100644 source/js/Core/Core/VMM.LoadLib.js create mode 100644 source/js/Core/Core/VMM.Util.js create mode 100644 source/js/Core/Core/VMM.js create mode 100644 source/js/Core/Embed/Embed.LoadLib.js create mode 100644 source/js/Core/Embed/Embed.js create mode 100644 source/js/Core/LICENSE create mode 100644 source/js/Core/Language/VMM.Language.js create mode 100644 source/js/Core/Language/locale/af.js create mode 100644 source/js/Core/Language/locale/ar.js create mode 100644 source/js/Core/Language/locale/bg.js create mode 100644 source/js/Core/Language/locale/ca.js create mode 100644 source/js/Core/Language/locale/cz.js create mode 100644 source/js/Core/Language/locale/da.js create mode 100644 source/js/Core/Language/locale/de.js create mode 100644 source/js/Core/Language/locale/el.js create mode 100644 source/js/Core/Language/locale/en-24hr.js create mode 100644 source/js/Core/Language/locale/en.js create mode 100644 source/js/Core/Language/locale/es.js create mode 100644 source/js/Core/Language/locale/eu.js create mode 100644 source/js/Core/Language/locale/fi.js create mode 100644 source/js/Core/Language/locale/fo.js create mode 100644 source/js/Core/Language/locale/fr.js create mode 100644 source/js/Core/Language/locale/gl.js create mode 100644 source/js/Core/Language/locale/he.js create mode 100644 source/js/Core/Language/locale/hu.js create mode 100644 source/js/Core/Language/locale/hy.js create mode 100644 source/js/Core/Language/locale/id.js create mode 100644 source/js/Core/Language/locale/is.js create mode 100644 source/js/Core/Language/locale/it.js create mode 100644 source/js/Core/Language/locale/iw.js create mode 100644 source/js/Core/Language/locale/ja.js create mode 100644 source/js/Core/Language/locale/ka.js create mode 100644 source/js/Core/Language/locale/ko.js create mode 100644 source/js/Core/Language/locale/lb.js create mode 100644 source/js/Core/Language/locale/lv.js create mode 100644 source/js/Core/Language/locale/nl.js create mode 100644 source/js/Core/Language/locale/no.js create mode 100644 source/js/Core/Language/locale/pl.js create mode 100644 source/js/Core/Language/locale/pt-br.js create mode 100644 source/js/Core/Language/locale/pt.js create mode 100644 source/js/Core/Language/locale/ru.js create mode 100644 source/js/Core/Language/locale/si.js create mode 100644 source/js/Core/Language/locale/sk.js create mode 100644 source/js/Core/Language/locale/sl.js create mode 100644 source/js/Core/Language/locale/sr-cy.js create mode 100644 source/js/Core/Language/locale/sr.js create mode 100644 source/js/Core/Language/locale/sv.js create mode 100644 source/js/Core/Language/locale/ta.js create mode 100644 source/js/Core/Language/locale/tl.js create mode 100644 source/js/Core/Language/locale/tr.js create mode 100644 source/js/Core/Language/locale/zh-cn.js create mode 100644 source/js/Core/Language/locale/zh-tw.js create mode 100644 source/js/Core/Library/AES.js create mode 100644 source/js/Core/Library/LazyLoad.js create mode 100755 source/js/Core/Library/Leaflet.js create mode 100644 source/js/Core/Library/bootstrap-tooltip.js create mode 100644 source/js/Core/Library/jQuery/easing.js create mode 100644 source/js/Core/Media/VMM.ExternalAPI.js create mode 100644 source/js/Core/Media/VMM.Media.js create mode 100644 source/js/Core/Media/VMM.MediaElement.js create mode 100644 source/js/Core/Media/VMM.MediaType.js create mode 100644 source/js/Core/Media/VMM.TextElement.js create mode 100644 source/js/Core/README.md create mode 100644 source/js/Core/Slider/VMM.DragSlider.js create mode 100644 source/js/Core/Slider/VMM.Slider.Slide.js create mode 100644 source/js/Core/Slider/VMM.Slider.js create mode 100644 source/js/Core/VMM.StoryJS.js create mode 100644 source/less/Core/.gitignore create mode 100644 source/less/Core/Font.Default.less create mode 100644 source/less/Core/Font/AbrilFatface-Average.less create mode 100644 source/less/Core/Font/Arvo-PTSans.less create mode 100644 source/less/Core/Font/Bevan-PotanoSans.less create mode 100644 source/less/Core/Font/BreeSerif-OpenSans.less create mode 100644 source/less/Core/Font/DroidSerif-DroidSans.less create mode 100644 source/less/Core/Font/Georgia-Helvetica.less create mode 100644 source/less/Core/Font/Lekton-Molengo.less create mode 100644 source/less/Core/Font/Lora-Istok.less create mode 100644 source/less/Core/Font/Merriweather-NewsCycle.less create mode 100644 source/less/Core/Font/NewsCycle-Merriweather.less create mode 100644 source/less/Core/Font/NixieOne-Ledger.less create mode 100644 source/less/Core/Font/PT.less create mode 100644 source/less/Core/Font/PTSerif-PTSans.less create mode 100644 source/less/Core/Font/Pacifico-Arimo.less create mode 100644 source/less/Core/Font/PlayfairDisplay-Muli.less create mode 100644 source/less/Core/Font/PoiretOne-Molengo.less create mode 100644 source/less/Core/Font/Rancho-Gudea.less create mode 100644 source/less/Core/Font/SansitaOne-Kameron.less create mode 100644 source/less/Core/GFX.less create mode 100644 source/less/Core/LICENSE create mode 100644 source/less/Core/Mixins.less create mode 100644 source/less/Core/README.md create mode 100644 source/less/Core/Reset.less create mode 100644 source/less/Core/Typography.less create mode 100644 source/less/Core/VMM.Core.less create mode 100644 source/less/Core/VMM.FancyBox.less create mode 100644 source/less/Core/VMM.Slider.less create mode 100644 source/less/Core/VMM.Tooltip.less create mode 100644 source/less/Core/Variables.less diff --git a/source/js/Core/.gitignore b/source/js/Core/.gitignore new file mode 100644 index 0000000..9de0370 --- /dev/null +++ b/source/js/Core/.gitignore @@ -0,0 +1,5 @@ +.buildpath +.project +.settings +*.DS_Store +.DS_Store* \ No newline at end of file diff --git a/source/js/Core/Core/VMM.Browser.js b/source/js/Core/Core/VMM.Browser.js new file mode 100644 index 0000000..64df21b --- /dev/null +++ b/source/js/Core/Core/VMM.Browser.js @@ -0,0 +1,156 @@ +/* * DEVICE AND BROWSER DETECTION +================================================== */ +if(typeof VMM != 'undefined' && typeof VMM.Browser == 'undefined') { + + VMM.Browser = { + init: function () { + this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; + this.version = this.searchVersion(navigator.userAgent) + || this.searchVersion(navigator.appVersion) + || "an unknown version"; + this.OS = this.searchString(this.dataOS) || "an unknown OS"; + this.device = this.searchDevice(navigator.userAgent); + this.orientation = this.searchOrientation(window.orientation); + }, + searchOrientation: function(orientation) { + var orient = ""; + if ( orientation == 0 || orientation == 180) { + orient = "portrait"; + } else if ( orientation == 90 || orientation == -90) { + orient = "landscape"; + } else { + orient = "normal"; + } + return orient; + }, + searchDevice: function(d) { + var device = ""; + if (d.match(/Android/i) || d.match(/iPhone|iPod/i)) { + device = "mobile"; + } else if (d.match(/iPad/i)) { + device = "tablet"; + } else if (d.match(/BlackBerry/i) || d.match(/IEMobile/i)) { + device = "other mobile"; + } else { + device = "desktop"; + } + return device; + }, + searchString: function (data) { + for (var i=0;i'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' hh:MM TT", + full_long_small_date: "hh:MM TT'
mmm d',' yyyy''" + }, + + month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."], + day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + day_abbr: ["Sun.", "Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."], + hour: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + hour_suffix: ["am"], + + //B.C. + bc_format: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "dddd', 'h:MM TT'
'mmmm d',' yyyy''", + full_long: "dddd',' mmm d',' yyyy 'at' hh:MM TT", + full_long_small_date: "hh:MM TT'
'dddd',' mmm d',' yyyy''" + }, + + setLanguage: function(lang) { + trace("SET DATE LANGUAGE"); + VMM.Date.dateformats = lang.dateformats; + VMM.Date.month = lang.date.month; + VMM.Date.month_abbr = lang.date.month_abbr; + VMM.Date.day = lang.date.day; + VMM.Date.day_abbr = lang.date.day_abbr; + dateFormat.i18n.dayNames = lang.date.day_abbr.concat(lang.date.day); + dateFormat.i18n.monthNames = lang.date.month_abbr.concat(lang.date.month); + }, + + parse: function(d, precision) { + "use strict"; + var date, + date_array, + time_array, + time_parse, + p = { + year: false, + month: false, + day: false, + hour: false, + minute: false, + second: false, + millisecond: false + }; + + if (type.of(d) == "date") { + trace("DEBUG THIS, ITs A DATE"); + date = d; + } else { + date = new Date(0, 0, 1, 0, 0, 0, 0); + + if ( d.match(/,/gi) ) { + date_array = d.split(","); + for(var i = 0; i < date_array.length; i++) { + date_array[i] = parseInt(date_array[i], 10); + } + if (date_array[0]) { + date.setFullYear(date_array[0]); + p.year = true; + } + if (date_array[1]) { + date.setMonth(date_array[1] - 1); + p.month = true; + } + if (date_array[2]) { + date.setDate(date_array[2]); + p.day = true; + } + if (date_array[3]) { + date.setHours(date_array[3]); + p.hour = true; + } + if (date_array[4]) { + date.setMinutes(date_array[4]); + p.minute = true; + } + if (date_array[5]) { + date.setSeconds(date_array[5]); + if (date_array[5] >= 1) { + p.second = true; + } + } + if (date_array[6]) { + date.setMilliseconds(date_array[6]); + if (date_array[6] >= 1) { + p.millisecond = true; + } + } + } else if (d.match("/")) { + if (d.match(" ")) { + + time_parse = d.split(" "); + if (d.match(":")) { + time_array = time_parse[1].split(":"); + if (time_array[0] >= 0 ) { + date.setHours(time_array[0]); + p.hour = true; + } + if (time_array[1] >= 0) { + date.setMinutes(time_array[1]); + p.minute = true; + } + if (time_array[2] >= 0) { + date.setSeconds(time_array[2]); + p.second = true; + } + if (time_array[3] >= 0) { + date.setMilliseconds(time_array[3]); + p.millisecond = true; + } + } + date_array = time_parse[0].split("/"); + } else { + date_array = d.split("/"); + } + if (date_array[2]) { + date.setFullYear(date_array[2]); + p.year = true; + } + if (date_array[0] >= 0) { + date.setMonth(date_array[0] - 1); + p.month = true; + } + if (date_array[1] >= 0) { + if (date_array[1].length > 2) { + date.setFullYear(date_array[1]); + p.year = true; + } else { + date.setDate(date_array[1]); + p.day = true; + } + } + } else if (d.match("now")) { + var now = new Date(); + + date.setFullYear(now.getFullYear()); + p.year = true; + + date.setMonth(now.getMonth()); + p.month = true; + + date.setDate(now.getDate()); + p.day = true; + + if (d.match("hours")) { + date.setHours(now.getHours()); + p.hour = true; + } + if (d.match("minutes")) { + date.setHours(now.getHours()); + date.setMinutes(now.getMinutes()); + p.hour = true; + p.minute = true; + } + if (d.match("seconds")) { + date.setHours(now.getHours()); + date.setMinutes(now.getMinutes()); + date.setSeconds(now.getSeconds()); + p.hour = true; + p.minute = true; + p.second = true; + } + if (d.match("milliseconds")) { + date.setHours(now.getHours()); + date.setMinutes(now.getMinutes()); + date.setSeconds(now.getSeconds()); + date.setMilliseconds(now.getMilliseconds()); + p.hour = true; + p.minute = true; + p.second = true; + p.millisecond = true; + } + } else if (d.length <= 8) { + p.year = true; + date.setFullYear(parseInt(d, 10)); + date.setMonth(0); + date.setDate(1); + date.setHours(0); + date.setMinutes(0); + date.setSeconds(0); + date.setMilliseconds(0); + } else if (d.match("T")) { + if (navigator.userAgent.match(/MSIE\s(?!9.0)/)) { + // IE 8 < Won't accept dates with a "-" in them. + time_parse = d.split("T"); + if (d.match(":")) { + time_array = time_parse[1].split(":"); + if (time_array[0] >= 1) { + date.setHours(time_array[0]); + p.hour = true; + } + if (time_array[1] >= 1) { + date.setMinutes(time_array[1]); + p.minute = true; + } + if (time_array[2] >= 1) { + date.setSeconds(time_array[2]); + if (time_array[2] >= 1) { + p.second = true; + } + } + if (time_array[3] >= 1) { + date.setMilliseconds(time_array[3]); + if (time_array[3] >= 1) { + p.millisecond = true; + } + } + } + date_array = time_parse[0].split("-"); + if (date_array[0]) { + date.setFullYear(date_array[0]); + p.year = true; + } + if (date_array[1] >= 0) { + date.setMonth(date_array[1] - 1); + p.month = true; + } + if (date_array[2] >= 0) { + date.setDate(date_array[2]); + p.day = true; + } + + } else { + date = new Date(Date.parse(d)); + p.year = true; + p.month = true; + p.day = true; + p.hour = true; + p.minute = true; + if (date.getSeconds() >= 1) { + p.second = true; + } + if (date.getMilliseconds() >= 1) { + p.millisecond = true; + } + } + } else { + date = new Date( + parseInt(d.slice(0,4), 10), + parseInt(d.slice(4,6), 10) - 1, + parseInt(d.slice(6,8), 10), + parseInt(d.slice(8,10), 10), + parseInt(d.slice(10,12), 10) + ); + p.year = true; + p.month = true; + p.day = true; + p.hour = true; + p.minute = true; + if (date.getSeconds() >= 1) { + p.second = true; + } + if (date.getMilliseconds() >= 1) { + p.millisecond = true; + } + + } + + } + + if (precision != null && precision != "") { + return { + date: date, + precision: p + }; + } else { + return date; + } + }, + + + + prettyDate: function(d, is_abbr, p, d2) { + var _date, + _date2, + format, + bc_check, + is_pair = false, + bc_original, + bc_number, + bc_string; + + if (d2 != null && d2 != "" && typeof d2 != 'undefined') { + is_pair = true; + trace("D2 " + d2); + } + + + if (type.of(d) == "date") { + + if (type.of(p) == "object") { + if (p.millisecond || p.second && d.getSeconds() >= 1) { + // YEAR MONTH DAY HOUR MINUTE + if (is_abbr){ + format = VMM.Date.dateformats.time_short; + } else { + format = VMM.Date.dateformats.time_short; + } + } else if (p.minute) { + // YEAR MONTH DAY HOUR MINUTE + if (is_abbr){ + format = VMM.Date.dateformats.time_no_seconds_short; + } else { + format = VMM.Date.dateformats.time_no_seconds_small_date; + } + } else if (p.hour) { + // YEAR MONTH DAY HOUR + if (is_abbr) { + format = VMM.Date.dateformats.time_no_seconds_short; + } else { + format = VMM.Date.dateformats.time_no_seconds_small_date; + } + } else if (p.day) { + // YEAR MONTH DAY + if (is_abbr) { + format = VMM.Date.dateformats.full_short; + } else { + format = VMM.Date.dateformats.full; + } + } else if (p.month) { + // YEAR MONTH + if (is_abbr) { + format = VMM.Date.dateformats.month_short; + } else { + format = VMM.Date.dateformats.month; + } + } else if (p.year) { + format = VMM.Date.dateformats.year; + } else { + format = VMM.Date.dateformats.year; + } + + } else { + + if (d.getMonth() === 0 && d.getDate() == 1 && d.getHours() === 0 && d.getMinutes() === 0 ) { + // YEAR ONLY + format = VMM.Date.dateformats.year; + } else if (d.getDate() <= 1 && d.getHours() === 0 && d.getMinutes() === 0) { + // YEAR MONTH + if (is_abbr) { + format = VMM.Date.dateformats.month_short; + } else { + format = VMM.Date.dateformats.month; + } + } else if (d.getHours() === 0 && d.getMinutes() === 0) { + // YEAR MONTH DAY + if (is_abbr) { + format = VMM.Date.dateformats.full_short; + } else { + format = VMM.Date.dateformats.full; + } + } else if (d.getMinutes() === 0) { + // YEAR MONTH DAY HOUR + if (is_abbr) { + format = VMM.Date.dateformats.time_no_seconds_short; + } else { + format = VMM.Date.dateformats.time_no_seconds_small_date; + } + } else { + // YEAR MONTH DAY HOUR MINUTE + if (is_abbr){ + format = VMM.Date.dateformats.time_no_seconds_short; + } else { + format = VMM.Date.dateformats.full_long; + } + } + } + + _date = dateFormat(d, format, false); + //_date = "Jan" + bc_check = _date.split(" "); + + // BC TIME SUPPORT + for(var i = 0; i < bc_check.length; i++) { + if ( parseInt(bc_check[i], 10) < 0 ) { + trace("YEAR IS BC"); + bc_original = bc_check[i]; + bc_number = Math.abs( parseInt(bc_check[i], 10) ); + bc_string = bc_number.toString() + " B.C."; + _date = _date.replace(bc_original, bc_string); + } + } + + + if (is_pair) { + _date2 = dateFormat(d2, format, false); + bc_check = _date2.split(" "); + // BC TIME SUPPORT + for(var j = 0; j < bc_check.length; j++) { + if ( parseInt(bc_check[j], 10) < 0 ) { + trace("YEAR IS BC"); + bc_original = bc_check[j]; + bc_number = Math.abs( parseInt(bc_check[j], 10) ); + bc_string = bc_number.toString() + " B.C."; + _date2 = _date2.replace(bc_original, bc_string); + } + } + + } + } else { + trace("NOT A VALID DATE?"); + trace(d); + } + + if (is_pair) { + return _date + " — " + _date2; + } else { + return _date; + } + } + + }).init(); + + /* + * Date Format 1.2.3 + * (c) 2007-2009 Steven Levithan + * MIT license + * + * Includes enhancements by Scott Trenda + * and Kris Kowal + * + * Accepts a date, a mask, or a date and a mask. + * Returns a formatted version of the given date. + * The date defaults to the current date/time. + * The mask defaults to dateFormat.masks.default. + */ + + var dateFormat = function () { + var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, + timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, + timezoneClip = /[^-+\dA-Z]/g, + pad = function (val, len) { + val = String(val); + len = len || 2; + while (val.length < len) val = "0" + val; + return val; + }; + + // Regexes and supporting functions are cached through closure + return function (date, mask, utc) { + var dF = dateFormat; + + // You can't provide utc if you skip other args (use the "UTC:" mask prefix) + if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) { + mask = date; + date = undefined; + } + + // Passing date through Date applies Date.parse, if necessary + // Caused problems in IE + // date = date ? new Date(date) : new Date; + if (isNaN(date)) { + trace("invalid date " + date); + //return ""; + } + + mask = String(dF.masks[mask] || mask || dF.masks["default"]); + + // Allow setting the utc argument via the mask + if (mask.slice(0, 4) == "UTC:") { + mask = mask.slice(4); + utc = true; + } + + var _ = utc ? "getUTC" : "get", + d = date[_ + "Date"](), + D = date[_ + "Day"](), + m = date[_ + "Month"](), + y = date[_ + "FullYear"](), + H = date[_ + "Hours"](), + M = date[_ + "Minutes"](), + s = date[_ + "Seconds"](), + L = date[_ + "Milliseconds"](), + o = utc ? 0 : date.getTimezoneOffset(), + flags = { + d: d, + dd: pad(d), + ddd: dF.i18n.dayNames[D], + dddd: dF.i18n.dayNames[D + 7], + m: m + 1, + mm: pad(m + 1), + mmm: dF.i18n.monthNames[m], + mmmm: dF.i18n.monthNames[m + 12], + yy: String(y).slice(2), + yyyy: y, + h: H % 12 || 12, + hh: pad(H % 12 || 12), + H: H, + HH: pad(H), + M: M, + MM: pad(M), + s: s, + ss: pad(s), + l: pad(L, 3), + L: pad(L > 99 ? Math.round(L / 10) : L), + t: H < 12 ? "a" : "p", + tt: H < 12 ? "am" : "pm", + T: H < 12 ? "A" : "P", + TT: H < 12 ? "AM" : "PM", + Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""), + o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), + S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10] + }; + + return mask.replace(token, function ($0) { + return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); + }); + }; + }(); + + // Some common format strings + dateFormat.masks = { + "default": "ddd mmm dd yyyy HH:MM:ss", + shortDate: "m/d/yy", + mediumDate: "mmm d, yyyy", + longDate: "mmmm d, yyyy", + fullDate: "dddd, mmmm d, yyyy", + shortTime: "h:MM TT", + mediumTime: "h:MM:ss TT", + longTime: "h:MM:ss TT Z", + isoDate: "yyyy-mm-dd", + isoTime: "HH:MM:ss", + isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", + isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" + }; + + // Internationalization strings + dateFormat.i18n = { + dayNames: [ + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", + "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" + ], + monthNames: [ + "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", + "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" + ] + }; + + // For convenience... + Date.prototype.format = function (mask, utc) { + return dateFormat(this, mask, utc); + }; + +} \ No newline at end of file diff --git a/source/js/Core/Core/VMM.FileExtention.js b/source/js/Core/Core/VMM.FileExtention.js new file mode 100644 index 0000000..a92240e --- /dev/null +++ b/source/js/Core/Core/VMM.FileExtention.js @@ -0,0 +1,21 @@ +/* * File Extention +================================================== */ +if(typeof VMM != 'undefined' && typeof VMM.FileExtention == 'undefined') { + VMM.FileExtention = { + googleDocType: function(url) { + var fileName = url.replace(/\s\s*$/, ''), + fileExtension = "", + validFileExtensions = ["DOC","DOCX","XLS","XLSX","PPT","PPTX","PDF","PAGES","AI","PSD","TIFF","DXF","SVG","EPS","PS","TTF","XPS","ZIP","RAR"], + flag = false; + + fileExtension = fileName.substr(fileName.length - 5, 5); + + for (var i = 0; i < validFileExtensions.length; i++) { + if (fileExtension.toLowerCase().match(validFileExtensions[i].toString().toLowerCase()) || fileName.match("docs.google.com") ) { + flag = true; + } + } + return flag; + } + } +} \ No newline at end of file diff --git a/source/js/Core/Core/VMM.Library.js b/source/js/Core/Core/VMM.Library.js new file mode 100644 index 0000000..0b4935a --- /dev/null +++ b/source/js/Core/Core/VMM.Library.js @@ -0,0 +1,600 @@ +/* * LIBRARY ABSTRACTION +================================================== */ +if(typeof VMM != 'undefined') { + + VMM.smoothScrollTo = function(elem, duration, ease) { + if( typeof( jQuery ) != 'undefined' ){ + var _ease = "easein", + _duration = 1000; + + if (duration != null) { + if (duration < 1) { + _duration = 1; + } else { + _duration = Math.round(duration); + } + + } + + if (ease != null && ease != "") { + _ease = ease; + } + + if (jQuery(window).scrollTop() != VMM.Lib.offset(elem).top) { + VMM.Lib.animate('html,body', _duration, _ease, {scrollTop: VMM.Lib.offset(elem).top}) + } + + } + + }; + + VMM.attachElement = function(element, content) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).html(content); + } + + }; + + VMM.appendElement = function(element, content) { + + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).append(content); + } + + }; + + VMM.getHTML = function(element) { + var e; + if( typeof( jQuery ) != 'undefined' ){ + e = jQuery(element).html(); + return e; + } + + }; + + VMM.getElement = function(element, p) { + var e; + if( typeof( jQuery ) != 'undefined' ){ + if (p) { + e = jQuery(element).parent().get(0); + + } else { + e = jQuery(element).get(0); + } + return e; + } + + }; + + VMM.bindEvent = function(element, the_handler, the_event_type, event_data) { + var e; + var _event_type = "click"; + var _event_data = {}; + + if (the_event_type != null && the_event_type != "") { + _event_type = the_event_type; + } + + if (_event_data != null && _event_data != "") { + _event_data = event_data; + } + + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).bind(_event_type, _event_data, the_handler); + + //return e; + } + + }; + + VMM.unbindEvent = function(element, the_handler, the_event_type) { + var e; + var _event_type = "click"; + var _event_data = {}; + + if (the_event_type != null && the_event_type != "") { + _event_type = the_event_type; + } + + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).unbind(_event_type, the_handler); + + //return e; + } + + }; + + VMM.fireEvent = function(element, the_event_type, the_data) { + var e; + var _event_type = "click"; + var _data = []; + + if (the_event_type != null && the_event_type != "") { + _event_type = the_event_type; + } + if (the_data != null && the_data != "") { + _data = the_data; + } + + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).trigger(_event_type, _data); + + //return e; + } + + }; + + VMM.getJSON = function(url, data, callback) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery.ajaxSetup({ + timeout: 3000 + }); + /* CHECK FOR IE + ================================================== */ + if ( VMM.Browser.browser == "Explorer" && parseInt(VMM.Browser.version, 10) >= 7 && window.XDomainRequest) { + trace("IE JSON"); + var ie_url = url; + if (ie_url.match('^http://')){ + return jQuery.getJSON(ie_url, data, callback); + } else if (ie_url.match('^https://')) { + ie_url = ie_url.replace("https://","http://"); + return jQuery.getJSON(ie_url, data, callback); + } else { + return jQuery.getJSON(url, data, callback); + } + + } else { + return jQuery.getJSON(url, data, callback); + + } + } + } + + VMM.parseJSON = function(the_json) { + if( typeof( jQuery ) != 'undefined' ){ + return jQuery.parseJSON(the_json); + } + } + + // ADD ELEMENT AND RETURN IT + VMM.appendAndGetElement = function(append_to_element, tag, cName, content) { + var e, + _tag = "
", + _class = "", + _content = "", + _id = ""; + + if (tag != null && tag != "") { + _tag = tag; + } + + if (cName != null && cName != "") { + _class = cName; + } + + if (content != null && content != "") { + _content = content; + } + + if( typeof( jQuery ) != 'undefined' ){ + + e = jQuery(tag); + + e.addClass(_class); + e.html(_content); + + jQuery(append_to_element).append(e); + + } + + return e; + + }; + + VMM.Lib = { + + init: function() { + return this; + }, + + hide: function(element, duration) { + if (duration != null && duration != "") { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).hide(duration); + } + } else { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).hide(); + } + } + + }, + + remove: function(element) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).remove(); + } + }, + + detach: function(element) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).detach(); + } + }, + + append: function(element, value) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).append(value); + } + }, + + prepend: function(element, value) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).prepend(value); + } + }, + + show: function(element, duration) { + if (duration != null && duration != "") { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).show(duration); + } + } else { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).show(); + } + } + + }, + + load: function(element, callback_function, event_data) { + var _event_data = {elem:element}; // return element by default + if (_event_data != null && _event_data != "") { + _event_data = event_data; + } + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).load(_event_data, callback_function); + } + }, + + addClass: function(element, cName) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).addClass(cName); + } + }, + + removeClass: function(element, cName) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).removeClass(cName); + } + }, + + attr: function(element, aName, value) { + if (value != null && value != "") { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).attr(aName, value); + } + } else { + if( typeof( jQuery ) != 'undefined' ){ + return jQuery(element).attr(aName); + } + } + }, + + prop: function(element, aName, value) { + if (typeof jQuery == 'undefined' || !/[1-9]\.[3-9].[1-9]/.test(jQuery.fn.jquery)) { + VMM.Lib.attribute(element, aName, value); + } else { + jQuery(element).prop(aName, value); + } + }, + + attribute: function(element, aName, value) { + + if (value != null && value != "") { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).attr(aName, value); + } + } else { + if( typeof( jQuery ) != 'undefined' ){ + return jQuery(element).attr(aName); + } + } + }, + + visible: function(element, show) { + if (show != null) { + if( typeof( jQuery ) != 'undefined' ){ + if (show) { + jQuery(element).show(0); + } else { + jQuery(element).hide(0); + } + } + } else { + if( typeof( jQuery ) != 'undefined' ){ + if ( jQuery(element).is(':visible')){ + return true; + } else { + return false; + } + } + } + }, + + css: function(element, prop, value) { + + if (value != null && value != "") { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).css(prop, value); + } + } else { + if( typeof( jQuery ) != 'undefined' ){ + return jQuery(element).css(prop); + } + } + }, + + cssmultiple: function(element, propval) { + + if( typeof( jQuery ) != 'undefined' ){ + return jQuery(element).css(propval); + } + }, + + offset: function(element) { + var p; + if( typeof( jQuery ) != 'undefined' ){ + p = jQuery(element).offset(); + } + return p; + }, + + position: function(element) { + var p; + if( typeof( jQuery ) != 'undefined' ){ + p = jQuery(element).position(); + } + return p; + }, + + width: function(element, s) { + if (s != null && s != "") { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).width(s); + } + } else { + if( typeof( jQuery ) != 'undefined' ){ + return jQuery(element).width(); + } + } + }, + + height: function(element, s) { + if (s != null && s != "") { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).height(s); + } + } else { + if( typeof( jQuery ) != 'undefined' ){ + return jQuery(element).height(); + } + } + }, + + toggleClass: function(element, cName) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).toggleClass(cName); + } + }, + + each:function(element, return_function) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).each(return_function); + } + + }, + + html: function(element, str) { + var e; + if( typeof( jQuery ) != 'undefined' ){ + e = jQuery(element).html(); + return e; + } + + if (str != null && str != "") { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).html(str); + } + } else { + var e; + if( typeof( jQuery ) != 'undefined' ){ + e = jQuery(element).html(); + return e; + } + } + + }, + + find: function(element, selec) { + if( typeof( jQuery ) != 'undefined' ){ + return jQuery(element).find(selec); + } + }, + + stop: function(element) { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).stop(); + } + }, + + delay_animate: function(delay, element, duration, ease, att, callback_function) { + if (VMM.Browser.device == "mobile" || VMM.Browser.device == "tablet") { + var _tdd = Math.round((duration/1500)*10)/10, + __duration = _tdd + 's'; + + VMM.Lib.css(element, '-webkit-transition', 'all '+ __duration + ' ease'); + VMM.Lib.css(element, '-moz-transition', 'all '+ __duration + ' ease'); + VMM.Lib.css(element, '-o-transition', 'all '+ __duration + ' ease'); + VMM.Lib.css(element, '-ms-transition', 'all '+ __duration + ' ease'); + VMM.Lib.css(element, 'transition', 'all '+ __duration + ' ease'); + VMM.Lib.cssmultiple(element, _att); + } else { + if( typeof( jQuery ) != 'undefined' ){ + jQuery(element).delay(delay).animate(att, {duration:duration, easing:ease} ); + } + } + + }, + + animate: function(element, duration, ease, att, que, callback_function) { + + var _ease = "easein", + _que = false, + _duration = 1000, + _att = {}; + + if (duration != null) { + if (duration < 1) { + _duration = 1; + } else { + _duration = Math.round(duration); + } + + } + + if (ease != null && ease != "") { + _ease = ease; + } + + if (que != null && que != "") { + _que = que; + } + + + if (att != null) { + _att = att + } else { + _att = {opacity: 0} + } + + + if (VMM.Browser.device == "mobile" || VMM.Browser.device == "tablet") { + + var _tdd = Math.round((_duration/1500)*10)/10, + __duration = _tdd + 's'; + + _ease = " cubic-bezier(0.33, 0.66, 0.66, 1)"; + //_ease = " ease-in-out"; + for (x in _att) { + if (Object.prototype.hasOwnProperty.call(_att, x)) { + trace(x + " to " + _att[x]); + VMM.Lib.css(element, '-webkit-transition', x + ' ' + __duration + _ease); + VMM.Lib.css(element, '-moz-transition', x + ' ' + __duration + _ease); + VMM.Lib.css(element, '-o-transition', x + ' ' + __duration + _ease); + VMM.Lib.css(element, '-ms-transition', x + ' ' + __duration + _ease); + VMM.Lib.css(element, 'transition', x + ' ' + __duration + _ease); + } + } + + VMM.Lib.cssmultiple(element, _att); + + } else { + if( typeof( jQuery ) != 'undefined' ){ + if (callback_function != null && callback_function != "") { + jQuery(element).animate(_att, {queue:_que, duration:_duration, easing:_ease, complete:callback_function} ); + } else { + jQuery(element).animate(_att, {queue:_que, duration:_duration, easing:_ease} ); + } + } + } + + } + + } +} + +if( typeof( jQuery ) != 'undefined' ){ + + /* XDR AJAX EXTENTION FOR jQuery + https://github.com/jaubourg/ajaxHooks/blob/master/src/ajax/xdr.js + ================================================== */ + (function( jQuery ) { + if ( window.XDomainRequest ) { + jQuery.ajaxTransport(function( s ) { + if ( s.crossDomain && s.async ) { + if ( s.timeout ) { + s.xdrTimeout = s.timeout; + delete s.timeout; + } + var xdr; + return { + send: function( _, complete ) { + function callback( status, statusText, responses, responseHeaders ) { + xdr.onload = xdr.onerror = xdr.ontimeout = jQuery.noop; + xdr = undefined; + complete( status, statusText, responses, responseHeaders ); + } + xdr = new XDomainRequest(); + xdr.open( s.type, s.url ); + xdr.onload = function() { + callback( 200, "OK", { text: xdr.responseText }, "Content-Type: " + xdr.contentType ); + }; + xdr.onerror = function() { + callback( 404, "Not Found" ); + }; + if ( s.xdrTimeout ) { + xdr.ontimeout = function() { + callback( 0, "timeout" ); + }; + xdr.timeout = s.xdrTimeout; + } + xdr.send( ( s.hasContent && s.data ) || null ); + }, + abort: function() { + if ( xdr ) { + xdr.onerror = jQuery.noop(); + xdr.abort(); + } + } + }; + } + }); + } + })( jQuery ); + + /* jQuery Easing v1.3 + http://gsgd.co.uk/sandbox/jquery/easing/ + ================================================== */ + jQuery.easing['jswing'] = jQuery.easing['swing']; + + jQuery.extend( jQuery.easing, { + def: 'easeOutQuad', + swing: function (x, t, b, c, d) { + //alert(jQuery.easing.default); + return jQuery.easing[jQuery.easing.def](x, t, b, c, d); + }, + easeInExpo: function (x, t, b, c, d) { + return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; + }, + easeOutExpo: function (x, t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + easeInOutExpo: function (x, t, b, c, d) { + if (t==0) return b; + if (t==d) return b+c; + if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; + return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; + }, + easeInQuad: function (x, t, b, c, d) { + return c*(t/=d)*t + b; + }, + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + }, + easeInOutQuad: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + } + }); +} diff --git a/source/js/Core/Core/VMM.LoadLib.js b/source/js/Core/Core/VMM.LoadLib.js new file mode 100644 index 0000000..9f44ad4 --- /dev/null +++ b/source/js/Core/Core/VMM.LoadLib.js @@ -0,0 +1,49 @@ +/* + LoadLib + Designed and built by Zach Wise digitalartwork.net +*/ + +/* * CodeKit Import + * http://incident57.com/codekit/ +================================================== */ +// @codekit-prepend "../Library/LazyLoad.js"; + +LoadLib = (function (doc) { + var loaded = []; + + function isLoaded(url) { + + var i = 0, + has_loaded = false; + + for (i = 0; i < loaded.length; i++) { + if (loaded[i] == url) { + has_loaded = true; + } + } + + if (has_loaded) { + return true; + } else { + loaded.push(url); + return false; + } + + } + + return { + + css: function (urls, callback, obj, context) { + if (!isLoaded(urls)) { + LazyLoad.css(urls, callback, obj, context); + } + }, + + js: function (urls, callback, obj, context) { + if (!isLoaded(urls)) { + LazyLoad.js(urls, callback, obj, context); + } + } + }; + +})(this.document); diff --git a/source/js/Core/Core/VMM.Util.js b/source/js/Core/Core/VMM.Util.js new file mode 100644 index 0000000..c0610e5 --- /dev/null +++ b/source/js/Core/Core/VMM.Util.js @@ -0,0 +1,478 @@ +/* * Utilities and Useful Functions +================================================== */ +if(typeof VMM != 'undefined' && typeof VMM.Util == 'undefined') { + + VMM.Util = ({ + + init: function() { + return this; + }, + + /* * CORRECT PROTOCOL (DOES NOT WORK) + ================================================== */ + correctProtocol: function(url) { + var loc = (window.parent.location.protocol).toString(), + prefix = "", + the_url = url.split("://", 2); + + if (loc.match("http")) { + prefix = loc; + } else { + prefix = "https"; + } + + return prefix + "://" + the_url[1]; + + }, + + /* * MERGE CONFIG + ================================================== */ + mergeConfig: function(config_main, config_to_merge) { + var x; + for (x in config_to_merge) { + if (Object.prototype.hasOwnProperty.call(config_to_merge, x)) { + config_main[x] = config_to_merge[x]; + } + } + return config_main; + }, + + /* * GET OBJECT ATTRIBUTE BY INDEX + ================================================== */ + getObjectAttributeByIndex: function(obj, index) { + if(typeof obj != 'undefined') { + var i = 0; + for (var attr in obj){ + if (index === i){ + return obj[attr]; + } + i++; + } + return ""; + } else { + return ""; + } + + }, + + /* * ORDINAL + ================================================== */ + ordinal: function(n) { + return ["th","st","nd","rd"][(!( ((n%10) >3) || (Math.floor(n%100/10)==1)) ) * (n%10)]; + }, + + /* * RANDOM BETWEEN + ================================================== */ + //VMM.Util.randomBetween(1, 3) + randomBetween: function(min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); + }, + + /* * AVERAGE + * http://jsfromhell.com/array/average + * var x = VMM.Util.average([2, 3, 4]); + * VMM.Util.average([2, 3, 4]).mean + ================================================== */ + average: function(a) { + var r = {mean: 0, variance: 0, deviation: 0}, t = a.length; + for(var m, s = 0, l = t; l--; s += a[l]); + for(m = r.mean = s / t, l = t, s = 0; l--; s += Math.pow(a[l] - m, 2)); + return r.deviation = Math.sqrt(r.variance = s / t), r; + }, + + /* * CUSTOM SORT + ================================================== */ + customSort: function(a, b) { + var a1= a, b1= b; + if(a1== b1) return 0; + return a1> b1? 1: -1; + }, + + /* * Remove Duplicates from Array + ================================================== */ + deDupeArray: function(arr) { + var i, + len=arr.length, + out=[], + obj={}; + + for (i=0;i h) { + _fit.height = h; + //_fit.width = Math.round((w / ratio_w) * ratio_h); + _fit.width = Math.round((h / ratio_h) * ratio_w); + + if (_fit.width > w) { + trace("FIT: DIDN'T FIT!!! ") + } + } + + return _fit; + + }, + r16_9: function(w,h) { + //VMM.Util.ratio.r16_9(w, h) // Returns corresponding number + if (w !== null && w !== "") { + return Math.round((h / 16) * 9); + } else if (h !== null && h !== "") { + return Math.round((w / 9) * 16); + } + }, + r4_3: function(w,h) { + if (w !== null && w !== "") { + return Math.round((h / 4) * 3); + } else if (h !== null && h !== "") { + return Math.round((w / 3) * 4); + } + } + }, + + doubledigit: function(n) { + return (n < 10 ? '0' : '') + n; + }, + + /* * Returns a truncated segement of a long string of between min and max words. If possible, ends on a period (otherwise goes to max). + ================================================== */ + truncateWords: function(s, min, max) { + + if (!min) min = 30; + if (!max) max = min; + + var initial_whitespace_rExp = /^[^A-Za-z0-9\'\-]+/gi; + var left_trimmedStr = s.replace(initial_whitespace_rExp, ""); + var words = left_trimmedStr.split(" "); + + var result = []; + + min = Math.min(words.length, min); + max = Math.min(words.length, max); + + for (var i = 0; i$&") + .replace(pseudoUrlPattern, "$1$2") + .replace(emailAddressPattern, "$1"); + }, + + linkify_with_twitter: function(text,targets,is_touch) { + + // http://, https://, ftp:// + var urlPattern = /\b(?:https?|ftp):\/\/[a-z0-9-+&@#\/%?=~_|!:,.;]*[a-z0-9-+&@#\/%=~_|]/gim; + var url_pattern = /(\()((?:ht|f)tps?:\/\/[a-z0-9\-._~!$&'()*+,;=:\/?#[\]@%]+)(\))|(\[)((?:ht|f)tps?:\/\/[a-z0-9\-._~!$&'()*+,;=:\/?#[\]@%]+)(\])|(\{)((?:ht|f)tps?:\/\/[a-z0-9\-._~!$&'()*+,;=:\/?#[\]@%]+)(\})|(<|&(?:lt|#60|#x3c);)((?:ht|f)tps?:\/\/[a-z0-9\-._~!$&'()*+,;=:\/?#[\]@%]+)(>|&(?:gt|#62|#x3e);)|((?:^|[^=\s'"\]])\s*['"]?|[^=\s]\s+)(\b(?:ht|f)tps?:\/\/[a-z0-9\-._~!$'()*+,;=:\/?#[\]@%]+(?:(?!&(?:gt|#0*62|#x0*3e);|&(?:amp|apos|quot|#0*3[49]|#x0*2[27]);[.!&',:?;]?(?:[^a-z0-9\-._~!$&'()*+,;=:\/?#[\]@%]|$))&[a-z0-9\-._~!$'()*+,;=:\/?#[\]@%]*)*[a-z0-9\-_~$()*+=\/#[\]@%])/img; + var url_replace = '$1$4$7$10$13$2$5$8$11$14$3$6$9$12'; + + // www. sans http:// or https:// + var pseudoUrlPattern = /(^|[^\/])(www\.[\S]+(\b|$))/gim; + function replaceURLWithHTMLLinks(text) { + var exp = /(\b(https?|ftp|file):\/\/([-A-Z0-9+&@#%?=~_|!:,.;]*)([-A-Z0-9+&@#%?\/=~_|!:,.;]*)[-A-Z0-9+&@#\/%=~_|])/ig; + return text.replace(exp, "$3"); + } + // Email addresses + var emailAddressPattern = /(([a-zA-Z0-9_\-\.]+)@[a-zA-Z_]+?(?:\.[a-zA-Z]{2,6}))+/gim; + + //var twitterHandlePattern = /(@([\w]+))/g; + var twitterHandlePattern = /\B@([\w-]+)/gm; + var twitterSearchPattern = /(#([\w]+))/g; + + return text + //.replace(urlPattern, "$&") + .replace(url_pattern, url_replace) + .replace(pseudoUrlPattern, "$1$2") + .replace(emailAddressPattern, "$1") + .replace(twitterHandlePattern, "@$1"); + + // TURN THIS BACK ON TO AUTOMAGICALLY LINK HASHTAGS TO TWITTER SEARCH + //.replace(twitterSearchPattern, "$1"); + }, + + linkify_wikipedia: function(text) { + + var urlPattern = /]*>(.*?)<\/i>/gim; + return text + .replace(urlPattern, "$&") + .replace(/]*>/gim, "") + .replace(/<\/i>/gim, "") + .replace(/]*>/gim, "") + .replace(/<\/b>/gim, ""); + }, + + /* * Turns plain text links into real links + ================================================== */ + // VMM.Util.unlinkify(); + unlinkify: function(text) { + if(!text) return text; + text = text.replace(/]*>/i,""); + text = text.replace(/<\/a>/i, ""); + return text; + }, + + untagify: function(text) { + if (!text) { + return text; + } + text = text.replace(/<\s*\w.*?>/g,""); + return text; + }, + + /* * TK + ================================================== */ + nl2br: function(text) { + return text.replace(/(\r\n|[\r\n]|\\n|\\r)/g,"
"); + }, + + /* * Generate a Unique ID + ================================================== */ + // VMM.Util.unique_ID(size); + unique_ID: function(size) { + + var getRandomNumber = function(range) { + return Math.floor(Math.random() * range); + }; + + var getRandomChar = function() { + var chars = "abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ"; + return chars.substr( getRandomNumber(62), 1 ); + }; + + var randomID = function(size) { + var str = ""; + for(var i = 0; i < size; i++) { + str += getRandomChar(); + } + return str; + }; + + return randomID(size); + }, + /* * Tells you if a number is even or not + ================================================== */ + // VMM.Util.isEven(n) + isEven: function(n){ + return (n%2 === 0) ? true : false; + }, + /* * Get URL Variables + ================================================== */ + // var somestring = VMM.Util.getUrlVars(str_url)["varname"]; + getUrlVars: function(string) { + + var str = string.toString(); + + if (str.match('&')) { + str = str.replace("&", "&"); + } else if (str.match('&')) { + str = str.replace("&", "&"); + } else if (str.match('&')) { + str = str.replace("&", "&"); + } + + var vars = [], hash; + var hashes = str.slice(str.indexOf('?') + 1).split('&'); + for(var i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars.push(hash[0]); + vars[hash[0]] = hash[1]; + } + + + return vars; + }, + + /* * Cleans up strings to become real HTML + ================================================== */ + toHTML: function(text) { + + text = this.nl2br(text); + text = this.linkify(text); + + return text.replace(/\s\s/g,"  "); + }, + + /* * Returns text strings as CamelCase + ================================================== */ + toCamelCase: function(s,forceLowerCase) { + + if(forceLowerCase !== false) forceLowerCase = true; + + var sps = ((forceLowerCase) ? s.toLowerCase() : s).split(" "); + + for(var i=0; i 1 ? '.' + x[1] : ''; + var rgx = /(\d+)(\d{3})/; + while (rgx.test(x1)) { + x1 = x1.replace(rgx, '$1' + ',' + '$2'); + } + return x1 + x2; + }, + /* * Transform text to Title Case + ================================================== */ + toTitleCase: function(t){ + if ( VMM.Browser.browser == "Explorer" && parseInt(VMM.Browser.version, 10) >= 7) { + return t.replace("_", "%20"); + } else { + var __TitleCase = { + __smallWords: ['a', 'an', 'and', 'as', 'at', 'but','by', 'en', 'for', 'if', 'in', 'of', 'on', 'or','the', 'to', 'v[.]?', 'via', 'vs[.]?'], + + init: function() { + this.__smallRE = this.__smallWords.join('|'); + this.__lowerCaseWordsRE = new RegExp('\\b(' + this.__smallRE + ')\\b', 'gi'); + this.__firstWordRE = new RegExp('^([^a-zA-Z0-9 \\r\\n\\t]*)(' + this.__smallRE + ')\\b', 'gi'); + this.__lastWordRE = new RegExp('\\b(' + this.__smallRE + ')([^a-zA-Z0-9 \\r\\n\\t]*)$', 'gi'); + }, + + toTitleCase: function(string) { + var line = ''; + + var split = string.split(/([:.;?!][ ]|(?:[ ]|^)["“])/); + + for (var i = 0; i < split.length; ++i) { + var s = split[i]; + + s = s.replace(/\b([a-zA-Z][a-z.'’]*)\b/g,this.__titleCaseDottedWordReplacer); + + // lowercase the list of small words + s = s.replace(this.__lowerCaseWordsRE, this.__lowerReplacer); + + // if the first word in the title is a small word then capitalize it + s = s.replace(this.__firstWordRE, this.__firstToUpperCase); + + // if the last word in the title is a small word, then capitalize it + s = s.replace(this.__lastWordRE, this.__firstToUpperCase); + + line += s; + } + + // special cases + line = line.replace(/ V(s?)\. /g, ' v$1. '); + line = line.replace(/(['’])S\b/g, '$1s'); + line = line.replace(/\b(AT&T|Q&A)\b/ig, this.__upperReplacer); + + return line; + }, + + __titleCaseDottedWordReplacer: function (w) { + return (w.match(/[a-zA-Z][.][a-zA-Z]/)) ? w : __TitleCase.__firstToUpperCase(w); + }, + + __lowerReplacer: function (w) { return w.toLowerCase() }, + + __upperReplacer: function (w) { return w.toUpperCase() }, + + __firstToUpperCase: function (w) { + var split = w.split(/(^[^a-zA-Z0-9]*[a-zA-Z0-9])(.*)$/); + if (split[1]) { + split[1] = split[1].toUpperCase(); + } + + return split.join(''); + + + } + }; + + __TitleCase.init(); + + t = t.replace(/_/g," "); + t = __TitleCase.toTitleCase(t); + + return t; + + } + + } + + }).init(); +} \ No newline at end of file diff --git a/source/js/Core/Core/VMM.js b/source/js/Core/Core/VMM.js new file mode 100644 index 0000000..186cf0e --- /dev/null +++ b/source/js/Core/Core/VMM.js @@ -0,0 +1,382 @@ +/** + * VéritéCo JS Core + * Designed and built by Zach Wise at VéritéCo zach@verite.co + + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + +*/ + + +/* Simple JavaScript Inheritance + By John Resig http://ejohn.org/ + MIT Licensed. +================================================== */ +(function() { + var initializing = false, + fnTest = /xyz/.test(function() { + xyz; + }) ? /\b_super\b/: /.*/; + // The base Class implementation (does nothing) + this.Class = function() {}; + + // Create a new Class that inherits from this class + Class.extend = function(prop) { + var _super = this.prototype; + + // Instantiate a base class (but only create the instance, + // don't run the init constructor) + initializing = true; + var prototype = new this(); + initializing = false; + + // Copy the properties over onto the new prototype + for (var name in prop) { + // Check if we're overwriting an existing function + prototype[name] = typeof prop[name] == "function" && + typeof _super[name] == "function" && fnTest.test(prop[name]) ? + (function(name, fn) { + return function() { + var tmp = this._super; + + // Add a new ._super() method that is the same method + // but on the super-class + this._super = _super[name]; + + // The method only need to be bound temporarily, so we + // remove it when we're done executing + var ret = fn.apply(this, arguments); + this._super = tmp; + + return ret; + }; + })(name, prop[name]) : + prop[name]; + } + + // The dummy class constructor + function Class() { + // All construction is actually done in the init method + if (!initializing && this.init) + this.init.apply(this, arguments); + } + + // Populate our constructed prototype object + Class.prototype = prototype; + + // Enforce the constructor to be what we expect + Class.prototype.constructor = Class; + + // And make this class extendable + Class.extend = arguments.callee; + + return Class; + }; +})(); + +/* Access to the Global Object + access the global object without hard-coding the identifier window +================================================== */ +var global = (function () { + return this || (1,eval)('this'); +}()); + +/* VMM +================================================== */ +if (typeof VMM == 'undefined') { + + /* Main Scope Container + ================================================== */ + //var VMM = {}; + var VMM = Class.extend({}); + + /* Debug + ================================================== */ + VMM.debug = true; + + /* Master Config + ================================================== */ + + VMM.master_config = ({ + + init: function() { + return this; + }, + + sizes: { + api: { + width: 0, + height: 0 + } + }, + + vp: "Pellentesque nibh felis, eleifend id, commodo in, interdum vitae, leo", + + api_keys_master: { + flickr: "RAIvxHY4hE/Elm5cieh4X5ptMyDpj7MYIxziGxi0WGCcy1s+yr7rKQ==", + //google: "jwNGnYw4hE9lmAez4ll0QD+jo6SKBJFknkopLS4FrSAuGfIwyj57AusuR0s8dAo=", + google: "uQKadH1VMlCsp560gN2aOiMz4evWkl1s34yryl3F/9FJOsn+/948CbBUvKLN46U=", + twitter: "" + }, + + timers: { + api: 7000 + }, + + api: { + pushques: [] + + }, + + twitter: { + active: false, + array: [], + api_loaded: false, + que: [] + }, + + flickr: { + active: false, + array: [], + api_loaded: false, + que: [] + }, + + youtube: { + active: false, + array: [], + api_loaded: false, + que: [] + }, + + vimeo: { + active: false, + array: [], + api_loaded: false, + que: [] + }, + + vine: { + active: false, + array: [], + api_loaded: false, + que: [] + }, + + webthumb: { + active: false, + array: [], + api_loaded: false, + que: [] + }, + + googlemaps: { + active: false, + map_active: false, + places_active: false, + array: [], + api_loaded: false, + que: [] + }, + + googledocs: { + active: false, + array: [], + api_loaded: false, + que: [] + }, + + googleplus: { + active: false, + array: [], + api_loaded: false, + que: [] + }, + + wikipedia: { + active: false, + array: [], + api_loaded: false, + que: [], + tries: 0 + }, + + soundcloud: { + active: false, + array: [], + api_loaded: false, + que: [] + } + + }).init(); + + //VMM.createElement(tag, value, cName, attrs, styles); + VMM.createElement = function(tag, value, cName, attrs, styles) { + + var ce = ""; + + if (tag != null && tag != "") { + + // TAG + ce += "<" + tag; + if (cName != null && cName != "") { + ce += " class='" + cName + "'"; + }; + + if (attrs != null && attrs != "") { + ce += " " + attrs; + }; + + if (styles != null && styles != "") { + ce += " style='" + styles + "'"; + }; + + ce += ">"; + + if (value != null && value != "") { + ce += value; + } + + // CLOSE TAG + ce = ce + ""; + } + + return ce; + + }; + + VMM.createMediaElement = function(media, caption, credit) { + + var ce = ""; + + var _valid = false; + + ce += "
"; + + if (media != null && media != "") { + + valid = true; + + ce += ""; + + // CREDIT + if (credit != null && credit != "") { + ce += VMM.createElement("div", credit, "credit"); + } + + // CAPTION + if (caption != null && caption != "") { + ce += VMM.createElement("div", caption, "caption"); + } + + } + + ce += "
"; + + return ce; + + }; + + // Hide URL Bar for iOS and Android by Scott Jehl + // https://gist.github.com/1183357 + + VMM.hideUrlBar = function () { + var win = window, + doc = win.document; + + // If there's a hash, or addEventListener is undefined, stop here + if( !location.hash || !win.addEventListener ){ + + //scroll to 1 + window.scrollTo( 0, 1 ); + var scrollTop = 1, + + //reset to 0 on bodyready, if needed + bodycheck = setInterval(function(){ + if( doc.body ){ + clearInterval( bodycheck ); + scrollTop = "scrollTop" in doc.body ? doc.body.scrollTop : 1; + win.scrollTo( 0, scrollTop === 1 ? 0 : 1 ); + } + }, 15 ); + + win.addEventListener( "load", function(){ + setTimeout(function(){ + //reset to hide addr bar at onload + win.scrollTo( 0, scrollTop === 1 ? 0 : 1 ); + }, 0); + }, false ); + } + }; + + +} + +/* Trace (console.log) +================================================== */ +function trace( msg ) { + if (VMM.debug) { + if (window.console) { + console.log(msg); + } else if ( typeof( jsTrace ) != 'undefined' ) { + jsTrace.send( msg ); + } else { + //alert(msg); + } + } +} + +/* Array Remove - By John Resig (MIT Licensed) + http://ejohn.org/blog/javascript-array-remove/ +================================================== */ +Array.prototype.remove = function(from, to) { + var rest = this.slice((to || from) + 1 || this.length); + this.length = from < 0 ? this.length + from : from; + return this.push.apply(this, rest); +} + +/* Extending Date to include Week +================================================== */ +Date.prototype.getWeek = function() { + var onejan = new Date(this.getFullYear(),0,1); + return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7); +} + +/* Extending Date to include Day of Year +================================================== */ +Date.prototype.getDayOfYear = function() { + var onejan = new Date(this.getFullYear(),0,1); + return Math.ceil((this - onejan) / 86400000); +} + +/* A MORE SPECIFIC TYPEOF(); +// http://rolandog.com/archives/2007/01/18/typeof-a-more-specific-typeof/ +================================================== */ +// type.of() +var is={ + Null:function(a){return a===null;}, + Undefined:function(a){return a===undefined;}, + nt:function(a){return(a===null||a===undefined);}, + Function:function(a){return(typeof(a)==="function")?a.constructor.toString().match(/Function/)!==null:false;}, + String:function(a){return(typeof(a)==="string")?true:(typeof(a)==="object")?a.constructor.toString().match(/string/i)!==null:false;}, + Array:function(a){return(typeof(a)==="object")?a.constructor.toString().match(/array/i)!==null||a.length!==undefined:false;}, + Boolean:function(a){return(typeof(a)==="boolean")?true:(typeof(a)==="object")?a.constructor.toString().match(/boolean/i)!==null:false;}, + Date:function(a){return(typeof(a)==="date")?true:(typeof(a)==="object")?a.constructor.toString().match(/date/i)!==null:false;}, + HTML:function(a){return(typeof(a)==="object")?a.constructor.toString().match(/html/i)!==null:false;}, + Number:function(a){return(typeof(a)==="number")?true:(typeof(a)==="object")?a.constructor.toString().match(/Number/)!==null:false;}, + Object:function(a){return(typeof(a)==="object")?a.constructor.toString().match(/object/i)!==null:false;}, + RegExp:function(a){return(typeof(a)==="function")?a.constructor.toString().match(/regexp/i)!==null:false;} +}; +var type={ + of:function(a){ + for(var i in is){ + if(is[i](a)){ + return i.toLowerCase(); + } + } + } +}; + + + diff --git a/source/js/Core/Embed/Embed.LoadLib.js b/source/js/Core/Embed/Embed.LoadLib.js new file mode 100644 index 0000000..e8ea8ea --- /dev/null +++ b/source/js/Core/Embed/Embed.LoadLib.js @@ -0,0 +1,50 @@ +/* + LoadLib + Designed and built by Zach Wise http://zachwise.com/ + Extends LazyLoad +*/ + +/* * CodeKit Import + * http://incident57.com/codekit/ +================================================== */ +// @codekit-prepend "../Library/LazyLoad.js"; + +LoadLib = (function (doc) { + var loaded = []; + + function isLoaded(url) { + + var i = 0, + has_loaded = false; + + for (i = 0; i < loaded.length; i++) { + if (loaded[i] == url) { + has_loaded = true; + } + } + + if (has_loaded) { + return true; + } else { + loaded.push(url); + return false; + } + + } + + return { + + css: function (urls, callback, obj, context) { + if (!isLoaded(urls)) { + LazyLoad.css(urls, callback, obj, context); + } + }, + + js: function (urls, callback, obj, context) { + if (!isLoaded(urls)) { + LazyLoad.js(urls, callback, obj, context); + } + } + }; + +})(this.document); diff --git a/source/js/Core/Embed/Embed.js b/source/js/Core/Embed/Embed.js new file mode 100644 index 0000000..5427591 --- /dev/null +++ b/source/js/Core/Embed/Embed.js @@ -0,0 +1,355 @@ +//StoryJS Embed Loader +// Provide a bootstrap method for instantiating a timeline. On page load, check the definition of these window scoped variables in this order: [url_config, timeline_config, storyjs_config, config]. As soon as one of these is found to be defined with type 'object,' it will be used to automatically instantiate a timeline. + +/* CodeKit Import + http://incident57.com/codekit/ +================================================== */ +// @codekit-prepend "Embed.LoadLib.js"; + +var WebFontConfig; + +if(typeof embed_path == 'undefined' || typeof embed_path == 'undefined') { + // REPLACE WITH YOUR BASEPATH IF YOU WANT OTHERWISE IT WILL TRY AND FIGURE IT OUT + var embed_path = getEmbedScriptPath("storyjs-embed.js").split("js/")[0]; +} + +function getEmbedScriptPath(scriptname) { + var scriptTags = document.getElementsByTagName('script'), + script_path = "", + script_path_end = ""; + for(var i = 0; i < scriptTags.length; i++) { + if (scriptTags[i].src.match(scriptname)) { + script_path = scriptTags[i].src; + } + } + if (script_path != "") { + script_path_end = "/" + } + return script_path.split('?')[0].split('/').slice(0, -1).join('/') + script_path_end; +} + +/* CHECK TO SEE IF A CONFIG IS ALREADY DEFINED (FOR EASY EMBED) +================================================== */ +(function() { + if (typeof url_config == 'object') { + createStoryJS(url_config); + } else if (typeof timeline_config == 'object') { + createStoryJS(timeline_config); + } else if (typeof storyjs_config == 'object') { + createStoryJS(storyjs_config); + } else if (typeof config == 'object') { + createStoryJS(config); + } else { + // No existing config. Call createStoryJS(your_config) manually with a config + } +})(); + +/* CREATE StoryJS Embed +================================================== */ +function createStoryJS(c, src) { + /* VARS + ================================================== */ + var storyjs_embedjs, t, te, x, + isCDN = false, + js_version = "2.24", + jquery_version_required = "1.7.1", + jquery_version = "", + ready = { + timeout: "", + checks: 0, + finished: false, + js: false, + css: false, + jquery: false, + has_jquery: false, + language: false, + font: { + css: false, + js: false + } + }, + path = { + base: embed_path, + css: embed_path + "css/", + js: embed_path + "js/", + locale: embed_path + "js/locale/", + jquery: "//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js", + font: { + google: false, + css: embed_path + "css/themes/font/", + js: "//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js" + } + }, + storyjs_e_config = { + version: js_version, + debug: false, + type: 'timeline', + id: 'storyjs', + embed_id: 'timeline-embed', + embed: true, + width: '100%', + height: '100%', + source: 'https://docs.google.com/spreadsheet/pub?key=0Agl_Dv6iEbDadFYzRjJPUGktY0NkWXFUWkVIZDNGRHc&output=html', + lang: 'en', + font: 'default', + css: path.css + 'timeline.css?'+js_version, + js: '', + api_keys: { + google: "", + flickr: "", + twitter: "" + }, + gmap_key: "" + }, + font_presets = [ + { name: "Merriweather-NewsCycle", google: [ 'News+Cycle:400,700:latin', 'Merriweather:400,700,900:latin' ] }, + { name: "NewsCycle-Merriweather", google: [ 'News+Cycle:400,700:latin', 'Merriweather:300,400,700:latin' ] }, + { name: "PoiretOne-Molengo", google: [ 'Poiret+One::latin', 'Molengo::latin' ] }, + { name: "Arvo-PTSans", google: [ 'Arvo:400,700,400italic:latin', 'PT+Sans:400,700,400italic:latin' ] }, + { name: "PTSerif-PTSans", google: [ 'PT+Sans:400,700,400italic:latin', 'PT+Serif:400,700,400italic:latin' ] }, + { name: "PT", google: [ 'PT+Sans+Narrow:400,700:latin', 'PT+Sans:400,700,400italic:latin', 'PT+Serif:400,700,400italic:latin' ] }, + { name: "DroidSerif-DroidSans", google: [ 'Droid+Sans:400,700:latin', 'Droid+Serif:400,700,400italic:latin' ] }, + { name: "Lekton-Molengo", google: [ 'Lekton:400,700,400italic:latin', 'Molengo::latin' ] }, + { name: "NixieOne-Ledger", google: [ 'Nixie+One::latin', 'Ledger::latin' ] }, + { name: "AbrilFatface-Average", google: [ 'Average::latin', 'Abril+Fatface::latin' ] }, + { name: "PlayfairDisplay-Muli", google: [ 'Playfair+Display:400,400italic:latin', 'Muli:300,400,300italic,400italic:latin' ] }, + { name: "Rancho-Gudea", google: [ 'Rancho::latin', 'Gudea:400,700,400italic:latin' ] }, + { name: "Bevan-PotanoSans", google: [ 'Bevan::latin', 'Pontano+Sans::latin' ] }, + { name: "BreeSerif-OpenSans", google: [ 'Bree+Serif::latin', 'Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800:latin' ] }, + { name: "SansitaOne-Kameron", google: [ 'Sansita+One::latin', 'Kameron:400,700:latin' ] }, + { name: "Lora-Istok", google: [ 'Lora:400,700,400italic,700italic:latin', 'Istok+Web:400,700,400italic,700italic:latin' ] }, + { name: "Pacifico-Arimo", google: [ 'Pacifico::latin', 'Arimo:400,700,400italic,700italic:latin' ] } + ]; + + /* BUILD CONFIG + ================================================== */ + if (typeof c == 'object') { + for (x in c) { + if (Object.prototype.hasOwnProperty.call(c, x)) { + storyjs_e_config[x] = c[x]; + } + } + } + + if (typeof src != 'undefined') { + storyjs_e_config.source = src; + } + + /* CDN VERSION? + ================================================== */ + if (typeof url_config == 'object') { + isCDN = true; + + /* IS THE SOURCE GOOGLE SPREADSHEET WITH JUST THE KEY? + ================================================== */ + if (storyjs_e_config.source.match("docs.google.com") || storyjs_e_config.source.match("json") || storyjs_e_config.source.match("storify") ) { + + } else { + storyjs_e_config.source = "https://docs.google.com/spreadsheet/pub?key=" + storyjs_e_config.source + "&output=html"; + } + + } + + /* DETERMINE TYPE + ================================================== */ + // Check for old installs still using the old method of language + if (storyjs_e_config.js.match("locale")) { + storyjs_e_config.lang = storyjs_e_config.js.split("locale/")[1].replace(".js", ""); + storyjs_e_config.js = path.js + 'timeline-min.js?' + js_version; + } + + if (storyjs_e_config.js.match("/")) { + + } else { + storyjs_e_config.css = path.css + storyjs_e_config.type + ".css?" + js_version; + + // Use unminified js file if in debug mode + storyjs_e_config.js = path.js + storyjs_e_config.type; + if (storyjs_e_config.debug) { + storyjs_e_config.js += ".js?" + js_version; + } else { + storyjs_e_config.js += "-min.js?" + js_version; + } + + storyjs_e_config.id = "storyjs-" + storyjs_e_config.type; + } + + /* PREPARE LANGUAGE + ================================================== */ + if (storyjs_e_config.lang.match("/")) { + path.locale = storyjs_e_config.lang; + } else { + path.locale = path.locale + storyjs_e_config.lang + ".js?" + js_version; + } + + + /* PREPARE + ================================================== */ + createEmbedDiv(); + + /* Load CSS + ================================================== */ + LoadLib.css(storyjs_e_config.css, onloaded_css); + + /* Load FONT + ================================================== */ + if (storyjs_e_config.font == "default") { + ready.font.js = true; + ready.font.css = true; + } else { + // FONT CSS + var fn; + if (storyjs_e_config.font.match("/")) { + fn = storyjs_e_config.font.split(".css")[0].split("/"); + path.font.name = fn[fn.length -1]; + path.font.css = storyjs_e_config.font; + } else { + path.font.name = storyjs_e_config.font; + path.font.css = path.font.css + storyjs_e_config.font + ".css?" + js_version; + } + LoadLib.css(path.font.css, onloaded_font_css); + + // FONT GOOGLE JS + for(var i = 0; i < font_presets.length; i++) { + if (path.font.name == font_presets[i].name) { + path.font.google = true; + WebFontConfig = {google: { families: font_presets[i].google }}; + } + } + + if (path.font.google) { + LoadLib.js(path.font.js, onloaded_font_js); + } else { + ready.font.js = true; + } + + } + + /* Load jQuery + ================================================== */ + try { + ready.has_jquery = jQuery; + ready.has_jquery = true; + if (ready.has_jquery) { + var jquery_version = parseFloat(jQuery.fn.jquery); + if (jquery_version < parseFloat(jquery_version_required) ) { + //console.log("NOT THE REQUIRED VERSION OF JQUERY, LOADING THE REQUIRED VERSION"); + //console.log("YOU HAVE VERSION " + jQuery.fn.jquery + ", JQUERY VERSION " + jquery_version_required + " OR ABOVE NEEDED"); + ready.jquery = false; + } else { + ready.jquery = true; + } + } + } catch(err) { + ready.jquery = false; + } + if (!ready.jquery) { + LoadLib.js(path.jquery, onloaded_jquery); + } else { + onloaded_jquery(); + } + + /* On Loaded + ================================================== */ + + function onloaded_jquery() { + LoadLib.js(storyjs_e_config.js, onloaded_js); + } + function onloaded_js() { + ready.js = true; + if (storyjs_e_config.lang != "en") { + LazyLoad.js(path.locale, onloaded_language); + } else { + ready.language = true; + } + onloaded_check(); + } + function onloaded_language() { + ready.language = true; + onloaded_check(); + } + function onloaded_css() { + ready.css = true; + onloaded_check(); + } + function onloaded_font_css() { + ready.font.css = true; + onloaded_check(); + } + function onloaded_font_js() { + ready.font.js = true; + onloaded_check(); + } + function onloaded_check() { + if (ready.checks > 40) { + return; + alert("Error Loading Files"); + } else { + ready.checks++; + if (ready.js && ready.css && ready.font.css && ready.font.js && ready.language) { + if (!ready.finished) { + ready.finished = true; + buildEmbed(); + } + } else { + ready.timeout = setTimeout('onloaded_check_again();', 250); + } + } + }; + this.onloaded_check_again = function() { + onloaded_check(); + }; + + /* Build Timeline + ================================================== */ + function createEmbedDiv() { + var embed_classname = "storyjs-embed"; + + t = document.createElement('div'); + + if (storyjs_e_config.embed_id != "") { + te = document.getElementById(storyjs_e_config.embed_id); + } else { + te = document.getElementById("timeline-embed"); + } + + te.appendChild(t); + t.setAttribute("id", storyjs_e_config.id); + + if (storyjs_e_config.width.toString().match("%") ) { + te.style.width = storyjs_e_config.width.split("%")[0] + "%"; + } else { + storyjs_e_config.width = storyjs_e_config.width - 2; + te.style.width = (storyjs_e_config.width) + 'px'; + } + + if (storyjs_e_config.height.toString().match("%")) { + te.style.height = storyjs_e_config.height; + embed_classname += " full-embed"; + te.style.height = storyjs_e_config.height.split("%")[0] + "%"; + + } else if (storyjs_e_config.width.toString().match("%")) { + embed_classname += " full-embed"; + storyjs_e_config.height = storyjs_e_config.height - 16; + te.style.height = (storyjs_e_config.height) + 'px'; + }else { + embed_classname += " sized-embed"; + storyjs_e_config.height = storyjs_e_config.height - 16; + te.style.height = (storyjs_e_config.height) + 'px'; + } + + te.setAttribute("class", embed_classname); + te.setAttribute("className", embed_classname); + t.style.position = 'relative'; + } + + function buildEmbed() { + VMM.debug = storyjs_e_config.debug; + storyjs_embedjs = new VMM.Timeline(storyjs_e_config.id); + storyjs_embedjs.init(storyjs_e_config); + if (isCDN) { + VMM.bindEvent(global, onHeadline, "HEADLINE"); + } + } + +} diff --git a/source/js/Core/LICENSE b/source/js/Core/LICENSE new file mode 100644 index 0000000..dfb076f --- /dev/null +++ b/source/js/Core/LICENSE @@ -0,0 +1,361 @@ +This Source Code Form is subject to the terms of the Mozilla Public +License, v. 2.0. If a copy of the MPL was not distributed with this +file, You can obtain one at http://mozilla.org/MPL/2.0/. + +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + + +------------------------------------------- + diff --git a/source/js/Core/Language/VMM.Language.js b/source/js/Core/Language/VMM.Language.js new file mode 100644 index 0000000..3c7f8a0 --- /dev/null +++ b/source/js/Core/Language/VMM.Language.js @@ -0,0 +1,37 @@ +/* DEFAULT LANGUAGE +================================================== */ +if(typeof VMM != 'undefined' && typeof VMM.Language == 'undefined') { + VMM.Language = { + lang: "en", + api: { + wikipedia: "en" + }, + date: { + month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."], + day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + day_abbr: ["Sun.","Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' h:MM TT", + full_long_small_date: "h:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "Loading Timeline... ", + return_to_title: "Return to Title", + expand_timeline: "Expand Timeline", + contract_timeline: "Contract Timeline", + wikipedia: "From Wikipedia, the free encyclopedia", + loading_content: "Loading Content", + loading: "Loading" + } + } +}; \ No newline at end of file diff --git a/source/js/Core/Language/locale/af.js b/source/js/Core/Language/locale/af.js new file mode 100644 index 0000000..f40c86f --- /dev/null +++ b/source/js/Core/Language/locale/af.js @@ -0,0 +1,38 @@ +/* Afrikaans LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "af", + api: { + wikipedia: "af" + }, + date: { + month: ["Januarie", "Februarie", "Maart", "April", "Mei", "Junie", "Julie", "Augustus", "September", "Oktober", "November", "Desember"], + month_abbr: ["Jan.", "Feb.", "Maart", "April", "Mei", "Junei", "Julie", "Aug.", "Sept.", "Okt.", "Nov.", "Des."], + day: ["Sondag","Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag"], + day_abbr: ["Son.","Maan.", "Dins.", "Woen.", "Don.", "Vry.", "Sat."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "HH:MM:SS", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''", + full_long: "d mmm',' yyyy 'om' HH:MM", + full_long_small_date: "HH:MM'
d mmm yyyy''" + }, + messages: { + loading_timeline: "Die tydlyn laai... ", + return_to_title: "Begin voor", + expand_timeline: "Rek die tydlyn", + contract_timeline: "Krimp die tydlyn", + wikipedia: "Van Wikipedia, die gratis ensiklopedie", + loading_content: "Die inhoud laai", + loading: "Aan't laai" + } + } +} + diff --git a/source/js/Core/Language/locale/ar.js b/source/js/Core/Language/locale/ar.js new file mode 100644 index 0000000..46068a3 --- /dev/null +++ b/source/js/Core/Language/locale/ar.js @@ -0,0 +1,38 @@ +/* Arabic LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "ar", + right_to_left: true, + api: { + wikipedia: "ar" + }, + date: { + month: ["كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"], + month_abbr: ["كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"], + day: ["الأحد","الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"], + day_abbr: ["الأحد","الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_short: "h:MM:SS TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' hh:MM TT", + full_long_small_date: "hh:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "جاري التحميل... ", + return_to_title: "العودة", + expand_timeline: "تكبير العرض", + contract_timeline: "الاتفاقية", + wikipedia: "من ويكيبيديا, الموسوعة الحرة", + loading_content: "تحميل المحتوى", + loading: "تحميل" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/bg.js b/source/js/Core/Language/locale/bg.js new file mode 100644 index 0000000..435d339 --- /dev/null +++ b/source/js/Core/Language/locale/bg.js @@ -0,0 +1,37 @@ +/* Bulgarian LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "bg", + api: { + wikipedia: "bg" + }, + date: { + month: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"], + month_abbr: ["Ян.", "Фев.", "Март", "Апр.", "Май", "Юни", "Юли", "Авг.", "Септ.", "Окт.", "Ноем.", "Дек."], + day: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"], + day_abbr: ["Нед.", "Пон.", "Вт.", "Ср.", "Четв.", "Пет.", "Съб."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "h:MM:SS TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'd mmmm yyyy''", + full_long: "d mmm yyyy 'at' h:MM TT", + full_long_small_date: "h:MM TT'
d mmm yyyy''" + }, + messages: { + loading_timeline: "Зареждане... ", + return_to_title: "В началото", + expand_timeline: "Разширяване", + contract_timeline: "Свиване", + wikipedia: "От Уикипедия, свободната енциклопедия", + loading_content: "Съдържанието се зарежда", + loading: "Зарежда се" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/ca.js b/source/js/Core/Language/locale/ca.js new file mode 100644 index 0000000..08940a3 --- /dev/null +++ b/source/js/Core/Language/locale/ca.js @@ -0,0 +1,37 @@ +/* Catalan LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "ca", + api: { + wikipedia: "ca" + }, + date: { + month: ['Gener','Febrer','Març','Abril','Maig','Juny','Juliol','Agost','Setembre','Octubre','Novembre','Desembre'], + month_abbr: ['Gen','Feb','Mar','Abr','Mai','Jun','Jul','Ago','Set','Oct','Nov','Des'], + day: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'], + day_abbr: ['Dg.','Dl.','Dt.','Dc.','Dj.','Dv.','Ds.'] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "HH:MM:SS", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "''d mmmm yyyy'' HH:MM", + full_long: "dddd',' d mmm yyyy HH:MM", + full_long_small_date: "HH:MM'
d mmm yyyy''" + }, + messages: { + loading_timeline: "Carregant cronologia...", + return_to_title: "Tornar al títol", + expand_timeline: "Ampliar la cronologia", + contract_timeline: "Reduir la cronologia", + wikipedia: "Des de Wikipedia, l'enciclopèdia lliure", + loading_content: "Carregant contingut", + loading: "Carregant" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/cz.js b/source/js/Core/Language/locale/cz.js new file mode 100644 index 0000000..528883f --- /dev/null +++ b/source/js/Core/Language/locale/cz.js @@ -0,0 +1,37 @@ +/* Czech LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "cz", + api: { + wikipedia: "cs" + }, + date: { + month: ["ledna", "února", "března", "dubna", "května", "června", "července", "srpna", "září", "října", "listopadu", "prosince"], + month_abbr: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čen", "Čec", "Srp", "Zář", "Říj", "Lis", "Pro"], + day: ["neděle","pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota"], + day_abbr: ["Ne","Po", "Út", "St", "Čt", "Pá", "So"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d. mmm ", + full: "d. mmmm yyyy", + time_short: "HH:MM:SS", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd. mmmm yyyy''", + full_long: "dddd d. mmm yyyy 'v' HH:MM", + full_long_small_date: "HH:MM'
dddd d. mmm yyyy''" + }, + messages: { + loading_timeline: "Načítám časovou osu... ", + return_to_title: "Zpět na začátek", + expand_timeline: "Rozbalit časovou osu", + contract_timeline: "Sbalit časovou osu", + wikipedia: "Zdroj: otevřená encyklopedie Wikipedia", + loading_content: "Nahrávám obsah", + loading: "Nahrávám" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/da.js b/source/js/Core/Language/locale/da.js new file mode 100644 index 0000000..d737f29 --- /dev/null +++ b/source/js/Core/Language/locale/da.js @@ -0,0 +1,37 @@ +/* Danish LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "da", + api: { + wikipedia: "da" + }, + date: { + month: ["januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december"], + month_abbr: ["jan.", "feb.", "mar.", "apr.", "maj.", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."], + day: ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"], + day_abbr: ["sø.", "ma.", "ti.", "on.", "to.", "fr.", "lø."], + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d. mmm", + full: "d. mmmm',' yyyy", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd. mmmm',' yyyy''", + full_long: "dddd',' d. mmm',' yyyy 'um' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' d. mmm yyyy''", + }, + messages: { + loading_timeline: "Henter tidslinie...", + return_to_title: "Tilbage til titel", + expand_timeline: "Udvid tidslinien", + contract_timeline: "Træk tidslinien sammen", + wikipedia: "Fra Wikipedia", + loading_content: "Henter indhold", + loading: "Henter" + } + } +} diff --git a/source/js/Core/Language/locale/de.js b/source/js/Core/Language/locale/de.js new file mode 100644 index 0000000..4183f6f --- /dev/null +++ b/source/js/Core/Language/locale/de.js @@ -0,0 +1,37 @@ +/* German / Deutsch LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "de", + api: { + wikipedia: "de" + }, + date: { + month: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], + month_abbr: ["Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sept.", "Okt.", "Nov.", "Dez."], + day: ["Sonntag","Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"], + day_abbr: ["So.","Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d. mmm", + full: "d. mmmm yyyy", + time_short: "HH:MM:SS", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd. mmmm yyyy''", + full_long: "dddd',' d. mmm yyyy 'um' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' d. mmm yyyy''" + }, + messages: { + loading_timeline: "Chronologie wird geladen...", + return_to_title: "Zurück zum Anfang", + expand_timeline: "Chronologie vergrößern", + contract_timeline: "Chronologie verkleinern", + wikipedia: "Wikipedia, Die freie Enzyklopädie", + loading_content: "Loading", + loading: "Loading" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/el.js b/source/js/Core/Language/locale/el.js new file mode 100644 index 0000000..50a5a0d --- /dev/null +++ b/source/js/Core/Language/locale/el.js @@ -0,0 +1,37 @@ +/* Greek LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "en", + api: { + wikipedia: "en" + }, + date: { + month: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], + month_abbr: ["Ιαν.", "Φεβ.", "Μαρ.", "Απρ.", "Μαη", "Ιουν.", "Ιουλ.", "Αύγ.", "Σεπτ.", "Οκτ.", "Νοεμ.", "Δεκ."], + day: ["Κυριακή","Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"], + day_abbr: ["Κυρ.","Δευ.", "Τρίτη.", "Τετ.", "Πεμπ.", "Παρ.", "Σαβ."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_short: "h:MM:SS TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' h:MM TT", + full_long_small_date: "h:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "Φόρτωση Timeline... ", + return_to_title: "Επιστροφή στον Τίτλο", + expand_timeline: "Μεγέθυνση", + contract_timeline: "Contract Timeline", + wikipedia: "From Wikipedia, the free encyclopedia", + loading_content: "Φόρτωση Περιεχομένου", + loading: "Γίνεται Φόρτωση" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/en-24hr.js b/source/js/Core/Language/locale/en-24hr.js new file mode 100644 index 0000000..0026079 --- /dev/null +++ b/source/js/Core/Language/locale/en-24hr.js @@ -0,0 +1,37 @@ +/* English LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "en", + api: { + wikipedia: "en" + }, + date: { + month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."], + day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + day_abbr: ["Sun.","Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM TT", + time_no_seconds_small_date: "HH:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' HH:MM TT", + full_long_small_date: "HH:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "Loading Timeline... ", + return_to_title: "Return to Title", + expand_timeline: "Expand Timeline", + contract_timeline: "Contract Timeline", + wikipedia: "From Wikipedia, the free encyclopedia", + loading_content: "Loading Content", + loading: "Loading" + } + } +} diff --git a/source/js/Core/Language/locale/en.js b/source/js/Core/Language/locale/en.js new file mode 100644 index 0000000..2a1e937 --- /dev/null +++ b/source/js/Core/Language/locale/en.js @@ -0,0 +1,37 @@ +/* English LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "en", + api: { + wikipedia: "en" + }, + date: { + month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], + month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."], + day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], + day_abbr: ["Sun.","Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' h:MM TT", + full_long_small_date: "h:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "Loading Timeline... ", + return_to_title: "Return to Title", + expand_timeline: "Expand Timeline", + contract_timeline: "Contract Timeline", + wikipedia: "From Wikipedia, the free encyclopedia", + loading_content: "Loading Content", + loading: "Loading" + } + } +} diff --git a/source/js/Core/Language/locale/es.js b/source/js/Core/Language/locale/es.js new file mode 100644 index 0000000..40d8dc2 --- /dev/null +++ b/source/js/Core/Language/locale/es.js @@ -0,0 +1,37 @@ +/* Spanish LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "es", + api: { + wikipedia: "es" + }, + date: { + month: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], + month_abbr: ["Ene.", "Feb.", "Mar.", "Abr.", "May.", "Jun.", "Jul.", "Ago.", "Sep.", "Oct.", "Nov.", "Dic."], + day: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"], + day_abbr: ["Dom.", "Lun.", "Mar.", "Mié.", "Jue.", "Vie.", "Sáb."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "HH:MM:SS", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "''d mmmm yyyy'' HH:MM", + full_long: "dddd',' d mmm yyyy HH:MM", + full_long_small_date: "HH:MM'
d mmm yyyy''" + }, + messages: { + loading_timeline: "Cronología esta cargando", + return_to_title: "Volver al título", + expand_timeline: "Enlargar la cronología", + contract_timeline: "Reducir la cronología", + wikipedia: "Desde Wikipedia, la enciclopedia libre", + loading_content: "cargando", + loading: "cargando" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/eu.js b/source/js/Core/Language/locale/eu.js new file mode 100644 index 0000000..6679c1e --- /dev/null +++ b/source/js/Core/Language/locale/eu.js @@ -0,0 +1,38 @@ +/* Basque/ Euskara LANGUAGE +================================================== */ +if (typeof VMM != 'undefined') { + VMM.Language = { + lang: "eu", + api: { + wikipedia: "eu" + }, + date: { + month: ["Urtarrila", "Otsaila", "Martxoa", "Apirila", "Maiatza", "Ekaina", "Uztaila", "Abuztua", "Iraila", "Urria", "Azaroa", "Abendua"], + month_abbr: ["Urt.", "Ots.", "Mar.", "Api.", "Mai.", "Eka.", "Uzt.", "Abu.", "Ira.", "Urr.", "Aza.", "Abe."], + day: ["Igandea", "Astelehena", "Asteartea", "Asteazkena", "Osteguna", "Ostirala", "Larunbata"], + day_abbr: ["Iga.", "Asl.", "Asr.", "Asz.", "Osg.", "Osr.", "Lar."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "yyyy'(e)ko' mmmm", + full_short: "mmm'-'d", + full: "yyyy'(e)ko' mmmm'k' d", + time_short: "h:MM:SS TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'yyyy'-'mmm'-'d'", + full_long: "yyyy'(e)ko' mmmm'ren' d'(e)an,' hh:MM TT'(r)etan'", + full_long_small_date: "hh:MM TT'
'yyyy'-'mmm'-'d'" + }, + messages: { + loading_timeline: "Kronologia kargatzen...", + return_to_title: "Titulura itzuli", + expand_timeline: "Handiago ikusi", + contract_timeline: "Txikiago ikusi", + wikipedia: "Wikipedia entziklopedia libretik", + loading_content: "Edukia kargatzen", + loading: "Kargatzen" + } + } +} + diff --git a/source/js/Core/Language/locale/fi.js b/source/js/Core/Language/locale/fi.js new file mode 100644 index 0000000..07f7435 --- /dev/null +++ b/source/js/Core/Language/locale/fi.js @@ -0,0 +1,37 @@ +/* Finnish LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "fi", + api: { + wikipedia: "fi" + }, + date: { + month: ["tammikuuta", "helmikuuta", "maaliskuuta", "huhtikuuta", "toukokuuta", "kesäkuuta", "heinäkuuta", "elokuuta", "syyskuuta", "lokakuuta", "marraskuuta", "joulukuuta"], + month_abbr: ["tammi", "helmi", "maalis", "huhti", "touko", "kesä", "heinä", "elo", "syys", "loka", "marras", "joulu"], + day: ["sunnuntai","maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauauntai"], + day_abbr: ["su","ma", "ti", "ke", "to", "pe", "la"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d. mmm", + full: "d. mmmm yyyy", + time_short: "h:MM:SS TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'd. mmmm yyyy''", + full_long: "mmm d yyyy 'klo' h:MM TT", + full_long_small_date: "h:MM TT'
d. mmm yyyy''" + }, + messages: { + loading_timeline: "Ladataan aikajanaa… ", + return_to_title: "Takaisin etusivulle", + expand_timeline: "Laajenna aikajanaa", + contract_timeline: "Tiivistä aikajanaa", + wikipedia: "Wikipediasta", + loading_content: "Ladataan sisältöä", + loading: "Ladataan" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/fo.js b/source/js/Core/Language/locale/fo.js new file mode 100644 index 0000000..f81e27d --- /dev/null +++ b/source/js/Core/Language/locale/fo.js @@ -0,0 +1,37 @@ +/* Faroese LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "fo", + api: { + wikipedia: "fo" + }, + date: { + month: ["januar", "februar", "mars", "aprÌl", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"], + month_abbr: ["jan.", "febr.", "mars", "aprÌl", "mai", "juni", "juli", "aug.", "sept.", "okt.", "nov.", "des."], + day: ["sunnudagur","m·nadagur", "t˝sdagur", "mikudagur", "hÛsdagur", "frÌggjadagur", "leygardagur"], + day_abbr: ["sun.","m·n.", "t˝s.", "mik.", "hÛs.", "frÌ.", "ley."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d'.' mmm", + full: "d'.' mmmm yyyy", + time_short: "HH:MM:SS", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd'.' mmmm yyyy''", + full_long: "d'.' mmmm yyyy 'klokkan' HH:MM", + full_long_small_date: "HH:MM'
'd'.' mmm yyyy''" + }, + messages: { + loading_timeline: "Lesur inn tíðarrás...", + return_to_title: "Víðka tíðarrás...", + expand_timeline: "Minka tíðarrás...", + contract_timeline: "Minka tíðarrás", + wikipedia: "Fr· Wikipedia", + loading_content: "Lesur inn tilfar", + loading: "Lesur inn" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/fr.js b/source/js/Core/Language/locale/fr.js new file mode 100644 index 0000000..a8e503a --- /dev/null +++ b/source/js/Core/Language/locale/fr.js @@ -0,0 +1,38 @@ +/* French LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "fr", + api: { + wikipedia: "fr" + }, + date: { + month: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"], + month_abbr: ["janv.", "févr.", "mars", "avril", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "dec."], + day: ["Dimanche","Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"], + day_abbr: ["Dim.","Lu.", "Ma.", "Me.", "Jeu.", "Vend.", "Sam."], + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "HH:MM:SS", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''", + full_long: "dddd',' d mmm yyyy 'à' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''" + }, + messages: { + loading_timeline: "Chargement de la frise en cours... ", + return_to_title: "Retour à la page d'accueil", + expand_timeline: "Elargir la frise", + contract_timeline: "Réduire la frise", + wikipedia: "Extrait de Wikipedia, l'encyclopédie libre", + loading_content: "Chargement", + loading: "Chargement" + + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/gl.js b/source/js/Core/Language/locale/gl.js new file mode 100644 index 0000000..034ad3b --- /dev/null +++ b/source/js/Core/Language/locale/gl.js @@ -0,0 +1,37 @@ +/* Galician LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "gl", + api: { + wikipedia: "gl" + }, + date: { + month: ["Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro"], + month_abbr: ["Xan.", "Feb.", "Mar.", "Abr.", "Mai.", "Xuñ.", "Xul.", "Ago.", "Set.", "Out.", "Nov.", "Dec."], + day: ["Domingo", "Luns", "Martes", "Mércores", "Xoves", "Venres", "Sábado"], + day_abbr: ["Dom.", "Lun.", "Mar.", "Mér.", "Xov.", "Ven.", "Sáb."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "HH:MM:SS", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''", + full_long: "dddd',' d mmm yyyy 'um' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''" + }, + messages: { + loading_timeline: "Cronoloxía esta cargando", + return_to_title: "Volver ao título", + expand_timeline: "Alongar a cronoloxía", + contract_timeline: "Acurtar a cronoloxía", + wikipedia: "Dende Wikipedia, a enciclopedia libre", + loading_content: "cargando", + loading: "cargando" + } + } +} diff --git a/source/js/Core/Language/locale/he.js b/source/js/Core/Language/locale/he.js new file mode 100644 index 0000000..d7d31a2 --- /dev/null +++ b/source/js/Core/Language/locale/he.js @@ -0,0 +1,38 @@ +/* Hebrew (beta) LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "he", + right_to_left: true, + api: { + wikipedia: "he" + }, + date: { + month: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], + month_abbr: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], + day: ["ראשון","שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"], + day_abbr: ["יום א'","יום ב'", "יום ג'", "יום ד'", "יום ה'", "יום ו'", "שבת"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm,' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "d' mmm,' yyyy 'at' h:MM TT", + full_long_small_date: "h:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "טוען את ציר הזמן... ", + return_to_title: "חזור לכותרת", + expand_timeline: "הרחב את ציר הזמן", + contract_timeline: "צמצם את ציר הזמן", + wikipedia: "מויקיפדיה, האינציקלופדיה החופשית", + loading_content: "התוכן בטעינה...", + loading: "טוען..." + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/hu.js b/source/js/Core/Language/locale/hu.js new file mode 100644 index 0000000..90dce30 --- /dev/null +++ b/source/js/Core/Language/locale/hu.js @@ -0,0 +1,37 @@ +/* Hungarian LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "hu", + api: { + wikipedia: "hu" + }, + date: { + month: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], + month_abbr: ["Jan.", "Febr.", "Márc", "Ápr.", "Máj.", "Jún.", "Júl.", "Aug.", "Szept.", "Okt.", "Nov.", "Dec."], + day: ["Vasárnap","Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"], + day_abbr: ["Vas.","Hétfő", "Kedd", "Szer.", "Csüt.", "Pén.", "Szom."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "yyyy mmmm", + full_short: "mmm d", + full: "yyyy mmmm d", + time_short: "HH:MM:SS", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM '
'yyyy mmmm d''", + full_long: "yyyy mmm d',' HH:MM", + full_long_small_date: "HH:MM '
yyyy mmm d''" + }, + messages: { + loading_timeline: "Az idővonal betöltése... ", + return_to_title: "Vissza a címhez", + expand_timeline: "Nagyítás", + contract_timeline: "Kicsinyítés", + wikipedia: "A Wikipédiából, a szabad enciklopédiából", + loading_content: "Tartalom betöltése", + loading: "Betöltés" + } + } +} diff --git a/source/js/Core/Language/locale/hy.js b/source/js/Core/Language/locale/hy.js new file mode 100644 index 0000000..8c31aa3 --- /dev/null +++ b/source/js/Core/Language/locale/hy.js @@ -0,0 +1,37 @@ +/* Armenian LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "hy", + api: { + wikipedia: "hy" + }, + date: { + month: ["Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"], + month_abbr: ["Հնվ.", "Փետ.", "Մար", "Ապր", "Մայ", "Հուն", "Հուլ", "Օգս.", "Սեպ.", "Հոկ.", "Նոյ.", "Դեկ."], + day: ["Կիրակի","Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ"], + day_abbr: ["Կի.","Եկ.", "Եք.", "Չո.", "Հի.", "Ու.", "Շա."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm',' yyyy", + time_short: "HH:MM:SS", + time_no_seconds_short: "H:MM", + time_no_seconds_small_date: "H:MM'
'd mmmm',' yyyy''", + full_long: "d mmm',' yyyy 'at' H:MM", + full_long_small_date: "H:MM '
d mmm',' yyyy''" + }, + messages: { + loading_timeline: "Ժամանակագրությունը բեռնվում է... ", + return_to_title: "Վերադառնալ վերնագրին", + expand_timeline: "Լայնացնել ժամանակագրությունը", + contract_timeline: "Նեղացնել ժամանակագրությունը", + wikipedia: "Ըստ Վիքիպեդիա ազատ հանրագիտարանի", + loading_content: "Բովանդակությունը բեռնվում է", + loading: "Բեռնում" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/id.js b/source/js/Core/Language/locale/id.js new file mode 100644 index 0000000..778ec6b --- /dev/null +++ b/source/js/Core/Language/locale/id.js @@ -0,0 +1,37 @@ +/* Indonesian LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "id", + api: { + wikipedia: "id" + }, + date: { + month: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"], + month_abbr: ["Jan.", "Feb.", "Maret", "April", "Mei", "Juni", "July", "Agus.", "Sept.", "Okt.", "Nov.", "Des."], + day: ["Ahad","Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"], + day_abbr: ["Ahad","Sen.", "Sel.", "Rabu", "Kamis", "Jum.", "Sab."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "HH:MM:SS", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''", + full_long: "dddd',' d mmm yyyy 'pukul' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''" + }, + messages: { + loading_timeline: "Memuat Timeline... ", + return_to_title: "Kembali ke Judul", + expand_timeline: "Kembangkan Timeline", + contract_timeline: "Ciutkan Timeline", + wikipedia: "dari Wikipedia, ensiklopedia bebas", + loading_content: "Memuat Isi", + loading: "Memuat" + } + } +} diff --git a/source/js/Core/Language/locale/is.js b/source/js/Core/Language/locale/is.js new file mode 100644 index 0000000..ca0bb1f --- /dev/null +++ b/source/js/Core/Language/locale/is.js @@ -0,0 +1,38 @@ +/* Icelandic LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "is", + api: { + wikipedia: "is" + }, + date: { + month: ["janúar", "febrúar", "mars", "apríl", "maí", "júní", "júlí", "ágúst", "september", "október", "nóvember", "desember"], + month_abbr: ["jan.", "feb.", "mars", "apríl", "maí", "júní", "júlí", "ágúst", "sept.", "okt.", "nóv.", "des."], + day: ["sunnudagur", "mánudagur", "þriðjudagur", "miðvikudagur", "fimmtudagur", "föstudagur", "laugardagur"], + day_abbr: ["sun.","mán.", "þri.", "mið.", "fim.", "fös.", "lau."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_short: "h:MM:SS TT", + time_no_seconds_short: "hh:MM TT", + time_no_seconds_small_date: "hh:MM TT'
'mmmm d',' yyyy''", + full_long: "dddd',' mmm d',' yyyy 'at' hh:MM TT", + full_long_small_date: "hh:MM TT'
'dddd',' mmm d',' yyyy''" + }, + messages: { + loading_timeline: "Raða upp tímalínu... ", + return_to_title: "Til baka á forsíðu", + expand_timeline: "Stækka tímalínu", + contract_timeline: "Minnka tímalínu", + wikipedia: "From Wikipedia, the free encyclopedia", + loading_content: "Raða", + loading: "Raða" + + } + } +} diff --git a/source/js/Core/Language/locale/it.js b/source/js/Core/Language/locale/it.js new file mode 100644 index 0000000..475d1db --- /dev/null +++ b/source/js/Core/Language/locale/it.js @@ -0,0 +1,38 @@ +/* Italian LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "it", + api: { + wikipedia: "it" + }, + date: { + month: ["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"], + month_abbr: ["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"], + day: ["Domenica","Lunedi","Martedi","Mercoledi","Giovedi","Venerdi","Sabato"], + day_abbr: ["Dom.","Lun.","Mar.","Mer.","Gio.","Ven.","Sab."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''", + full_long: "dddd',' d mmm yyyy 'um' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''" + }, + messages: { + loading_timeline: "Loading Timeline... ", + return_to_title: "Return to Title", + expand_timeline: "Expand Timeline", + contract_timeline: "Contract Timeline", + wikipedia: "Wikipedia, L’enciclopedia libera", + loading_content: "Loading Content", + loading: "Loading" + + } + } +} diff --git a/source/js/Core/Language/locale/iw.js b/source/js/Core/Language/locale/iw.js new file mode 100644 index 0000000..8963181 --- /dev/null +++ b/source/js/Core/Language/locale/iw.js @@ -0,0 +1,39 @@ +/* Hebrew (beta) LANGUAGE +================================================== */ +trace("Language code 'iw' for Hebrew is deprecated. Use 'he' instead.") +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "iw", + right_to_left: true, + api: { + wikipedia: "he" + }, + date: { + month: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], + month_abbr: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], + day: ["ראשון","שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"], + day_abbr: ["יום א'","יום ב'", "יום ג'", "יום ד'", "יום ה'", "יום ו'", "שבת"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm,' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "d' mmm,' yyyy 'at' h:MM TT", + full_long_small_date: "h:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "טוען את ציר הזמן... ", + return_to_title: "חזור לכותרת", + expand_timeline: "הרחב את ציר הזמן", + contract_timeline: "צמצם את ציר הזמן", + wikipedia: "מויקיפדיה, האינציקלופדיה החופשית", + loading_content: "התוכן בטעינה...", + loading: "טוען..." + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/ja.js b/source/js/Core/Language/locale/ja.js new file mode 100644 index 0000000..858693e --- /dev/null +++ b/source/js/Core/Language/locale/ja.js @@ -0,0 +1,38 @@ +/* Japanese LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "ja", + api: { + wikipedia: "ja" + }, + date: { + month: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], + month_abbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], + day: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"], + day_abbr: ["日", "月", "火", "水", "木", "金", "土"] + }, + dateformats: { + year: "yyyy年", + month_short: "mmm", + month: "yyyy年 m月d日 (ddd)", + full_short: "yyyy年m月d日", + full: "yyyy年 m月d日 (ddd)", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'yyyy年m月d日''", + full_long: "yyyy年m月d日 H時M分s秒", + full_long_small_date: "HH:MM:ss'
'yyyy年m月d日''" + }, + messages: { + loading_timeline: "タイムラインをロードしています…", + return_to_title: "タイトルへ戻ります", + expand_timeline: "タイムラインを展開します", + contract_timeline: "タイムラインを縮めます", + wikipedia: "出典:フリー百科事典『ウィキペディア(Wikipedia)』", + loading_content: "コンテンツをロードしています", + loading: "ローディング" + + } + } +} diff --git a/source/js/Core/Language/locale/ka.js b/source/js/Core/Language/locale/ka.js new file mode 100644 index 0000000..c4ba4ee --- /dev/null +++ b/source/js/Core/Language/locale/ka.js @@ -0,0 +1,37 @@ +/* Georgian LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "ka", + api: { + wikipedia: "ka" + }, + date: { + month: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"], + month_abbr: ["იან.", "თებ.", "მარტი", "აპრ", "მაი.", "ივნ.", "ივლ.", "აგვ.", "სექ.", "ოქტ.", "ნოე.", "დეკ."], + day: ["კვირა","ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"], + day_abbr: ["კვ.","ორ.", "სამ.", "ოთხ.", "ხუთ.", "პარ.", "შაბ."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' h:MM TT", + full_long_small_date: "h:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "იტვირთება თაიმლაინი... ", + return_to_title: "დაბრუნდი თავში", + expand_timeline: "გაშალე თაიმლაინი", + contract_timeline: "Contract Timeline", + wikipedia: "თავისუფალი ენციკლოპედია Wikipedia-დან", + loading_content: "შინაარსის ჩამოტვირთვა", + loading: "ჩამოტვირთვა" + } + } +} diff --git a/source/js/Core/Language/locale/ko.js b/source/js/Core/Language/locale/ko.js new file mode 100644 index 0000000..478cdb9 --- /dev/null +++ b/source/js/Core/Language/locale/ko.js @@ -0,0 +1,38 @@ +/* Korean LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "ko", + api: { + wikipedia: "ko" + }, + date: { + month: ["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"], + month_abbr: ["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"], + day: ["일요일" , "월요일" , "화요일" , "수요일" , "목요일" , "금요일" , "토요일"], + day_abbr: ["일" , "월" , "화" , "수" , "목" , "금" , "토"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "yyyy mmm", + full_short: "mmm d", + full: "yyyy mmm d ", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'yyyy mmm d''", + full_long: "dddd',' d mmm yyyy 'um' HH:MM", + full_long_small_date: "HH:MM'
'dddd','yyyy mmm d''" + }, + messages: { + loading_timeline: "타임라인을 불러오고 있습니다.... ", + return_to_title: "첫화면으로", + expand_timeline: "타임라인 확대", + contract_timeline: "타임라인 축소", + wikipedia: "출처: 위키피디아, 우리 모두의 백과사전", + loading_content: "내용을 불러오고 있습니다.", + loading: "불러오는중" + + } + } +} diff --git a/source/js/Core/Language/locale/lb.js b/source/js/Core/Language/locale/lb.js new file mode 100644 index 0000000..f194790 --- /dev/null +++ b/source/js/Core/Language/locale/lb.js @@ -0,0 +1,37 @@ +/* Luxembourgish LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { +VMM.Language = { +lang: "lb", +api: { +wikipedia: "lb" +}, +date: { +month: ["Januar", "Februar", "Mäerz", "Abrëll", "Mee", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], +month_abbr: ["Jan.", "Feb.", "Mäe.", "Abr.", "Mee", "Jun.", "Jul", "Aug.", "Sept.", "Okt.", "Nov.", "Dez."], +day: ["Sonndeg","Méindeg", "Dënschdeg", "Mëttwoch", "Donneschden", "Freiden", "Samschden"], +day_abbr: ["Son.","Méi.", "Dë.", "Më.", "Do.", "Fr.", "Sa."] +}, +dateformats: { +year: "yyyy", +month_short: "mmm", +month: "mmmm yyyy", +full_short: "mmm d", +full: "d'.' mmmm yyyy", +time_short: "hh:MM:ss", +time_no_seconds_short: "hh:MM", +time_no_seconds_small_date: "h:MM TT'
'd'.' mmmm yyyy''", +full_long: "d'.' mmm yyyy 'um' hh:MM TT", +full_long_small_date: "hh:MM'
d'.' mmm yyyy''" +}, +messages: { +loading_timeline: "Timeline gëtt gelueden... ", +return_to_title: "Zeréck zum Titel", +expand_timeline: "Timeline vergréisseren", +contract_timeline: "Timeline verklengeren", +wikipedia: "Vu Wikipedia, der fräier Enzyklopedie", +loading_content: "Inhalt lued", +loading: "Lued" +} +} +} diff --git a/source/js/Core/Language/locale/lv.js b/source/js/Core/Language/locale/lv.js new file mode 100644 index 0000000..1125f74 --- /dev/null +++ b/source/js/Core/Language/locale/lv.js @@ -0,0 +1,37 @@ +/* Latvian LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "lv", + api: { + wikipedia: "lv" + }, + date: { + month: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"], + month_abbr: ["Jan.", "Feb.", "Mar.", "Apr.", "Mai.", "Jūn.", "Jūl.", "Aug.", "Sep.", "Okt.", "Nov.", "Dec."], + day: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena"], + day_abbr: ["Sun.", "Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "d. mmmm',' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "HH:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' hh:MM TT", + full_long_small_date: "hh:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "Ielādējas grafiks... ", + return_to_title: "Atgriezties uz sākumu", + expand_timeline: "Izvērst grafiku", + contract_timeline: "Sašaurināt grafiku", + wikipedia: "No Wikipedia, brīvās enciklopēdijas", + loading_content: "Ielādējas saturs", + loading: "Ielādējas" + } + } +} diff --git a/source/js/Core/Language/locale/nl.js b/source/js/Core/Language/locale/nl.js new file mode 100644 index 0000000..7b5d44f --- /dev/null +++ b/source/js/Core/Language/locale/nl.js @@ -0,0 +1,38 @@ +/* Dutch LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "nl", + api: { + wikipedia: "nl" + }, + date: { + month: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"], + month_abbr: ["jan", "febr", "maa", "apr", "mei", "juni", "juli", "aug", "sept", "okt", "nov", "dec"], + day: ["zondag","maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"], + day_abbr: ["zo","ma", "di", "wo", "do", "vr", "za"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''", + full_long: "dddd',' d mmm yyyy 'om' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''" + }, + messages: { + loading_timeline: "Tijdlijn laden ... ", + return_to_title: "Terug naar het begin", + expand_timeline: "Tijdlijn uitzoomen", + contract_timeline: "Tijdlijn inzoomen", + wikipedia: "From Wikipedia, the free encyclopedia", + loading_content: "Inhoud laden", + loading: "Laden" + + } + } +} diff --git a/source/js/Core/Language/locale/no.js b/source/js/Core/Language/locale/no.js new file mode 100644 index 0000000..4bc16e7 --- /dev/null +++ b/source/js/Core/Language/locale/no.js @@ -0,0 +1,37 @@ +/* Norwegian LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "no", + api: { + wikipedia: "no" + }, + date: { + month: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], + month_abbr: ["Jan.", "Feb.", "Mars", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Des."], + day: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], + day_abbr: ["Søn.", "Man.", "Tir.", "Ons.", "Tor.", "Fre.", "Lør."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d. mmm", + full: "d. mmmm',' yyyy", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd. mmmm',' yyyy''", + full_long: "dddd',' d. mmm',' yyyy 'kl.' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' d. mmm',' yyyy''" + }, + messages: { + loading_timeline: "Laster timeline... ", + return_to_title: "Tilbake til tittel", + expand_timeline: "Utvid timeline", + contract_timeline: "Krymp timeline", + wikipedia: "Fra Wikipedia, den frie encyklopedi", + loading_content: "Laster innhold", + loading: "Laster" + } + } +} diff --git a/source/js/Core/Language/locale/pl.js b/source/js/Core/Language/locale/pl.js new file mode 100644 index 0000000..9ece89f --- /dev/null +++ b/source/js/Core/Language/locale/pl.js @@ -0,0 +1,37 @@ +/* Polish LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "pl", + api: { + wikipedia: "pl" + }, + date: { + month: ["Stycznia", "Lutego", "Marca", "Kwietnia", "Maja", "Czerwca", "Lipca", "Sierpnia", "Września", "Października", "Listopada", "Grudnia"], + month_abbr: ["Sty.", "Lut.", "Mar.", "Kwi.", "Maj.", "Cze.", "Lip.", "Sie.", "Wrz.", "Paź.", "Lis.", "Gru."], + day: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"], + day_abbr: ["Nie.", "Pon.", "Wto.", "Śro.", "Czw.", "Pią.", "Sob."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''", + full_long: "dddd',' d mmm yyyy 'um' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''" + }, + messages:{ + loading_timeline: "Ładowanie Timeline... ", + return_to_title: "Wróć do tytułu", + expand_timeline: "Powiększ Timeline", + contract_timeline: "Zmniejsz Timeline", + wikipedia: "Z Wikipedii, wolnej encyklopedii", + loading_content: "Ładowanie zawartości", + loading: "Ładowanie" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/pt-br.js b/source/js/Core/Language/locale/pt-br.js new file mode 100644 index 0000000..88a3892 --- /dev/null +++ b/source/js/Core/Language/locale/pt-br.js @@ -0,0 +1,38 @@ +/* Brazilian Portuguese LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "pt-br", + api: { + wikipedia: "pt" + }, + date: { + month: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], + month_abbr: ["Jan.", "Fev.", "Mar.", "Abr.", "Mai.", "Jun.", "Jul.", "Ago.", "Set.", "Out.", "Nov.", "Dez."], + day: ["Domingo","Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"], + day_abbr: ["Dom.","Seg.", "Ter.", "Qua.", "Qui.", "Sex.", "Sáb."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm 'de' yyyy", + full_short: "d 'de' mmm", + full: "d 'de' mmmm',' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "hh:MM TT", + time_no_seconds_small_date: "hh:MM TT'
'd 'de' mmmm',' yyyy''", + full_long: "dddd',' d 'de' mmm',' yyyy 'às' hh:MM TT", + full_long_small_date: "hh:MM TT'
'dddd',' d 'de' mmm',' yyyy''" + }, + messages: { + loading_timeline: "Carregando Timeline... ", + return_to_title: "Voltar para o título", + expand_timeline: "Expandir Timeline", + contract_timeline: "Contrair Timeline", + wikipedia: "Wikipedia, A enciclopédia livre", + loading_content: "Carregando Conteúdo", + loading: "Carregando" + + } + } +} diff --git a/source/js/Core/Language/locale/pt.js b/source/js/Core/Language/locale/pt.js new file mode 100644 index 0000000..eea6d24 --- /dev/null +++ b/source/js/Core/Language/locale/pt.js @@ -0,0 +1,37 @@ +/* Portuguese LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "pt", + api: { + wikipedia: "pt" + }, + date: { + month: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"], + month_abbr: ["Jan", "Fev", "Mar", "Abr", "Maio", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"], + day: ["Domingo","Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sabado"], + day_abbr: ["Dom","Seg", "Ter", "Qua", "Qui", "Sex", "Sab"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' hh:MM TT", + full_long_small_date: "hh:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "A carregar a timeline... ", + return_to_title: "Voltar ao Título", + expand_timeline: "Expandir Timeline", + contract_timeline: "Colapsar Timeline", + wikipedia: "Wikipedia, A enciclopedia Livre.", + loading_content: "A carregar o conteúdo", + loading: "A carregar" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/ru.js b/source/js/Core/Language/locale/ru.js new file mode 100644 index 0000000..10447fc --- /dev/null +++ b/source/js/Core/Language/locale/ru.js @@ -0,0 +1,37 @@ +/* Russian LANGUAGE + ================================================== */ +if (typeof VMM != "undefined") { + VMM.Language = { + lang:"ru", + api:{ + wikipedia:"ru" + }, + date:{ + month:["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], + month_abbr:["Янв.", "Фев.", "Март", "Апр.", "Май", "Июнь", "Июль", "Авг.", "Сент.", "Окт.", "Нояб.", "Дек."], + day:["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"], + day_abbr:["Вск.", "Пн.", "Вт.", "Ср.", "Чт.", "Пт.", "Сб."] + }, + dateformats:{ + year:"yyyy", + month_short:"mmm", + month:"mmmm yyyy", + full_short:"mmm d", + full:"mmmm d',' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short:"h:MM TT", + time_no_seconds_small_date:"h:MM TT'
'mmmm d',' yyyy''", + full_long:"mmm d',' yyyy 'at' hh:MM TT", + full_long_small_date:"hh:MM TT'
mmm d',' yyyy''" + }, + messages:{ + loading_timeline:"Загрузка... ", + return_to_title:"Вернуться к заголовку", + expand_timeline:"Увеличить", + contract_timeline:"Уменьшить", + wikipedia:"Из Wikipedia", + loading_content:"Загрузка контента", + loading: "Загрузка" + } + } +}; \ No newline at end of file diff --git a/source/js/Core/Language/locale/si.js b/source/js/Core/Language/locale/si.js new file mode 100644 index 0000000..9384e35 --- /dev/null +++ b/source/js/Core/Language/locale/si.js @@ -0,0 +1,34 @@ +/* Sinhalese LANGUAGE +================================================== */ +typeof VMM != "undefined" && (VMM.Language = { + lang: "si", + api: { + wikipedia: "si" + }, + date: { + month: ["ජනවාරි", "පෙබරවාරි", "මාර්තු", "අප්‍රේල්", "මැයි", "ජූනි", "ජූලි", "අගෝස්තු", "සැප්තැම්බර්", "ඔක්තෝම්බර්", "නොවැම්බර්", "දෙසැම්බර්"], + month_abbr: ["ජන.", "පෙබ.", "මාර්තු", "අප්‍රේල්", "මැයි", "ජුනි", "ජුලි", "අගෝ.", "සැප්.", "ඔක්.", "නොවැ.", "දෙසැ."], + day: ["ඉරිදා", "සදුදා", "අගහරුවදා", "බදාදා", "බ්‍රහස්පතින්දා", "සිකුරාදා", "සෙනසුරාදා"], + day_abbr: ["ඉරි.", "සදු.", "අග.", "බදා.", "බ්‍රහස්.", "සිකු.", "සෙන."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' h:MM TT", + full_long_small_date: "h:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "කාල රේඛාව ලෝඩ් වෙමින්... ", + return_to_title: "නැවත මාතෘකාවට", + expand_timeline: "කාල රේඛාව විහිදන්න", + contract_timeline: "කාල රේඛාව අකුලන්න", + wikipedia: "විකිපීඩියා, නිදහස් විශ්වකෝෂය වෙතින්", + loading_content: "අන්තර්ගතය ලෝඩ් වෙමින්", + loading: "ලෝඩ් වෙමින්" + } +}); diff --git a/source/js/Core/Language/locale/sk.js b/source/js/Core/Language/locale/sk.js new file mode 100644 index 0000000..65a0420 --- /dev/null +++ b/source/js/Core/Language/locale/sk.js @@ -0,0 +1,35 @@ +/* Slovak LANGUAGE +================================================== */ +typeof VMM != "undefined" && (VMM.Language = { + lang: "sk", + api: { + wikipedia: "sk" + }, + date: { + month: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], + month_abbr: ["Jan.", "Feb.", "Marec", "Apríl", "Máj", "Jún", "Júl", "Aug.", "Sept.", "Okt.", "Nov.", "Dec."], + day: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"], + day_abbr: ["Ned.", "Pon.", "Uto.", "Str.", "Štv.", "Pia.", "Sob."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "d. mmmm',' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' hh:MM TT", + full_long_small_date: "hh:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "Načítam časovú os... ", + return_to_title: "Späť na úvod", + expand_timeline: "Zväčšiť časovú os", + contract_timeline: "Zmenšiť časovú os", + wikipedia: "Z Wikipedie, encyklopédie zadarmo", + loading_content: "Načítam obsah", + loading: "Načítanie" + } +}); \ No newline at end of file diff --git a/source/js/Core/Language/locale/sl.js b/source/js/Core/Language/locale/sl.js new file mode 100644 index 0000000..0055afd --- /dev/null +++ b/source/js/Core/Language/locale/sl.js @@ -0,0 +1,37 @@ +/* Slovenian LANGUAGE SLOVENIAN +================================================== */ +if (typeof VMM != 'undefined') { + VMM.Language = { + lang: "sl", + api: { + wikipedia: "sl" + }, + date: { + month: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], + month_abbr: ["Jan.", "Feb.", "Marec", "April", "Maj", "Junij", "July", "Avg.", "Sept.", "Okt.", "Nov.", "Dec."], + day: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Čertek", "Petek", "Sobota"], + day_abbr: ["Ned.", "Pon.", "Tor.", "Sre.", "Čet.", "Pet.", "Sob."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "h:MM", + time_no_seconds_small_date: "h:MM' 'd mmmm' 'yyyy", + full_long: "d mmm yyyy 'ob' hh:MM", + full_long_small_date: "hh:MM' d mmm yyyy" + }, + messages: { + loading_timeline: "Nalagam časovni trak... ", + return_to_title: "Nazaj na naslov", + expand_timeline: "Razširi časovni trak", + contract_timeline: "Pokrči časovni trak", + wikipedia: "Vir Wikipedija", + loading_content: "Nalaganje vsebine", + loading: "Nalaganje" + } + } +} diff --git a/source/js/Core/Language/locale/sr-cy.js b/source/js/Core/Language/locale/sr-cy.js new file mode 100644 index 0000000..393cf45 --- /dev/null +++ b/source/js/Core/Language/locale/sr-cy.js @@ -0,0 +1,38 @@ +/* Serbian (Cyrillic) LANGUAGE +================================================== */ +if (typeof VMM != 'undefined') { + VMM.Language = { + lang: "рп", + api: { + wikipedia: "рп" + }, + date: { + month: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"], + month_abbr: ["Јан.", "Феб.", "Март", "Апр.", "Мај", "Јун", "Јул", "Авг.", "Сеп.", "Окт.", "Нов.", "Дец."], + day: ["Недеља", "Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"], + day_abbr: ["Нед.", "Пон.", "Уто.", "Сре.", "Чет.", "Пет.", "Суб."] + }, + dateformats: { + year: "yyyy.", + month_short: "mmm", + month: "mmmm yyyy.", + full_short: "d. mmm", + full: "d. mmmm yyyy.", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd. mmmm yyyy.''", + full_long: "d. mmm yyyy. 'u' HH:MM", + full_long_small_date: "HH:MM'
d. mmm yyyy.''" + }, + messages: { + loading_timeline: "Учитавање... ", + return_to_title: "Почетак", + expand_timeline: "Увећај", + contract_timeline: "Умањи", + wikipedia: "Из Википедије, слободне енциклопедије", + loading_content: "Садржај се учитава", + loading: "Учитава се" + } + } +} + diff --git a/source/js/Core/Language/locale/sr.js b/source/js/Core/Language/locale/sr.js new file mode 100644 index 0000000..c48f291 --- /dev/null +++ b/source/js/Core/Language/locale/sr.js @@ -0,0 +1,38 @@ +/* Serbian (Latin) LANGUAGE +================================================== */ +if (typeof VMM != 'undefined') { + VMM.Language = { + lang: "sr", + api: { + wikipedia: "sr" + }, + date: { + month: ["januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"], + month_abbr: ["Jan.", "Feb.", "Mart", "Apr.", "Maj", "Jun", "Jul", "Avg.", "Sep.", "Okt.", "Nov.", "Dec."], + day: ["Nedelja", "Ponedeljak", "Utorak", "Sreda", "Četvratk", "Petak", "Subota"], + day_abbr: ["Ned.", "Pon.", "Uto.", "Sre.", "Čet.", "Pet.", "Sub."] + }, + dateformats: { + year: "yyyy.", + month_short: "mmm", + month: "mmmm yyyy.", + full_short: "d. mmm", + full: "d. mmmm yyyy.", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd. mmmm yyyy.''", + full_long: "d. mmm yyyy. 'u' HH:MM", + full_long_small_date: "HH:MM'
d. mmm yyyy.''" + }, + messages: { + loading_timeline: "Učitavanje... ", + return_to_title: "Početak", + expand_timeline: "Uvećaj", + contract_timeline: "Umanji", + wikipedia: "Iz Vikipedije, slobodne enciklopedije", + loading_content: "Sadržaj se učitava", + loading: "Učitava se" + } + } +} + diff --git a/source/js/Core/Language/locale/sv.js b/source/js/Core/Language/locale/sv.js new file mode 100644 index 0000000..2c79316 --- /dev/null +++ b/source/js/Core/Language/locale/sv.js @@ -0,0 +1,37 @@ +/* Swedish LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "sv", + api: { + wikipedia: "sv" + }, + date: { + month: ["januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"], + month_abbr: ["jan", "febr", "mars", "april", "maj", "juni", "juli", "aug", "sept", "okt", "nov", "dec"], + day: ["söndag","måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"], + day_abbr: ["sön","mån", "tis", "ons", "tors", "fre", "lör"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm',' yyyy", + time_short: "HH:MM:ss", + time_no_seconds_short: "H:MM", + time_no_seconds_small_date: "H:MM'
'd mmmm',' yyyy''", + full_long: "d mmm',' yyyy 'vid' H:MM", + full_long_small_date: "H:MM'
d mmm',' yyyy''" + }, + messages: { + loading_timeline: "Laddar tidslinje... ", + return_to_title: "Tillbaka till start", + expand_timeline: "Förstora tidslinje", + contract_timeline: "Förminska tidslinje", + wikipedia: "Från Wikipedia, den fria encyklopedin", + loading_content: "Laddar innehåll", + loading: "Laddar" + } + } +} diff --git a/source/js/Core/Language/locale/ta.js b/source/js/Core/Language/locale/ta.js new file mode 100644 index 0000000..4b5319b --- /dev/null +++ b/source/js/Core/Language/locale/ta.js @@ -0,0 +1,37 @@ +/* Tamil LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "ta", + api: { + wikipedia: "ta" + }, + date: { + month: ["ஜனவரி", "பெப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜுன்", "ஜுலை", "ஆகஸ்ட்", "செப்டம்பர்", "ஒக்டோபர்", "நவம்பர்", "டிசம்பர்"], + month_abbr: ["ஜன.", "பெப்.", "மார்ச்", "ஏப்ரல்", "மே", "ஜுன்", "ஜுலை", "ஆகஸ்ட்", "செப்ட்.", "ஒக்டோ.", "நவம்பர்", "டிசம்பர்"], + day: ["ஞாயிறு","திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"], + day_abbr: ["ஞா","தி", "செ", "பு", "வி", "வெ", "சனி"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' hh:MM TT", + full_long_small_date: "hh:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "நேரக்கோடு தரவேறுகிறது.... ", + return_to_title: "தலைப்பிற்குச் செல்ல", + expand_timeline: "நேரக்கோட்டை விரிக்க", + contract_timeline: "நேரக்கோட்டை சுருக்க", + wikipedia: "கட்டற்ற கலைக்களஞ்சியம், விக்கிப்பீடியாவிலிருந்து", + loading_content: "உள்ளடக்கம் தரவேறுகிறது...", + loading: "தரவேறுகிறது" + } + } +} diff --git a/source/js/Core/Language/locale/tl.js b/source/js/Core/Language/locale/tl.js new file mode 100644 index 0000000..75488be --- /dev/null +++ b/source/js/Core/Language/locale/tl.js @@ -0,0 +1,37 @@ +/* Tagalog LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "tl", + api: { + wikipedia: "tl" + }, + date: { + month: ["Enemo", "Pebrero", "Marso", "Abril", "Mayo", "Hunyo", "Hulyo", "Agosto", "Setyembre", "Oktubre", "Nobyembre", "Disyembre"], + month_abbr: ["Ene.", "Peb.", "Mar.", "Abr.", "Mayo", "Hun.", "Hul.", "Ago.", "Set.", "Okt.", "Nob.", "Dis."], + day: ["Linggo", "Lunes", "Martes", "Miyerkules", "Huwebes", "Biyernes", "Sabado"], + day_abbr: ["Li.","L.", "M.", "Mi.", "H.", "B.", "S."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "mmm d", + full: "mmmm d',' yyyy", + time_short: "h:MM:ss TT", + time_no_seconds_short: "h:MM TT", + time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''", + full_long: "mmm d',' yyyy 'at' h:MM TT", + full_long_small_date: "h:MM TT'
mmm d',' yyyy''" + }, + messages: { + loading_timeline: "Loading Timeline... ", + return_to_title: "Return to Title", + expand_timeline: "Expand Timeline", + contract_timeline: "Contract Timeline", + wikipedia: "Mula sa Wikipedia, ang malayang ensiklopedya", + loading_content: "Loading Content", + loading: "Loading" + } + } +} diff --git a/source/js/Core/Language/locale/tr.js b/source/js/Core/Language/locale/tr.js new file mode 100644 index 0000000..7efe89c --- /dev/null +++ b/source/js/Core/Language/locale/tr.js @@ -0,0 +1,37 @@ +/* Turkish LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "tr", + api: { + wikipedia: "tr" + }, + date: { + month: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], + month_abbr: ["Oca.", "Şub.", "Mar.", "Nis.", "May.", "Haz.", "Tem.", "Ağu.", "Eyl.", "Eki.", "Kas.", "Ara."], + day: ["Pazar","Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"], + day_abbr: ["Paz.","Pzt.", "Sal.", "Çar.", "Per.", "Cum.", "Cts."] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm',' yyyy", + time_short: "HH:MM:ss", + time_no_seconds_short: "H:MM", + time_no_seconds_small_date: "H:MM'
'd mmmm',' yyyy''", + full_long: "d mmm',' yyyy 'at' H:MM", + full_long_small_date: "H:MM '
d mmm',' yyyy''" + }, + messages: { + loading_timeline: "Zaman Çizelgesi Yükleniyor... ", + return_to_title: "Başlığa Dön", + expand_timeline: "Zaman Çizelgesini Genişlet", + contract_timeline: "Zaman Çizelgesini Daralt", + wikipedia: "Wikipedia'dan, özgür ansiklopedi", + loading_content: "İçerik Yükleniyor", + loading: "Yükleniyor" + } + } +} \ No newline at end of file diff --git a/source/js/Core/Language/locale/zh-cn.js b/source/js/Core/Language/locale/zh-cn.js new file mode 100644 index 0000000..f99408b --- /dev/null +++ b/source/js/Core/Language/locale/zh-cn.js @@ -0,0 +1,38 @@ +/* Chinese LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "zh-cn", + api: { + wikipedia: "zh" + }, + date: { + month: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + month_abbr: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + day: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], + day_abbr: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"] + }, + dateformats: { + year: "yyyy年", + month_short: "mmm", + month: "yyyy年 mmmm", + full_short: "mmm d", + full: "yyyy年mmmm d日", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'yyyy年mmmm d日''", + full_long: "dddd',' yyyy年 mmm d日'um' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' yyyy年 mmm d日''" + }, + messages: { + loading_timeline: "加载时间线... ", + return_to_title: "回到开头", + expand_timeline: "伸展时间", + contract_timeline: "缩短时间", + wikipedia: "来自维基百科,自由的百科全书", + loading_content: "正在加载内容", + loading: "加载中" + + } + } +} diff --git a/source/js/Core/Language/locale/zh-tw.js b/source/js/Core/Language/locale/zh-tw.js new file mode 100644 index 0000000..80979f2 --- /dev/null +++ b/source/js/Core/Language/locale/zh-tw.js @@ -0,0 +1,38 @@ +/* Taiwanese LANGUAGE +================================================== */ +if(typeof VMM != 'undefined') { + VMM.Language = { + lang: "zh-tw", + api: { + wikipedia: "zh" + }, + date: { + month: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + month_abbr: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], + day: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], + day_abbr: ["週日", "週一", "週二", "週三", "週四", "週五", "週六"] + }, + dateformats: { + year: "yyyy", + month_short: "mmm", + month: "mmmm yyyy", + full_short: "d mmm", + full: "d mmmm yyyy", + time_short: "HH:MM:ss", + time_no_seconds_short: "HH:MM", + time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''", + full_long: "dddd',' d mmm yyyy 'um' HH:MM", + full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''" + }, + messages: { + loading_timeline: "載入時間線... ", + return_to_title: "回到開頭", + expand_timeline: "展開時間", + contract_timeline: "縮短時間", + wikipedia: "擷取自維基百科, 自由之百科全書", + loading_content: "載入內容", + loading: "載入中" + + } + } +} diff --git a/source/js/Core/Library/AES.js b/source/js/Core/Library/AES.js new file mode 100644 index 0000000..958a31a --- /dev/null +++ b/source/js/Core/Library/AES.js @@ -0,0 +1,463 @@ +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +/* AES implementation in JavaScript (c) Chris Veness 2005-2011 */ +/* - see http://csrc.nist.gov/publications/PubsFIPS.html#197 */ +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +var Aes = {}; // Aes namespace + +/** + * AES Cipher function: encrypt 'input' state with Rijndael algorithm + * applies Nr rounds (10/12/14) using key schedule w for 'add round key' stage + * + * @param {Number[]} input 16-byte (128-bit) input state array + * @param {Number[][]} w Key schedule as 2D byte-array (Nr+1 x Nb bytes) + * @returns {Number[]} Encrypted output state array + */ +Aes.cipher = function(input, w) { // main Cipher function [§5.1] + var Nb = 4; // block size (in words): no of columns in state (fixed at 4 for AES) + var Nr = w.length/Nb - 1; // no of rounds: 10/12/14 for 128/192/256-bit keys + + var state = [[],[],[],[]]; // initialise 4xNb byte-array 'state' with input [§3.4] + for (var i=0; i<4*Nb; i++) state[i%4][Math.floor(i/4)] = input[i]; + + state = Aes.addRoundKey(state, w, 0, Nb); + + for (var round=1; round 6 && i%Nk == 4) { + temp = Aes.subWord(temp); + } + for (var t=0; t<4; t++) w[i][t] = w[i-Nk][t] ^ temp[t]; + } + + return w; +} + +/* + * ---- remaining routines are private, not called externally ---- + */ + +Aes.subBytes = function(s, Nb) { // apply SBox to state S [§5.1.1] + for (var r=0; r<4; r++) { + for (var c=0; c>> i*8) & 0xff; + for (var i=0; i<2; i++) counterBlock[i+2] = (nonceRnd >>> i*8) & 0xff; + for (var i=0; i<4; i++) counterBlock[i+4] = (nonceSec >>> i*8) & 0xff; + + // and convert it to a string to go on the front of the ciphertext + var ctrTxt = ''; + for (var i=0; i<8; i++) ctrTxt += String.fromCharCode(counterBlock[i]); + + // generate key schedule - an expansion of the key into distinct Key Rounds for each round + var keySchedule = Aes.keyExpansion(key); + + var blockCount = Math.ceil(plaintext.length/blockSize); + var ciphertxt = new Array(blockCount); // ciphertext as array of strings + + for (var b=0; b>> c*8) & 0xff; + for (var c=0; c<4; c++) counterBlock[15-c-4] = (b/0x100000000 >>> c*8) + + var cipherCntr = Aes.cipher(counterBlock, keySchedule); // -- encrypt counter block -- + + // block size is reduced on final block + var blockLength = b>> c*8) & 0xff; + for (var c=0; c<4; c++) counterBlock[15-c-4] = (((b+1)/0x100000000-1) >>> c*8) & 0xff; + + var cipherCntr = Aes.cipher(counterBlock, keySchedule); // encrypt counter block + + var plaintxtByte = new Array(ciphertext[b].length); + for (var i=0; i 0) { while (c++ < 3) { pad += '='; plain += '\0'; } } + // note: doing padding here saves us doing special-case packing for trailing 1 or 2 chars + + for (c=0; c>18 & 0x3f; + h2 = bits>>12 & 0x3f; + h3 = bits>>6 & 0x3f; + h4 = bits & 0x3f; + + // use hextets to index into code string + e[c/3] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4); + } + coded = e.join(''); // join() is far faster than repeated string concatenation in IE + + // replace 'A's from padded nulls with '='s + coded = coded.slice(0, coded.length-pad.length) + pad; + + return coded; +} + +/** + * Decode string from Base64, as defined by RFC 4648 [http://tools.ietf.org/html/rfc4648] + * (instance method extending String object). As per RFC 4648, newlines are not catered for. + * + * @param {String} str The string to be decoded from base-64 + * @param {Boolean} [utf8decode=false] Flag to indicate whether str is Unicode string to be decoded + * from UTF8 after conversion from base64 + * @returns {String} decoded string + */ +Base64.decode = function(str, utf8decode) { + utf8decode = (typeof utf8decode == 'undefined') ? false : utf8decode; + var o1, o2, o3, h1, h2, h3, h4, bits, d=[], plain, coded; + var b64 = Base64.code; + + coded = utf8decode ? str.decodeUTF8() : str; + + + for (var c=0; c>>16 & 0xff; + o2 = bits>>>8 & 0xff; + o3 = bits & 0xff; + + d[c/4] = String.fromCharCode(o1, o2, o3); + // check for padding + if (h4 == 0x40) d[c/4] = String.fromCharCode(o1, o2); + if (h3 == 0x40) d[c/4] = String.fromCharCode(o1); + } + plain = d.join(''); // join() is far faster than repeated string concatenation in IE + + return utf8decode ? plain.decodeUTF8() : plain; +} + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +/* Utf8 class: encode / decode between multi-byte Unicode characters and UTF-8 multiple */ +/* single-byte character encoding (c) Chris Veness 2002-2011 */ +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +var Utf8 = {}; // Utf8 namespace + +/** + * Encode multi-byte Unicode string into utf-8 multiple single-byte characters + * (BMP / basic multilingual plane only) + * + * Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars + * + * @param {String} strUni Unicode string to be encoded as UTF-8 + * @returns {String} encoded string + */ +Utf8.encode = function(strUni) { + // use regular expressions & String.replace callback function for better efficiency + // than procedural approaches + var strUtf = strUni.replace( + /[\u0080-\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz + function(c) { + var cc = c.charCodeAt(0); + return String.fromCharCode(0xc0 | cc>>6, 0x80 | cc&0x3f); } + ); + strUtf = strUtf.replace( + /[\u0800-\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz + function(c) { + var cc = c.charCodeAt(0); + return String.fromCharCode(0xe0 | cc>>12, 0x80 | cc>>6&0x3F, 0x80 | cc&0x3f); } + ); + return strUtf; +} + +/** + * Decode utf-8 encoded string back into multi-byte Unicode characters + * + * @param {String} strUtf UTF-8 string to be decoded back to Unicode + * @returns {String} decoded string + */ +Utf8.decode = function(strUtf) { + // note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char! + var strUni = strUtf.replace( + /[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars + function(c) { // (note parentheses for precence) + var cc = ((c.charCodeAt(0)&0x0f)<<12) | ((c.charCodeAt(1)&0x3f)<<6) | ( c.charCodeAt(2)&0x3f); + return String.fromCharCode(cc); } + ); + strUni = strUni.replace( + /[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars + function(c) { // (note parentheses for precence) + var cc = (c.charCodeAt(0)&0x1f)<<6 | c.charCodeAt(1)&0x3f; + return String.fromCharCode(cc); } + ); + return strUni; +} + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ \ No newline at end of file diff --git a/source/js/Core/Library/LazyLoad.js b/source/js/Core/Library/LazyLoad.js new file mode 100644 index 0000000..b03d815 --- /dev/null +++ b/source/js/Core/Library/LazyLoad.js @@ -0,0 +1,391 @@ +/*jslint browser: true, eqeqeq: true, bitwise: true, newcap: true, immed: true, regexp: false */ + +/* +LazyLoad makes it easy and painless to lazily load one or more external +JavaScript or CSS files on demand either during or after the rendering of a web +page. + +Supported browsers include Firefox 2+, IE6+, Safari 3+ (including Mobile +Safari), Google Chrome, and Opera 9+. Other browsers may or may not work and +are not officially supported. + +Visit https://github.com/rgrove/lazyload/ for more info. + +Copyright (c) 2011 Ryan Grove +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the 'Software'), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@module lazyload +@class LazyLoad +@static +@version 2.0.3 (git) +*/ + +LazyLoad = (function (doc) { + // -- Private Variables ------------------------------------------------------ + + // User agent and feature test information. + var env, + + // Reference to the element (populated lazily). + head, + + // Requests currently in progress, if any. + pending = {}, + + // Number of times we've polled to check whether a pending stylesheet has + // finished loading. If this gets too high, we're probably stalled. + pollCount = 0, + + // Queued requests. + queue = {css: [], js: []}, + + // Reference to the browser's list of stylesheets. + styleSheets = doc.styleSheets; + + // -- Private Methods -------------------------------------------------------- + + /** + Creates and returns an HTML element with the specified name and attributes. + + @method createNode + @param {String} name element name + @param {Object} attrs name/value mapping of element attributes + @return {HTMLElement} + @private + */ + function createNode(name, attrs) { + var node = doc.createElement(name), attr; + + for (attr in attrs) { + if (attrs.hasOwnProperty(attr)) { + node.setAttribute(attr, attrs[attr]); + } + } + + return node; + } + + /** + Called when the current pending resource of the specified type has finished + loading. Executes the associated callback (if any) and loads the next + resource in the queue. + + @method finish + @param {String} type resource type ('css' or 'js') + @private + */ + function finish(type) { + var p = pending[type], + callback, + urls; + + if (p) { + callback = p.callback; + urls = p.urls; + + urls.shift(); + pollCount = 0; + + // If this is the last of the pending URLs, execute the callback and + // start the next request in the queue (if any). + if (!urls.length) { + callback && callback.call(p.context, p.obj); + pending[type] = null; + queue[type].length && load(type); + } + } + } + + /** + Populates the env variable with user agent and feature test + information. + + @method getEnv + @private + */ + function getEnv() { + var ua = navigator.userAgent; + + env = { + // True if this browser supports disabling async mode on dynamically + // created script nodes. See + // http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order + async: doc.createElement('script').async === true + }; + + (env.webkit = /AppleWebKit\//.test(ua)) + || (env.ie = /MSIE/.test(ua)) + || (env.opera = /Opera/.test(ua)) + || (env.gecko = /Gecko\//.test(ua)) + || (env.unknown = true); + } + + /** + Loads the specified resources, or the next resource of the specified type + in the queue if no resources are specified. If a resource of the specified + type is already being loaded, the new request will be queued until the + first request has been finished. + + When an array of resource URLs is specified, those URLs will be loaded in + parallel if it is possible to do so while preserving execution order. All + browsers support parallel loading of CSS, but only Firefox and Opera + support parallel loading of scripts. In other browsers, scripts will be + queued and loaded one at a time to ensure correct execution order. + + @method load + @param {String} type resource type ('css' or 'js') + @param {String|Array} urls (optional) URL or array of URLs to load + @param {Function} callback (optional) callback function to execute when the + resource is loaded + @param {Object} obj (optional) object to pass to the callback function + @param {Object} context (optional) if provided, the callback function will + be executed in this object's context + @private + */ + function load(type, urls, callback, obj, context) { + var _finish = function () { finish(type); }, + isCSS = type === 'css', + nodes = [], + i, len, node, p, pendingUrls, url; + + env || getEnv(); + + if (urls) { + // If urls is a string, wrap it in an array. Otherwise assume it's an + // array and create a copy of it so modifications won't be made to the + // original. + urls = typeof urls === 'string' ? [urls] : urls.concat(); + + // Create a request object for each URL. If multiple URLs are specified, + // the callback will only be executed after all URLs have been loaded. + // + // Sadly, Firefox and Opera are the only browsers capable of loading + // scripts in parallel while preserving execution order. In all other + // browsers, scripts must be loaded sequentially. + // + // All browsers respect CSS specificity based on the order of the link + // elements in the DOM, regardless of the order in which the stylesheets + // are actually downloaded. + if (isCSS || env.async || env.gecko || env.opera) { + // Load in parallel. + queue[type].push({ + urls : urls, + callback: callback, + obj : obj, + context : context + }); + } else { + // Load sequentially. + for (i = 0, len = urls.length; i < len; ++i) { + queue[type].push({ + urls : [urls[i]], + callback: i === len - 1 ? callback : null, // callback is only added to the last URL + obj : obj, + context : context + }); + } + } + } + + // If a previous load request of this type is currently in progress, we'll + // wait our turn. Otherwise, grab the next item in the queue. + if (pending[type] || !(p = pending[type] = queue[type].shift())) { + return; + } + + head || (head = doc.head || doc.getElementsByTagName('head')[0]); + pendingUrls = p.urls; + + for (i = 0, len = pendingUrls.length; i < len; ++i) { + url = pendingUrls[i]; + + if (isCSS) { + node = env.gecko ? createNode('style') : createNode('link', { + href: url, + rel : 'stylesheet' + }); + } else { + node = createNode('script', {src: url}); + node.async = false; + } + + node.className = 'lazyload'; + node.setAttribute('charset', 'utf-8'); + + if (env.ie && !isCSS) { + node.onreadystatechange = function () { + if (/loaded|complete/.test(node.readyState)) { + node.onreadystatechange = null; + _finish(); + } + }; + } else if (isCSS && (env.gecko || env.webkit)) { + // Gecko and WebKit don't support the onload event on link nodes. + if (env.webkit) { + // In WebKit, we can poll for changes to document.styleSheets to + // figure out when stylesheets have loaded. + p.urls[i] = node.href; // resolve relative URLs (or polling won't work) + pollWebKit(); + } else { + // In Gecko, we can import the requested URL into a