define(["layoutManager", "datetime", "cardBuilder", "apphost"], function(layoutManager, datetime, cardBuilder, appHost) { "use strict"; function enableScrollX() { return !layoutManager.desktop } function getBackdropShape() { return enableScrollX() ? "overflowBackdrop" : "backdrop" } function getTimersHtml(timers, options) { options = options || {}; var i, length, items = timers.map(function(t) { return t.Type = "Timer", t }), groups = [], currentGroupName = "", currentGroup = []; for (i = 0, length = items.length; i < length; i++) { var item = items[i], dateText = ""; if (!1 !== options.indexByDate && item.StartDate) try { var premiereDate = datetime.parseISO8601Date(item.StartDate, !0); dateText = datetime.toLocaleDateString(premiereDate, { weekday: "long", month: "short", day: "numeric" }) } catch (err) {} dateText != currentGroupName ? (currentGroup.length && groups.push({ name: currentGroupName, items: currentGroup }), currentGroupName = dateText, currentGroup = [item]) : currentGroup.push(item) } currentGroup.length && groups.push({ name: currentGroupName, items: currentGroup }); var html = ""; for (i = 0, length = groups.length; i < length; i++) { var group = groups[i], supportsImageAnalysis = appHost.supports("imageanalysis"), cardLayout = appHost.preferVisualCards || supportsImageAnalysis; if (cardLayout = !0, group.name && (html += '
', html += '

' + group.name + "

"), enableScrollX()) { var scrollXClass = "scrollX hiddenScrollX"; layoutManager.tv && (scrollXClass += " smoothScrollX"), html += '
' } else html += '
'; html += cardBuilder.getCardsHtml({ items: group.items, shape: cardLayout ? getBackdropShape() : enableScrollX() ? "autoOverflow" : "autoVertical", showParentTitleOrTitle: !0, showAirTime: !0, showAirEndTime: !0, showChannelName: !cardLayout, cardLayout: cardLayout, centerText: !cardLayout, action: "edit", cardFooterAside: "none", preferThumb: !!cardLayout || "auto", defaultShape: cardLayout ? null : "portrait", coverImage: !0, allowBottomPadding: !1, overlayText: !1, showChannelLogo: cardLayout }), html += "
", group.name && (html += "
") } return Promise.resolve(html) } window.LiveTvHelpers = { getTimersHtml: getTimersHtml } });