/*================================================== * Geochrono Unit *================================================== */ Timeline.GeochronoUnit = new Object(); Timeline.GeochronoUnit.MA = 0; Timeline.GeochronoUnit.AGE = 1; Timeline.GeochronoUnit.EPOCH = 2; Timeline.GeochronoUnit.PERIOD = 3; Timeline.GeochronoUnit.ERA = 4; Timeline.GeochronoUnit.EON = 5; Timeline.GeochronoUnit.getParser = function(format) { return Timeline.GeochronoUnit.parseFromObject; }; Timeline.GeochronoUnit.createLabeller = function(locale, timeZone) { return new Timeline.GeochronoLabeller(locale); }; Timeline.GeochronoUnit.wrapMA = function (n) { return new Timeline.GeochronoUnit._MA(n); }; Timeline.GeochronoUnit.makeDefaultValue = function () { return Timeline.GeochronoUnit.wrapMA(0); }; Timeline.GeochronoUnit.cloneValue = function (v) { return new Timeline.GeochronoUnit._MA(v._n); }; Timeline.GeochronoUnit.parseFromObject = function(o) { if (o instanceof Timeline.GeochronoUnit._MA) { return o; } else if (typeof o == "number") { return Timeline.GeochronoUnit.wrapMA(o); } else if (typeof o == "string" && o.length > 0) { return Timeline.GeochronoUnit.wrapMA(Number(o)); } else { return null; } }; Timeline.GeochronoUnit.toNumber = function(v) { return v._n; }; Timeline.GeochronoUnit.fromNumber = function(n) { return new Timeline.GeochronoUnit._MA(n); }; Timeline.GeochronoUnit.compare = function(v1, v2) { var n1, n2; if (typeof v1 == "object") { n1 = v1._n; } else { n1 = Number(v1); } if (typeof v2 == "object") { n2 = v2._n; } else { n2 = Number(v2); } return n2 - n1; }; Timeline.GeochronoUnit.earlier = function(v1, v2) { return Timeline.GeochronoUnit.compare(v1, v2) < 0 ? v1 : v2; }; Timeline.GeochronoUnit.later = function(v1, v2) { return Timeline.GeochronoUnit.compare(v1, v2) > 0 ? v1 : v2; }; Timeline.GeochronoUnit.change = function(v, n) { return new Timeline.GeochronoUnit._MA(v._n - n); }; Timeline.GeochronoUnit._MA = function(n) { this._n = n; };