(function () { "use strict"; var appView = Windows.UI.ViewManagement.ApplicationView; var appViewState = Windows.UI.ViewManagement.ApplicationViewState; var nav = WinJS.Navigation; var ui = WinJS.UI; var utils = WinJS.Utilities; function hideLoader(e) { var postsList = document.querySelector('.win-surface'); if (postsList && !WinJS.Utilities.hasClass(postsList, 'hide') && WPCom.dataSources[WPCom.getCurrentFilter()].groupedList.length) { WPCom.toggleLoader('hide'); } else if (document.getElementById('freshlypressed-list')) { var listview = document.getElementById('freshlypressed-list'); if (listview.winControl.loadingState == "complete" && !WPCom.dataSources[WPCom.getCurrentFilter()].fetching) { WPCom.toggleLoader('hide'); }; }; } function getOlderFP(e) { if (document.getElementById('freshlypressed-list')) { var listview = document.getElementById('freshlypressed-list').winControl; if ('itemsLoaded' == listview.loadingState && (listview.indexOfLastVisible + 1 + (2 * WPCom.getDefaultPostCount())) >= WPCom.dataSources.freshlypressed.groupedList.length && !WPCom.dataSources.freshlypressed.fetching) { WPCom.dataSources[WPCom.getCurrentFilter()].getData('older'); } else if ('complete' == listview.loadingState) { WPCom.dataSources[WPCom.getCurrentFilter()].scrollPosition = listview.scrollPosition; } } } function scrollToPosition(e) { var listview = document.getElementById("freshlypressed-list").winControl; var pos = WPCom.dataSources[WPCom.getCurrentFilter()].scrollPosition; if ('complete' == listview.loadingState) { WPCom.toggleElement(document.querySelector('.win-surface'), 'show'); if (pos > 0) listview.scrollPosition = pos; listview.removeEventListener('loadingstatechanged', scrollToPosition); } } // This function updates the page layout in response to viewState changes. function updatePageLayout(element, viewState) { document.getElementById('semanticZoomDiv').winControl.forceLayout(); if (viewState === Windows.UI.ViewManagement.ApplicationViewState.snapped) WPCom.dataSources[WPCom.getCurrentFilter()].reset(true, true); var listView = element.querySelector('#freshlypressed-list').winControl; var zoomoutView = element.querySelector('#freshlypressed-zoomout-list').winControl; var listViewLayout, zoomoutViewLayout; if (viewState === Windows.UI.ViewManagement.ApplicationViewState.snapped) { listViewLayout = new WinJS.UI.ListLayout(); zoomoutViewLayout = new WinJS.UI.ListLayout(); } else { listViewLayout = new WinJS.UI.GridLayout(); zoomoutViewLayout = new WinJS.UI.GridLayout({ maxRows: 1 }); } WinJS.UI.setOptions(listView, { itemDataSource: WPCom.dataSources[WPCom.getCurrentFilter()].groupedList.dataSource, itemTemplate: element.querySelector('#' + WPCom.getCurrentFilter() + 'Template'), groupDataSource: WPCom.dataSources[WPCom.getCurrentFilter()].groupedList.groups.dataSource, groupHeaderTemplate: element.querySelector('#headerTemplate'), selectionMode: 'none', swipeBehavior: 'none', oniteminvoked: WPCom.showPost, layout: listViewLayout }); WinJS.UI.setOptions(zoomoutView, { itemDataSource: WPCom.dataSources[WPCom.getCurrentFilter()].groupedList.groups.dataSource, itemTemplate: element.querySelector('#freshlypressedZoomoutTemplate'), selectionMode: 'none', swipeBehavior: 'none', tapBehavior: 'invoke', layout: zoomoutViewLayout }); if (WPCom.getCurrentFilter() == 'myblog') { WinJS.UI.setOptions(listView, { groupHeaderTemplate: element.querySelector('#myBlogHeaderTemplate') }); } if (WPCom.dataSources[WPCom.getCurrentFilter()].scrollPosition > 0) { WPCom.toggleElement(document.querySelector('.win-surface'), 'hide'); listView.addEventListener('loadingstatechanged', scrollToPosition); } listView.addEventListener('loadingstatechanged', getOlderFP); } WinJS.UI.Pages.define("/pages/main-list.html", { ready: function (element, options) { WinJS.UI.Animation.enterPage(document.querySelector('header'), { top: '0px', left: '200px' }); this.populateTabs(); WPCom.newDataSource('freshlypressed'); document.getElementById("refresh").addEventListener("click", WPCom.refresh, false); document.getElementById("newpost").addEventListener("click", WPCom.newPost, false); updatePageLayout(element, Windows.UI.ViewManagement.ApplicationView.value); document.getElementById('freshlypressed-list').winControl.addEventListener('loadingstatechanged', hideLoader); document.getElementById('freshlypressed-list').winControl.addEventListener("mousewheel", function (eventObject) { var delta = -Math.round(eventObject.wheelDelta); document.getElementById('freshlypressed-list').winControl.scrollPosition = document.getElementById('freshlypressed-list').winControl.scrollPosition + delta; }); }, updateLayout: function (element, viewState) { updatePageLayout(element, viewState); }, populateTabs: function () { var ul = document.getElementById('tabs'); if (null == ul) return; var tabs = { 'Freshly Pressed': 'freshlypressed', 'Blogs I Follow': 'following', //'Posts I Like': '/pages/liked.html', //'Topics': '/pages/topics.html', 'My Blog': 'myblog', }; var selected = ''; for (var tab in tabs) { selected = (WPCom.getCurrentFilter() == tabs[tab]) ? 'selected' : ''; ul.innerHTML += '