| /*================================================== |
| * Geochrono Labeller |
| *================================================== |
| */ |
| |
| Timeline.GeochronoLabeller = function(locale) { |
| this._locale = locale; |
| }; |
| |
| Timeline.GeochronoLabeller.eonNames = []; |
| Timeline.GeochronoLabeller.eraNames = []; |
| Timeline.GeochronoLabeller.periodNames = []; |
| Timeline.GeochronoLabeller.epochNames = []; |
| Timeline.GeochronoLabeller.ageNames = []; |
| |
| Timeline.GeochronoLabeller.prototype.labelInterval = function(date, intervalUnit) { |
| var n = Timeline.GeochronoUnit.toNumber(date); |
| var dates, names; |
| switch (intervalUnit) { |
| case Timeline.GeochronoUnit.AGE: |
| dates = Timeline.Geochrono.ages; |
| names = Timeline.GeochronoLabeller.ageNames; break; |
| case Timeline.GeochronoUnit.EPOCH: |
| dates = Timeline.Geochrono.epoches; |
| names = Timeline.GeochronoLabeller.epochNames; break; |
| case Timeline.GeochronoUnit.PERIOD: |
| dates = Timeline.Geochrono.periods; |
| names = Timeline.GeochronoLabeller.periodNames; break; |
| case Timeline.GeochronoUnit.ERA: |
| dates = Timeline.Geochrono.eras; |
| names = Timeline.GeochronoLabeller.eraNames; break; |
| case Timeline.GeochronoUnit.EON: |
| dates = Timeline.Geochrono.eons; |
| names = Timeline.GeochronoLabeller.eonNames; break; |
| default: |
| return { text: n, emphasized: false }; |
| } |
| |
| for (var i = dates.length - 1; i >= 0; i--) { |
| if (n <= dates[i].start) { |
| return { |
| text: names[this._locale][i].name, |
| emphasized: n == dates[i].start |
| } |
| } |
| } |
| return { text: n, emphasized: false }; |
| }; |
| |
| Timeline.GeochronoLabeller.prototype.labelPrecise = function(date) { |
| return Timeline.GeochronoUnit.toNumber(date) + "ma"; |
| }; |