(function () { "use strict"; angular.module('shared') .service('GenericDateService', [function GenericDateService() { var startDate = null; var stopDate = null; var observerCallbacks = []; var rosterFile = null; var datesInitialized = false; var selectedDateRange = null; var originalEndDate = null; var originalStartDate = null; function registerObserverCallback(callback) { if (callback == null) { return; } observerCallbacks = []; observerCallbacks.push(callback); } function clearCallback() { observerCallbacks = []; } function refresh() { angular.forEach(observerCallbacks, function(callback){ callback(); }); } function setDateRange(mRange) { selectedDateRange = mRange; } function getDateRange() { return selectedDateRange; } function setOriginalEndDate(mOriginalEndDate) { originalEndDate = mOriginalEndDate; } function getOriginalEndDate() { return originalEndDate; } function setOriginalStartDate(mOriginalStartDate) { originalStartDate = mOriginalStartDate; } function getOriginalStartDate() { return originalStartDate; } function setStartDate(mDate) { datesInitialized = mDate != null; startDate = mDate; } function areDatesInitialized() { return datesInitialized; } function setStopDate(mDate) { stopDate = mDate; } function getStrippedStartDate(addDash) { if (addDash) { return $j.datepicker.formatDate("yy-mm-dd", new Date(startDate.replace(/-/g, '/'))); } return $j.datepicker.formatDate("yymmdd", new Date(startDate.replace(/-/g, '/'))); } function getStrippedStopDate(addDash) { if (addDash) { return $j.datepicker.formatDate("yy-mm-dd", new Date(stopDate.replace(/-/g, '/'))); } return $j.datepicker.formatDate("yymmdd", new Date(stopDate.replace(/-/g, '/'))); } function getStartDate() { return startDate; } function getStopDate() { return stopDate; } function getRosterFile() { return rosterFile; } function setRosterFile(mRosterFile) { rosterFile = mRosterFile; } return { areDatesInitialized: areDatesInitialized, registerObserverCallback: registerObserverCallback, refresh: refresh, setStartDate: setStartDate, setStopDate: setStopDate, getStartDate: getStartDate, getStopDate: getStopDate, getStrippedStartDate: getStrippedStartDate, getStrippedStopDate: getStrippedStopDate, setRosterFile: setRosterFile, getRosterFile: getRosterFile, setDateRange:setDateRange, getDateRange: getDateRange, setOriginalEndDate: setOriginalEndDate, getOriginalEndDate: getOriginalEndDate, setOriginalStartDate: setOriginalStartDate, getOriginalStartDate: getOriginalStartDate, clearCallback: clearCallback }; }]) })();