private void itemListReleased(object sender, PointerRoutedEventArgs e)
        {
            isRightClicking = false;
            DataStructure.ModuleItem selectedItem = (e.OriginalSource as FrameworkElement).DataContext as DataStructure.ModuleItem;

            // make sure the tap event occurs on list items
            if (selectedItem != null && selectedItem != _currentItem)
            {
                switch (selectedItem.itemType)
                {
                    case DataStructure.ItemType.ANNOUNCEMENT:
                        flipView.SelectedItem = null;
                        flipView.SelectedIndex = 1;
                        break;

                    case DataStructure.ItemType.GRADEBOOK:
                        flipView.SelectedItem = null;
                        flipView.SelectedIndex = 3;
                        break;

                    case DataStructure.ItemType.ABOUT:
                        flipView.SelectedItem = null;
                        flipView.SelectedIndex = 0;
                        break;

                    case DataStructure.ItemType.WEBCAST:
                        flipView.SelectedItem = null;
                        flipView.SelectedIndex = 5;

                        // generate a complete list of video files
                        // and store under webcast object
                        _currentModule.moduleWebcasts[selectedItem.itemIndex].GenerateVideoFileList();
                        webcastGridViews.Source = _currentModule.moduleWebcasts[selectedItem.itemIndex].webcastAllVideoFiles;
                        playerStackpanel.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                        webcastGridView.Visibility = Windows.UI.Xaml.Visibility.Visible;
                        break;

                    case DataStructure.ItemType.WORKBIN:
                        flipView.SelectedItem = null;
                        flipView.SelectedIndex = 2;

                        _currentWorkbin = _currentModule.moduleWorkbins[selectedItem.itemIndex];

                        folder.Source = _currentWorkbin.workbinFolders;
                        file.Source = new List<DataStructure.File>();

                        _folderTree.Clear();
                        upFolderButton.Visibility = Visibility.Collapsed;
                        upFolderButton_snapped.Visibility = Visibility.Collapsed;

                        break;

                    case DataStructure.ItemType.FORUM:
                        flipView.SelectedItem = null;
                        flipView.SelectedIndex = 4;

                        _currentForumIndex = selectedItem.itemIndex;

                        // generate content for display
                        updateForum();

                        headers.Source = _currentModule.moduleForums[selectedItem.itemIndex].forumAllTitles;
                   
                        break;

                    default:
                        break;
                }

                _currentItem = selectedItem;
            }
        }
        /// <summary>
        /// Populates the page with content passed during navigation.  Any saved state is also
        /// provided when recreating a page from a prior session.
        /// </summary>
        /// <param name="navigationParameter">The parameter value passed to
        /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested.
        /// </param>
        /// <param name="pageState">A dictionary of state preserved by this page during an earlier
        /// session.  This will be null the first time a page is visited.</param>
        protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
        {
            // display tabs
            itemListView.Source = _currentModule.moduleItems;
            workbinListView.Source = _currentModule.moduleWorkbins;
            ObservableCollection<DataStructure.ModuleItem> moduleItems = _currentModule.moduleItems;
            for (int i = 0; i < moduleItems.Count; i++)
            {
                moduleItems[i].itemShowColor = moduleItems[i].itemPrimaryColor;
            }

            try
            {
                // display module information
                moduleName_textblock.Text = _currentModule.moduleName;
                moduleCode_textblock.Text = _currentModule.moduleCode;
                moduleAcadYear_textblock.Text = _currentModule.moduleAcadYear + _currentModule.moduleSemester;
                lecturerListView.Source = _currentModule.moduleLecturers;
            }
            catch
            {
            }

            // display gradebook
            if(_currentModule.isGradebookAvailable)
            {
                foreach (DataStructure.Gradebook gradebook in _currentModule.moduleGradebooks)
                {
                    gradebook.GenerateGradebookCategoryDisplay();
                    _allGrades = _allGrades.Concat<DataStructure.Grade>(gradebook.gradebookGrades).ToList<DataStructure.Grade>();
                }

                grades.Source = _allGrades;
            }

            // display announcements
            if (_currentModule.isAnnouncementAvailable)
            {
                newAnnouncementListView.Source = _currentModule.moduleAnnouncements;
            }           

            // create forum title for display
            if (_currentModule.isForumAvailable)
            {

            }

            // if announcement index passed from main page is valid
            if (_announcementIndex >= 0)
            {
                //itemList.SelectedIndex = 1;
                flipView.SelectedItem = null;
                flipView.SelectedIndex = 1;
                var obj = flipView.SelectedValue;
                _currentItem = _currentModule.moduleItems[1];
                moduleItems[1].itemShowColor = gray;

                //announcementListView.SelectedIndex = _announcementIndex;
            }
            else
            {
                //itemList.SelectedIndex = 0;
                moduleItems[0].itemShowColor = gray;
                flipView.SelectedIndex = 0;
                _currentItem = _currentModule.moduleItems[0];
            }
            SolidColorBrush backgroundBrush = new SolidColorBrush(_currentModule.modulePrimaryColor);
            leftStackPanel.Background = backgroundBrush;

        }