/// <summary> Constructor for a new instance of the Advanced_Search_YearRange_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Advanced_Search_YearRange_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Compute the redirect stem to use
            string fields = RequestSpecificValues.Current_Mode.Search_Fields;
            string searchCollections = RequestSpecificValues.Current_Mode.SubAggregation;
            Display_Mode_Enum lastMode = RequestSpecificValues.Current_Mode.Mode;
            Aggregation_Type_Enum aggrType = RequestSpecificValues.Current_Mode.Aggregation_Type;
            RequestSpecificValues.Current_Mode.SubAggregation = String.Empty;

            string searchString = RequestSpecificValues.Current_Mode.Search_String;
            RequestSpecificValues.Current_Mode.Search_String = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Fields = String.Empty;
            RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Results;
            RequestSpecificValues.Current_Mode.Search_Precision = Search_Precision_Type_Enum.Inflectional_Form;
            string redirectStem = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);

            // Get the browse all url, if enabled
            string browse_url = String.Empty;
            if (ViewBag.Hierarchy_Object.Can_Browse_Items)
            {
                RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Aggregation;
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = "all";
                browse_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
            }

            RequestSpecificValues.Current_Mode.Search_String = searchString;
            RequestSpecificValues.Current_Mode.Search_Fields = fields;
            RequestSpecificValues.Current_Mode.SubAggregation = searchCollections;
            RequestSpecificValues.Current_Mode.Mode = lastMode;
            RequestSpecificValues.Current_Mode.Aggregation_Type = aggrType;

            Search_Script_Action = "advanced_search_years_sobekcm('" + redirectStem + "','" + browse_url + "')";
        }
        /// <summary> Constructor for a new instance of the Private_Items_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Private_Items_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Ensure user has some permissions on this aggregation, or is a power/internal user or admin before showing
            // them this list
            if ((RequestSpecificValues.Current_User == null) || (!RequestSpecificValues.Current_User.LoggedOn))
            {
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
                return;
            }

            // Does this user have permissions on this itgem
            if (RequestSpecificValues.Current_User.PermissionedAggregations != null)
            {
                // Do they have some special permissions against this aggregation?
                bool special_permissions_found = false;
                foreach (User_Permissioned_Aggregation permissions in RequestSpecificValues.Current_User.PermissionedAggregations)
                {
                    if (String.Compare(permissions.Code, ViewBag.Hierarchy_Object.Code, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        if ((permissions.CanChangeVisibility) || (permissions.CanDelete) || (permissions.CanEditBehaviors) || (permissions.CanEditItems) ||
                            (permissions.CanEditMetadata) || (permissions.CanPerformQc) || (permissions.CanUploadFiles) || (permissions.IsAdmin) || (permissions.IsCurator))
                        {
                            special_permissions_found = true;
                            break;
                        }
                    }
                }

                // Are they a portal/system admin or power user?
                if ((!special_permissions_found) && ((RequestSpecificValues.Current_User.Is_Internal_User) || (RequestSpecificValues.Current_User.Is_Portal_Admin) || (RequestSpecificValues.Current_User.Is_System_Admin)))
                    special_permissions_found = true;

                // If no permissions, forward them back
                if (!special_permissions_found)
                {
                    RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                    UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
                    return;
                }
            }
            else
            {
                // Are they a portal/system admin or power user?
                if ((!RequestSpecificValues.Current_User.Is_Internal_User) && (!RequestSpecificValues.Current_User.Is_Portal_Admin) && (!RequestSpecificValues.Current_User.Is_System_Admin))
                {
                    RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                    UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
                    return;
                }
            }

            // Get the list of private items
            int current_sort = RequestSpecificValues.Current_Mode.Sort.HasValue ? RequestSpecificValues.Current_Mode.Sort.Value : 0;
            int current_page = RequestSpecificValues.Current_Mode.Page.HasValue ? RequestSpecificValues.Current_Mode.Page.Value : 1;
            privateItems = Engine_Database.Tracking_Get_Aggregation_Private_Items(ViewBag.Hierarchy_Object.Code, (int)RESULTS_PER_PAGE, current_page, current_sort, RequestSpecificValues.Tracer);
        }
        /// <summary> Returns a built collection viewer matching request </summary>
        /// <param name="ViewType"> Aggregation view type </param>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> View bag holds specific data that was pulled for an aggregation request </param>
        /// <returns> Collection viewer that extends the <see cref="abstractAggregationViewer"/> class. </returns>
        public static abstractAggregationViewer Get_Viewer(Item_Aggregation_Views_Searches_Enum ViewType, RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
        {
            switch (ViewType)
            {
                case Item_Aggregation_Views_Searches_Enum.Advanced_Search:
                    return new Advanced_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.Advanced_Search_MimeType:
                    return new Advanced_Search_MimeType_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.Advanced_Search_YearRange:
                    return new Advanced_Search_YearRange_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.Basic_Search:
                    Item_Aggregation_Front_Banner frontBannerImage = ViewBag.Hierarchy_Object.FrontBannerObj;
                    if ((frontBannerImage != null) && (ViewBag.Hierarchy_Object.Highlights != null ) && (ViewBag.Hierarchy_Object.Highlights.Count > 0))
                    {
                        return new Rotating_Highlight_Search_AggregationViewer(RequestSpecificValues, ViewBag);
                    }
                    return new Basic_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.Basic_Search_YearRange:
                    return new Basic_Search_YearRange_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.Basic_Search_FullTextOption:
                    return new Basic_Text_Search_Combined_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.Basic_Search_MimeType:
                    Item_Aggregation_Front_Banner frontBannerImage2 = ViewBag.Hierarchy_Object.FrontBannerObj;
                    if ((frontBannerImage2 != null) && (ViewBag.Hierarchy_Object.Highlights != null) && (ViewBag.Hierarchy_Object.Highlights.Count > 0))
                    {
                        return new Rotating_Highlight_MimeType_AggregationViewer(RequestSpecificValues, ViewBag);
                    }
                    return new Basic_Search_MimeType_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.FullText_Search:
                    return new Full_Text_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.No_Home_Search:
                    return new No_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.Newspaper_Search:
                    return new Newspaper_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.Map_Search:
                    return new Map_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.Map_Search_Beta:
                    return new Map_Search_AggregationViewer_Beta(RequestSpecificValues, ViewBag);

                case Item_Aggregation_Views_Searches_Enum.DLOC_FullText_Search:
                    return new dLOC_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                default:
                    return null;
            }
        }
        /// <summary> Constructor for a new instance of the Metadata_Browse_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Metadata_Browse_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // If there is not info browse mode listed, use the default
            if (String.IsNullOrEmpty(RequestSpecificValues.Current_Mode.Info_Browse_Mode))
            {
                string defaultBrowseBy = ViewBag.Hierarchy_Object.Default_BrowseBy ?? String.Empty;
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = defaultBrowseBy;

                // Still length of zero?
                if (String.IsNullOrEmpty(RequestSpecificValues.Current_Mode.Info_Browse_Mode))
                {
                    // Just look for the first browse by
                    foreach (Item_Aggregation_Child_Page browse in ViewBag.Hierarchy_Object.Child_Pages)
                    {
                        if (browse.Browse_Type == Item_Aggregation_Child_Visibility_Enum.Metadata_Browse_By)
                        {
                            RequestSpecificValues.Current_Mode.Info_Browse_Mode = browse.Code;
                            break;
                        }
                    }
                }
            }

            if ((String.IsNullOrEmpty(RequestSpecificValues.Current_Mode.Info_Browse_Mode)) && (ViewBag.Hierarchy_Object.Has_Browse_By_Pages))
            {
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = ViewBag.Hierarchy_Object.Child_Page_By_Code(RequestSpecificValues.Current_Mode.Info_Browse_Mode).Code;
            }

            // Get this browse
            browseObject = ViewBag.Hierarchy_Object.Child_Page_By_Code(RequestSpecificValues.Current_Mode.Info_Browse_Mode);

            // Was this a metadata browseby, or just a static html?
            if ((browseObject == null) || (browseObject.Source_Data_Type != Item_Aggregation_Child_Source_Data_Enum.Static_HTML))
            {
                // Determine the correct metadata code
                string metadata_code = RequestSpecificValues.Current_Mode.Info_Browse_Mode.Trim().Replace("_", " ");
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = metadata_code;

                // Only get values if there was a metadata code
                if (metadata_code.Length > 0)
                {
                    // Check the cache for this value
                    List <string> cacheInstance = CachedDataManager.Retrieve_Aggregation_Metadata_Browse(RequestSpecificValues.Current_Mode.Aggregation, RequestSpecificValues.Current_Mode.Info_Browse_Mode, RequestSpecificValues.Tracer);

                    if (cacheInstance != null)
                    {
                        results = cacheInstance;
                    }
                    else
                    {
                        results = Engine_Database.Get_Item_Aggregation_Metadata_Browse(RequestSpecificValues.Current_Mode.Aggregation, RequestSpecificValues.Current_Mode.Info_Browse_Mode, RequestSpecificValues.Tracer);
                        CachedDataManager.Store_Aggregation_Metadata_Browse(RequestSpecificValues.Current_Mode.Aggregation, RequestSpecificValues.Current_Mode.Info_Browse_Mode, results, RequestSpecificValues.Tracer);
                    }
                }
            }
        }
        /// <summary> Constructor for a new instance of the Metadata_Browse_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Metadata_Browse_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // If there is not info browse mode listed, use the default
            if ( String.IsNullOrEmpty(RequestSpecificValues.Current_Mode.Info_Browse_Mode))
            {
                string defaultBrowseBy = ViewBag.Hierarchy_Object.Default_BrowseBy ?? String.Empty;
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = defaultBrowseBy;

                // Still length of zero?
                if (String.IsNullOrEmpty(RequestSpecificValues.Current_Mode.Info_Browse_Mode))
                {
                    // Just look for the first browse by
                    foreach (Item_Aggregation_Child_Page browse in ViewBag.Hierarchy_Object.Child_Pages)
                    {
                        if (browse.Browse_Type == Item_Aggregation_Child_Visibility_Enum.Metadata_Browse_By)
                        {
                            RequestSpecificValues.Current_Mode.Info_Browse_Mode = browse.Code;
                            break;
                        }
                    }
                }

            }

            if ((String.IsNullOrEmpty(RequestSpecificValues.Current_Mode.Info_Browse_Mode)) && (ViewBag.Hierarchy_Object.Has_Browse_By_Pages))
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = ViewBag.Hierarchy_Object.Child_Page_By_Code(RequestSpecificValues.Current_Mode.Info_Browse_Mode).Code;

            // Get this browse
            browseObject = ViewBag.Hierarchy_Object.Child_Page_By_Code(RequestSpecificValues.Current_Mode.Info_Browse_Mode);

            // Was this a metadata browseby, or just a static html?
            if (( browseObject == null ) || ( browseObject.Source_Data_Type != Item_Aggregation_Child_Source_Data_Enum.Static_HTML))
            {
                // Determine the correct metadata code
                string metadata_code = RequestSpecificValues.Current_Mode.Info_Browse_Mode.Trim().Replace("_", " ");
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = metadata_code;

                // Only get values if there was a metadata code
                if (metadata_code.Length > 0)
                {
                    // Check the cache for this value
                    List<string> cacheInstance = CachedDataManager.Retrieve_Aggregation_Metadata_Browse(RequestSpecificValues.Current_Mode.Aggregation, RequestSpecificValues.Current_Mode.Info_Browse_Mode, RequestSpecificValues.Tracer);

                    if (cacheInstance != null)
                    {
                        results = cacheInstance;
                    }
                    else
                    {
                        results = Engine_Database.Get_Item_Aggregation_Metadata_Browse(RequestSpecificValues.Current_Mode.Aggregation, RequestSpecificValues.Current_Mode.Info_Browse_Mode, RequestSpecificValues.Tracer);
                        CachedDataManager.Store_Aggregation_Metadata_Browse(RequestSpecificValues.Current_Mode.Aggregation, RequestSpecificValues.Current_Mode.Info_Browse_Mode, results, RequestSpecificValues.Tracer);
                    }
                }
            }
        }
 /// <summary> Constructor for a new instance of the Manage_Menu_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public Manage_Menu_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // User must AT LEAST be logged on, return
     if ((RequestSpecificValues.Current_User == null) || (!RequestSpecificValues.Current_User.LoggedOn))
     {
         RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
         UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
     }
 }
 /// <summary> Constructor for a new instance of the Manage_Menu_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public Manage_Menu_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // User must AT LEAST be logged on, return
     if ((RequestSpecificValues.Current_User == null) || (!RequestSpecificValues.Current_User.LoggedOn))
     {
         RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
         UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
     }
 }
        public Tiles_Home_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Get the list of tiles
            string aggregation_tile_directory = Path.Combine(UI_ApplicationCache_Gateway.Settings.Servers.Base_Design_Location, ViewBag.Hierarchy_Object.ObjDirectory, "images", "tiles");
            string[] jpeg_tiles = Directory.GetFiles(aggregation_tile_directory, "*.jpg");

            // Compute the URL for these images
            string aggregation_tile_uri = RequestSpecificValues.Current_Mode.Base_URL + "design/aggregations/" + ViewBag.Hierarchy_Object.Code + "/images/tiles/";

            // Get the list of all potential tiles, by checking name
            List<Tiles_Home_Single_Tile> allTiles = new List<Tiles_Home_Single_Tile>();
            foreach (string thisJpegTile in jpeg_tiles)
            {
                // Get the filename
                string thisFileName = Path.GetFileName(thisJpegTile);
                string thisFileNameSansExtension = Path.GetFileNameWithoutExtension(thisJpegTile);

                // Check for a link to the bibid/vid
                string bib_vid_for_link = String.Empty;
                if ((thisFileNameSansExtension.Length == 10) && ( SobekCM_Item.is_bibid_format(thisFileNameSansExtension)))
                {
                    bib_vid_for_link = thisFileNameSansExtension;
                }
                else if ((thisFileNameSansExtension.Length == 15) && (SobekCM_Item.is_bibid_format(thisFileNameSansExtension.Substring(0, 10))) && (SobekCM_Item.is_vids_format(thisFileNameSansExtension.Substring(10))))
                {
                    bib_vid_for_link = thisFileNameSansExtension.Substring(0, 10) + "/" + thisFileNameSansExtension.Substring(10);
                }
                else if ((thisFileNameSansExtension.Length == 16) && (SobekCM_Item.is_bibid_format(thisFileNameSansExtension.Substring(0, 10))) && (SobekCM_Item.is_vids_format(thisFileNameSansExtension.Substring(11))))
                {
                    bib_vid_for_link = thisFileNameSansExtension.Substring(0, 10) + "/" + thisFileNameSansExtension.Substring(11);
                }

                // If there was a link calculated, then use this jpeg
                if (!String.IsNullOrEmpty(bib_vid_for_link))
                {
                    allTiles.Add(new Tiles_Home_Single_Tile {JpegUri = aggregation_tile_uri + thisFileName, LinkUri = RequestSpecificValues.Current_Mode.Base_URL + bib_vid_for_link});
                }
            }

            // For now, just copy over all the tiles
            if ( allTiles.Count <= 15 )
                selectedTiles.AddRange(allTiles);
            else
            {
                Random randomGen = new Random();
                while (selectedTiles.Count < 15)
                {
                    int random_index = randomGen.Next(0, allTiles.Count);
                    selectedTiles.Add(allTiles[random_index]);
                    allTiles.RemoveAt(random_index);
                }
            }
        }
示例#9
0
        /// <summary> Constructor for a new instance of the Basic_Search_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Basic_Search_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Determine the sub text to use
            const string SUB_CODE = "s=";

            // Save the search term
            if (RequestSpecificValues.Current_Mode.Search_String.Length > 0)
            {
                textBoxValue = RequestSpecificValues.Current_Mode.Search_String;
            }

            // Determine the complete script action name
            Display_Mode_Enum     displayMode = RequestSpecificValues.Current_Mode.Mode;
            Aggregation_Type_Enum aggrType    = RequestSpecificValues.Current_Mode.Aggregation_Type;
            Search_Type_Enum      searchType  = RequestSpecificValues.Current_Mode.Search_Type;

            RequestSpecificValues.Current_Mode.Mode             = Display_Mode_Enum.Results;
            RequestSpecificValues.Current_Mode.Search_Type      = Search_Type_Enum.Basic;
            RequestSpecificValues.Current_Mode.Search_Precision = Search_Precision_Type_Enum.Inflectional_Form;
            string search_string = RequestSpecificValues.Current_Mode.Search_String;

            RequestSpecificValues.Current_Mode.Search_String = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Fields = String.Empty;
            arg2 = String.Empty;
            arg1 = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);

            // Get the browse all url, if enabled
            browse_url = String.Empty;
            if (ViewBag.Hierarchy_Object.Can_Browse_Items)
            {
                RequestSpecificValues.Current_Mode.Mode             = Display_Mode_Enum.Aggregation;
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = "all";
                browse_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
            }

            if ((!RequestSpecificValues.Current_Mode.Show_Selection_Panel.HasValue) || (!RequestSpecificValues.Current_Mode.Show_Selection_Panel.Value) || (ViewBag.Hierarchy_Object.Children_Count == 0))
            {
                Search_Script_Action = "basic_search_sobekcm('" + arg1 + "', '" + browse_url + "');";
            }
            else
            {
                Search_Script_Action = "basic_select_search_sobekcm('" + arg1 + "', '" + SUB_CODE + "')";
                arg2 = SUB_CODE;
            }
            RequestSpecificValues.Current_Mode.Mode             = displayMode;
            RequestSpecificValues.Current_Mode.Search_Type      = searchType;
            RequestSpecificValues.Current_Mode.Search_String    = search_string;
            RequestSpecificValues.Current_Mode.Info_Browse_Mode = String.Empty;
            RequestSpecificValues.Current_Mode.Aggregation_Type = aggrType;
        }
        /// <summary> Constructor for a new instance of the Full_Text_Search_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Full_Text_Search_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Determine the sub text to use
            const string SUB_CODE = "s=";

            // Save the search term
            if (RequestSpecificValues.Current_Mode.Search_String.Length > 0)
            {
                textBoxValue = RequestSpecificValues.Current_Mode.Search_String;
            }

            // Determine the complete script action name
            Display_Mode_Enum displayMode = RequestSpecificValues.Current_Mode.Mode;
            Search_Type_Enum searchType = RequestSpecificValues.Current_Mode.Search_Type;
            Aggregation_Type_Enum aggrType = RequestSpecificValues.Current_Mode.Aggregation_Type;
            RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Results;
            RequestSpecificValues.Current_Mode.Search_Type = Search_Type_Enum.Full_Text;
            string search_string = RequestSpecificValues.Current_Mode.Search_String;
            RequestSpecificValues.Current_Mode.Search_String = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Fields = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Precision = Search_Precision_Type_Enum.Inflectional_Form;
            arg2 = String.Empty;
            arg1 = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);

            // Get the browse all url, if enabled
            browse_url = String.Empty;
            if (ViewBag.Hierarchy_Object.Can_Browse_Items)
            {
                RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Aggregation;
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = "all";
                browse_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
            }

            RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Search;
            if ((!RequestSpecificValues.Current_Mode.Show_Selection_Panel.HasValue) || (!RequestSpecificValues.Current_Mode.Show_Selection_Panel.Value) || (ViewBag.Hierarchy_Object.Children_Count == 0))
            {
                Search_Script_Action = "fulltext_search_sobekcm('" + arg1 + "', '" + browse_url + "');";
            }
            else
            {
                Search_Script_Action = "fulltext_select_search_sobekcm('" + arg1 + "', '" + SUB_CODE + "')";
                arg2 = SUB_CODE;
            }
            RequestSpecificValues.Current_Mode.Mode = displayMode;
            RequestSpecificValues.Current_Mode.Aggregation_Type = aggrType;
            RequestSpecificValues.Current_Mode.Search_Type = searchType;
            RequestSpecificValues.Current_Mode.Search_String = search_string;
            RequestSpecificValues.Current_Mode.Info_Browse_Mode = String.Empty;
        }
        /// <summary> Constructor for a new instance of the Rotating_Highlight_MimeType_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Rotating_Highlight_MimeType_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Determine the sub text to use
            const string SUB_CODE = "s=";
            Sharing_Buttons_HTML = String.Empty;

            // Save the search term
            if (RequestSpecificValues.Current_Mode.Search_String.Length > 0)
            {
                textBoxValue = RequestSpecificValues.Current_Mode.Search_String;
            }

            // Determine the complete script action name
            Display_Mode_Enum displayMode = RequestSpecificValues.Current_Mode.Mode;
            Aggregation_Type_Enum aggrType = RequestSpecificValues.Current_Mode.Aggregation_Type;
            Search_Type_Enum searchType = RequestSpecificValues.Current_Mode.Search_Type;
            RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Results;
            RequestSpecificValues.Current_Mode.Search_Type = Search_Type_Enum.Basic;
            RequestSpecificValues.Current_Mode.Search_Precision = Search_Precision_Type_Enum.Inflectional_Form;
            string search_string = RequestSpecificValues.Current_Mode.Search_String;
            RequestSpecificValues.Current_Mode.Search_String = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Fields = String.Empty;
            arg2 = String.Empty;
            arg1 = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);

            RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Aggregation;
            RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
            RequestSpecificValues.Current_Mode.Info_Browse_Mode = "all";
            browse_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);

            RequestSpecificValues.Current_Mode.Info_Browse_Mode = String.Empty;
            RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
            if ((!RequestSpecificValues.Current_Mode.Show_Selection_Panel.HasValue) || (!RequestSpecificValues.Current_Mode.Show_Selection_Panel.Value) || (ViewBag.Hierarchy_Object.Children_Count == 0))
            {
                Search_Script_Action = "basic_search_sobekcm('" + arg1 + "', '" + browse_url + "')";
            }
            else
            {
                Search_Script_Action = "basic_select_search_sobekcm('" + arg1 + "', '" + SUB_CODE + "')";
                arg2 = SUB_CODE;
            }
            RequestSpecificValues.Current_Mode.Mode = displayMode;
            RequestSpecificValues.Current_Mode.Aggregation_Type = aggrType;
            RequestSpecificValues.Current_Mode.Search_Type = searchType;
            RequestSpecificValues.Current_Mode.Search_String = search_string;

            // Get the front banner
            frontBannerInfo = ViewBag.Hierarchy_Object.FrontBannerObj;
        }
        /// <summary> Constructor for a new instance of the Work_History_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Work_History_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // User must AT LEAST be logged on, return
            if ((RequestSpecificValues.Current_User == null) || (!RequestSpecificValues.Current_User.LoggedOn))
            {
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
                return;
            }

            // If the user is not an admin of some type, also return
            if ((!RequestSpecificValues.Current_User.Is_System_Admin) && (!RequestSpecificValues.Current_User.Is_Portal_Admin) && (!RequestSpecificValues.Current_User.Is_Aggregation_Curator(ViewBag.Hierarchy_Object.Code)))
            {
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
            }
        }
        /// <summary> Constructor for a new instance of the User_Permissions_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public User_Permissions_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // User must AT LEAST be logged on, return
            if ((RequestSpecificValues.Current_User == null) || (!RequestSpecificValues.Current_User.LoggedOn))
            {
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
                return;
            }

            // If the user is not an admin of some type, also return
            if ((!RequestSpecificValues.Current_User.Is_System_Admin) && (!RequestSpecificValues.Current_User.Is_Portal_Admin) && (!RequestSpecificValues.Current_User.Is_Aggregation_Curator(ViewBag.Hierarchy_Object.Code)))
            {
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
            }
        }
        /// <summary> Constructor for a new instance of the dLOC_Search_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public dLOC_Search_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            textBoxValue = String.Empty;
            if (RequestSpecificValues.Current_Mode.Search_String.Length > 0)
            {
                textBoxValue = RequestSpecificValues.Current_Mode.Search_String.Replace(",newspaper", "");
            }

            // Determine the complete script action name
            Display_Mode_Enum     displayMode = RequestSpecificValues.Current_Mode.Mode;
            Aggregation_Type_Enum aggrType    = RequestSpecificValues.Current_Mode.Aggregation_Type;
            Search_Type_Enum      searchType  = RequestSpecificValues.Current_Mode.Search_Type;

            RequestSpecificValues.Current_Mode.Mode        = Display_Mode_Enum.Results;
            RequestSpecificValues.Current_Mode.Search_Type = Search_Type_Enum.Full_Text;
            string search_string = RequestSpecificValues.Current_Mode.Search_String;

            RequestSpecificValues.Current_Mode.Search_String = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Fields = String.Empty;
            arg2 = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Precision = Search_Precision_Type_Enum.Inflectional_Form;
            arg1 = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);

            // Get the browse all url, if enabled
            browse_url = String.Empty;
            if (ViewBag.Hierarchy_Object.Can_Browse_Items)
            {
                RequestSpecificValues.Current_Mode.Mode             = Display_Mode_Enum.Aggregation;
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = "all";
                browse_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
            }



            Search_Script_Action = "dloc_search_sobekcm('" + arg1 + "', '" + browse_url + "');";

            RequestSpecificValues.Current_Mode.Mode             = displayMode;
            RequestSpecificValues.Current_Mode.Aggregation_Type = aggrType;
            RequestSpecificValues.Current_Mode.Search_Type      = searchType;
            RequestSpecificValues.Current_Mode.Search_String    = search_string;
            RequestSpecificValues.Current_Mode.Info_Browse_Mode = String.Empty;
        }
        /// <summary> Constructor for a new instance of the Basic_Search_YearRange_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Basic_Search_YearRange_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Save the search term
            if (RequestSpecificValues.Current_Mode.Search_String.Length > 0)
            {
                textBoxValue = RequestSpecificValues.Current_Mode.Search_String;
            }

            // Determine the complete script action name
            Display_Mode_Enum displayMode = RequestSpecificValues.Current_Mode.Mode;
            Search_Type_Enum searchType = RequestSpecificValues.Current_Mode.Search_Type;
            Aggregation_Type_Enum aggrType = RequestSpecificValues.Current_Mode.Aggregation_Type;

            RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Results;
            RequestSpecificValues.Current_Mode.Search_Type = Search_Type_Enum.Basic;
            RequestSpecificValues.Current_Mode.Search_Precision = Search_Precision_Type_Enum.Inflectional_Form;
            string search_string = RequestSpecificValues.Current_Mode.Search_String;
            RequestSpecificValues.Current_Mode.Search_String = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Fields = String.Empty;
            arg2 = String.Empty;
            arg1 = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);

            // Get the browse all url, if enabled
            browse_url = String.Empty;
            if (ViewBag.Hierarchy_Object.Can_Browse_Items)
            {
                RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Aggregation;
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = "all";
                browse_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
            }

            Search_Script_Action = "basic_search_years_sobekcm('" + arg1 + "', '" + browse_url + "');";

            RequestSpecificValues.Current_Mode.Mode = displayMode;
            RequestSpecificValues.Current_Mode.Aggregation_Type = aggrType;
            RequestSpecificValues.Current_Mode.Search_Type = searchType;
            RequestSpecificValues.Current_Mode.Search_String = search_string;
            RequestSpecificValues.Current_Mode.Info_Browse_Mode = String.Empty;
        }
        /// <summary> Returns a built collection viewer matching request </summary>
        /// <param name="SearchType"> Type of search from the current http request </param>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> View bag holds specific data that was pulled for an aggregation request </param>
        /// <returns> Collection viewer that extends the <see cref="abstractAggregationViewer"/> class. </returns>
        public static abstractAggregationViewer Get_Viewer(Search_Type_Enum SearchType, RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
        {
            switch (SearchType)
            {
                case Search_Type_Enum.Advanced:
                    if (ViewBag.Hierarchy_Object.Views_And_Searches.Contains(Item_Aggregation_Views_Searches_Enum.Advanced_Search_YearRange))
                        return new Advanced_Search_YearRange_AggregationViewer(RequestSpecificValues, ViewBag);
                    if (ViewBag.Hierarchy_Object.Views_And_Searches.Contains(Item_Aggregation_Views_Searches_Enum.Advanced_Search_MimeType))
                        return new Advanced_Search_MimeType_AggregationViewer(RequestSpecificValues, ViewBag);
                    return new Advanced_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Search_Type_Enum.Basic:
                    Item_Aggregation_Front_Banner frontBannerImage = ViewBag.Hierarchy_Object.FrontBannerObj;
                    if ((frontBannerImage != null) && (ViewBag.Hierarchy_Object.Highlights != null) && (ViewBag.Hierarchy_Object.Highlights.Count > 0))
                    {
                        return new Rotating_Highlight_Search_AggregationViewer(RequestSpecificValues, ViewBag);
                    }
                    return new Basic_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Search_Type_Enum.Full_Text:
                    return new Full_Text_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Search_Type_Enum.Newspaper:
                    return new Newspaper_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Search_Type_Enum.Map:
                    return new Map_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                case Search_Type_Enum.Map_Beta:
                    return new Map_Search_AggregationViewer_Beta(RequestSpecificValues, ViewBag);

                case Search_Type_Enum.dLOC_Full_Text:
                    return new dLOC_Search_AggregationViewer(RequestSpecificValues, ViewBag);

                default:
                    return null;
            }
        }
        /// <summary> Constructor for a new instance of the Advanced_Search_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Advanced_Search_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Compute the redirect stem to use
            string                fields            = RequestSpecificValues.Current_Mode.Search_Fields;
            string                searchCollections = RequestSpecificValues.Current_Mode.SubAggregation;
            Display_Mode_Enum     lastMode          = RequestSpecificValues.Current_Mode.Mode;
            Aggregation_Type_Enum aggrType          = RequestSpecificValues.Current_Mode.Aggregation_Type;

            RequestSpecificValues.Current_Mode.SubAggregation = String.Empty;
            string searchString = RequestSpecificValues.Current_Mode.Search_String;

            RequestSpecificValues.Current_Mode.Search_String    = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Fields    = String.Empty;
            RequestSpecificValues.Current_Mode.Mode             = Display_Mode_Enum.Results;
            RequestSpecificValues.Current_Mode.Search_Precision = Search_Precision_Type_Enum.Inflectional_Form;
            string redirectStem = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);

            // Get the browse all url, if enabled
            string browse_url = String.Empty;

            if (ViewBag.Hierarchy_Object.Can_Browse_Items)
            {
                RequestSpecificValues.Current_Mode.Mode             = Display_Mode_Enum.Aggregation;
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = "all";
                browse_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
            }

            RequestSpecificValues.Current_Mode.Search_String    = searchString;
            RequestSpecificValues.Current_Mode.Search_Fields    = fields;
            RequestSpecificValues.Current_Mode.SubAggregation   = searchCollections;
            RequestSpecificValues.Current_Mode.Mode             = lastMode;
            RequestSpecificValues.Current_Mode.Aggregation_Type = aggrType;
            Search_Script_Action = "advanced_search_sobekcm('" + redirectStem + "','" + browse_url + "')";
        }
        /// <summary> Constructor for a new instance of the Newspaper_Search_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Newspaper_Search_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Determine the sub text to use
            const string SUB_CODE = "s=";

            // Save the search term
            if (RequestSpecificValues.Current_Mode.Search_String.Length > 0)
            {
                textBoxValue = RequestSpecificValues.Current_Mode.Search_String;
            }

            // Compute the redirect stem to use
            string fields                  = RequestSpecificValues.Current_Mode.Search_Fields;
            string search_string           = RequestSpecificValues.Current_Mode.Search_String;
            Aggregation_Type_Enum aggrType = RequestSpecificValues.Current_Mode.Aggregation_Type;

            RequestSpecificValues.Current_Mode.Search_String    = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Fields    = String.Empty;
            RequestSpecificValues.Current_Mode.Home_Type        = Home_Type_Enum.List;
            RequestSpecificValues.Current_Mode.Mode             = Display_Mode_Enum.Results;
            RequestSpecificValues.Current_Mode.Search_Precision = Search_Precision_Type_Enum.Inflectional_Form;
            string redirect_stem = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode).Replace("&m=hhh", "").Replace("m=hht", "").Replace("&m=lhh", "").Replace("m=lht", "");

            // Get the browse all url, if enabled
            browse_url = String.Empty;
            if (ViewBag.Hierarchy_Object.Can_Browse_Items)
            {
                RequestSpecificValues.Current_Mode.Mode             = Display_Mode_Enum.Aggregation;
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
                RequestSpecificValues.Current_Mode.Info_Browse_Mode = "all";
                browse_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
            }

            RequestSpecificValues.Current_Mode.Search_String    = search_string;
            RequestSpecificValues.Current_Mode.Search_Fields    = fields;
            RequestSpecificValues.Current_Mode.Aggregation_Type = aggrType;
            RequestSpecificValues.Current_Mode.Info_Browse_Mode = String.Empty;

            // Write the advanced search box
            arg2 = String.Empty;
            arg1 = redirect_stem;

            if ((ViewBag.Hierarchy_Object.Children_Count > 0) && ((RequestSpecificValues.Current_Mode.Show_Selection_Panel.HasValue) && (RequestSpecificValues.Current_Mode.Show_Selection_Panel.Value)))
            {
                Search_Script_Action = "newspaper_select_search_sobekcm('" + arg1 + "', '" + SUB_CODE + "', '" + browse_url + "');";
                arg2 = SUB_CODE;
            }
            else
            {
                Search_Script_Action = "newspaper_search_sobekcm('" + arg1 + "');";
            }
        }
        /// <summary> Constructor for a new instance of the Metadata_Browse_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Map_Browse_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag) : base(RequestSpecificValues, ViewBag)
        {
            // Get the coordinate information
            DataTable coordinates = Engine_Database.Get_All_Coordinate_Points_By_Aggregation(ViewBag.Hierarchy_Object.Code, RequestSpecificValues.Tracer);

            // Add the google script information
            StringBuilder scriptBuilder = new StringBuilder(10000);

            // Only continue if there actually IS a map key
            if (!String.IsNullOrWhiteSpace(UI_ApplicationCache_Gateway.Settings.System.Google_Map_API_Key))
            {
                scriptBuilder.AppendLine("<script src=\"https://maps.googleapis.com/maps/api/js?key=" + UI_ApplicationCache_Gateway.Settings.System.Google_Map_API_Key + "\" type=\"text/javascript\"></script>");
                scriptBuilder.AppendLine("<script type=\"text/javascript\" src=\"" + Static_Resources_Gateway.Keydragzoom_Packed_Js + "\"></script>");
                scriptBuilder.AppendLine("<script type=\"text/javascript\">");
                scriptBuilder.AppendLine("  //<![CDATA[");
                scriptBuilder.AppendLine("  // Global values");
                scriptBuilder.AppendLine("  var map, bounds, custom_icon, info_window, last_center;");
                scriptBuilder.AppendLine();
                scriptBuilder.AppendLine("  // Initialize the map on load ");
                scriptBuilder.AppendLine("  function load() { ");

                decimal center_latitude  = 0;
                decimal center_longitude = 0;
                int     zoom             = 1;
                bool    zoom_to_extent   = true;
                if ((ViewBag.Hierarchy_Object.Map_Browse_Display != null) && (ViewBag.Hierarchy_Object.Map_Browse_Display.Type == Item_Aggregation_Map_Coverage_Type_Enum.FIXED))
                {
                    Item_Aggregation_Map_Coverage_Info mapTypeInfo = ViewBag.Hierarchy_Object.Map_Browse_Display;
                    if ((mapTypeInfo.Latitude.HasValue) && (mapTypeInfo.Longitude.HasValue))
                    {
                        center_latitude  = mapTypeInfo.Latitude.Value;
                        center_longitude = mapTypeInfo.Longitude.Value;
                        zoom             = 7;

                        if (mapTypeInfo.ZoomLevel.HasValue)
                        {
                            zoom = mapTypeInfo.ZoomLevel.Value;
                        }

                        zoom_to_extent = false;
                    }
                }

                scriptBuilder.AppendLine("    // Create the map and set some values");
                scriptBuilder.AppendLine("    var latlng = new google.maps.LatLng(" + center_latitude + ", " + center_longitude + ");");
                scriptBuilder.AppendLine("    var myOptions = { zoom: " + zoom + ", center: latlng, mapTypeId: google.maps.MapTypeId.TERRAIN, streetViewControl: false  };");
                scriptBuilder.AppendLine("    map = new google.maps.Map(document.getElementById('sbkMbav_MapDiv'), myOptions);");
                scriptBuilder.AppendLine("    map.enableKeyDragZoom();");

                if ((coordinates != null) && (coordinates.Rows.Count > 0))
                {
                    scriptBuilder.AppendLine();
                    scriptBuilder.AppendLine("    // Create the custom icon / marker image");
                    scriptBuilder.AppendLine("    var iconSize = new google.maps.Size(11, 11);");
                    scriptBuilder.AppendLine("    var iconAnchor = new google.maps.Point(5, 5);");
                    scriptBuilder.AppendLine("    var pointer_image = '" + Static_Resources_Gateway.Map_Point_Png + "';");
                    scriptBuilder.AppendLine("    custom_icon = new google.maps.MarkerImage(pointer_image, iconSize, null, iconAnchor);");

                    scriptBuilder.AppendLine();
                    scriptBuilder.AppendLine("    // Create the bounds");
                    scriptBuilder.AppendLine("    bounds = new google.maps.LatLngBounds();");

                    scriptBuilder.AppendLine();
                    scriptBuilder.AppendLine("    // Create the info window for display");
                    scriptBuilder.AppendLine("    info_window = new google.maps.InfoWindow();");
                    scriptBuilder.AppendLine("    google.maps.event.addListener(info_window, 'closeclick', function() { if (last_center != null) { map.panTo(last_center); last_center = null; } });");

                    scriptBuilder.AppendLine();
                    scriptBuilder.AppendLine("    // Add all the points");
                    string         last_latitude        = coordinates.Rows[0]["Point_Latitude"].ToString();
                    string         last_longitude       = coordinates.Rows[0]["Point_Longitude"].ToString();
                    List <DataRow> bibids_in_this_point = new List <DataRow>();
                    foreach (DataRow thisRow in coordinates.Rows)
                    {
                        string latitude  = thisRow["Point_Latitude"].ToString();
                        string longitude = thisRow["Point_Longitude"].ToString();

                        // Is this upcoming point new?
                        if ((latitude != last_latitude) || (longitude != last_longitude))
                        {
                            // Write the last point, if there was one
                            if (bibids_in_this_point.Count > 0)
                            {
                                // Add the point
                                add_single_point(last_latitude, last_longitude, RequestSpecificValues.Current_Mode, bibids_in_this_point, scriptBuilder);

                                // Assign this as the last value
                                last_latitude  = latitude;
                                last_longitude = longitude;

                                // Clear the list of newspapers linked to this point
                                bibids_in_this_point.Clear();
                            }

                            // Start a new list and include this bib id
                            bibids_in_this_point.Add(thisRow);
                        }
                        else
                        {
                            // Add this bibid to the list
                            bibids_in_this_point.Add(thisRow);
                        }
                    }

                    // Write the last point, if there was one
                    if (bibids_in_this_point.Count > 0)
                    {
                        // Add the point
                        add_single_point(last_latitude, last_longitude, RequestSpecificValues.Current_Mode, bibids_in_this_point, scriptBuilder);

                        // Clear the list of newspapers linked to this point
                        bibids_in_this_point.Clear();
                    }
                }


                // Zoom to extent?
                if (zoom_to_extent)
                {
                    scriptBuilder.AppendLine("    map.fitBounds(bounds);");
                }

                scriptBuilder.AppendLine("  }");
                scriptBuilder.AppendLine();
                scriptBuilder.AppendLine("  // Add a single point ");
                scriptBuilder.AppendLine("  function add_point(latitude, longitude, window_content) {");
                scriptBuilder.AppendLine("    var point = new google.maps.LatLng(latitude, longitude);");
                scriptBuilder.AppendLine("    bounds.extend(point);");
                scriptBuilder.AppendLine("    var marker = new google.maps.Marker({ position: point, draggable: false, map: map, icon: custom_icon });");
                scriptBuilder.AppendLine("    google.maps.event.addListener(marker, 'click', function() { info_window.setContent(window_content); last_center = map.getCenter(); info_window.open(map, marker); });");

                scriptBuilder.AppendLine("  }");
                scriptBuilder.AppendLine("  //]]>");
                scriptBuilder.AppendLine("</script>");
            }
            else
            {
                // No Google Map API Key
                scriptBuilder.AppendLine("<script type=\"text/javascript\">");
                scriptBuilder.AppendLine("  //<![CDATA[ ");
                scriptBuilder.AppendLine("  function load() {  }");
                scriptBuilder.AppendLine("  //]]>");
                scriptBuilder.AppendLine("</script>");
            }
            Search_Script_Reference = scriptBuilder.ToString();
        }
        /// <summary> Constructor for a new instance of the Map_Search_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Map_Search_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Compute the redirect stem to use
            string fields = RequestSpecificValues.Current_Mode.Search_Fields;
            string search_string = RequestSpecificValues.Current_Mode.Search_String;
            RequestSpecificValues.Current_Mode.Search_String = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Fields = String.Empty;
            RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Results;
            RequestSpecificValues.Current_Mode.Search_Type = Search_Type_Enum.Map;
            RequestSpecificValues.Current_Mode.Search_Precision = Search_Precision_Type_Enum.Inflectional_Form;
            string redirect_stem = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
            RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Search;
            RequestSpecificValues.Current_Mode.Search_String = search_string;
            RequestSpecificValues.Current_Mode.Search_Fields = fields;
            // Now, populate the search terms, if there was one or some
            text1 = String.Empty;
            text2 = String.Empty;
            text3 = String.Empty;
            text4 = String.Empty;
            if (RequestSpecificValues.Current_Mode.Search_String.Length > 0)
            {
                string[] splitter = RequestSpecificValues.Current_Mode.Search_String.Split(",".ToCharArray());
                bool isNumber = true;
                foreach (char thisChar in splitter[0])
                {
                    if ((!Char.IsDigit(thisChar)) && ( thisChar != '.' ) && (thisChar != '-' ))
                        isNumber = false;
                }
                if (isNumber)
                {
                    text1 = splitter[0].Replace(" =", " or ");

                    if (splitter.Length > 1)
                    {
                        foreach (char thisChar in splitter[1])
                        {
                            if ((!Char.IsDigit(thisChar)) && (thisChar != '.') && (thisChar != '-'))
                                isNumber = false;
                        }
                        if (isNumber)
                        {
                            text2 = splitter[1].Replace(" =", " or ");

                            if (splitter.Length > 2)
                            {
                                foreach (char thisChar in splitter[2])
                                {
                                    if ((!Char.IsDigit(thisChar)) && (thisChar != '.') && (thisChar != '-'))
                                        isNumber = false;
                                }

                                if (isNumber)
                                {
                                    text3 = splitter[2].Replace(" =", " or ");

                                    foreach (char thisChar in splitter[3])
                                    {
                                        if ((!Char.IsDigit(thisChar)) && (thisChar != '.') && (thisChar != '-'))
                                            isNumber = false;
                                    }

                                    if (isNumber)
                                    {
                                        text4 = splitter[3].Replace(" =", " or ");
                                    }
                                }
                            }

                        }
                    }
                }
            }

            // Add the google script information
            mapHeight = 500;
            StringBuilder scriptBuilder = new StringBuilder();

            // Only continue if there actually IS a map key
            if (!String.IsNullOrWhiteSpace(UI_ApplicationCache_Gateway.Settings.System.Google_Map_API_Key))
            {
                scriptBuilder.AppendLine("<script src=\"https://maps.googleapis.com/maps/api/js?key=" + UI_ApplicationCache_Gateway.Settings.System.Google_Map_API_Key + "\" type=\"text/javascript\"></script>");
                scriptBuilder.AppendLine("<script type=\"text/javascript\" src=\"" + Static_Resources_Gateway.Sobekcm_Map_Search_Js + "\"></script>");
                scriptBuilder.AppendLine("<script type=\"text/javascript\" src=\"" + Static_Resources_Gateway.Sobekcm_Map_Tool_Js + "\"></script>");

                scriptBuilder.AppendLine("<script type=\"text/javascript\">");
                scriptBuilder.AppendLine("  //<![CDATA[");
                scriptBuilder.AppendLine("  function load() { ");

                // Set the latitude and longitude
                int zoom = 1;
                decimal latitude = 0;
                decimal longitude = 0;
                if (ViewBag.Hierarchy_Object.Map_Search_Display != null)
                {
                    if ((ViewBag.Hierarchy_Object.Map_Search_Display.ZoomLevel.HasValue) && (ViewBag.Hierarchy_Object.Map_Search_Display.Latitude.HasValue) && (ViewBag.Hierarchy_Object.Map_Search_Display.Longitude.HasValue))
                    {
                        latitude = ViewBag.Hierarchy_Object.Map_Search_Display.Latitude.Value;
                        longitude = ViewBag.Hierarchy_Object.Map_Search_Display.Longitude.Value;
                        zoom = ViewBag.Hierarchy_Object.Map_Search_Display.ZoomLevel.Value;
                    }
                }
                scriptBuilder.AppendLine("    load_search_map(" + latitude + ", " + longitude + ", " + zoom + ", \"map1\");");

                //// If no point searching is allowed, disable it
                //if (ViewBag.Hierarchy_Object.Map_Search >= 100)
                //{
                //    pointSearchingDisabled = true;
                //    scriptBuilder.AppendLine("    disable_point_searching();");
                //}

                if ((text1.Length > 0) && (text2.Length > 0) && (text3.Length > 0) && (text4.Length > 0))
                {
                    scriptBuilder.AppendLine("    add_selection_rectangle( " + text1 + ", " + text2 + ", " + text3 + ", " + text4 + " );");
                    scriptBuilder.AppendLine("    zoom_to_bounds();");
                }
                else if ((text1.Length > 0) && (text2.Length > 0))
                {
                    scriptBuilder.AppendLine("    add_selection_point( " + text1 + ", " + text2 + ", 8 );");
                }

                scriptBuilder.AppendLine("  }");
                scriptBuilder.AppendLine("  //]]>");
                scriptBuilder.AppendLine("</script>");
            }
            else
            {
                // No Google Map API Key
                scriptBuilder.AppendLine("<script type=\"text/javascript\">");
                scriptBuilder.AppendLine("  //<![CDATA[ ");
                scriptBuilder.AppendLine("  function load() {  }");
                scriptBuilder.AppendLine("  //]]>");
                scriptBuilder.AppendLine("</script>");
            }
            Search_Script_Reference = scriptBuilder.ToString();

            // Get the action name for the button
            Search_Script_Action = "map_search_sobekcm('" + redirect_stem + "');";
        }
        /// <summary> Constructor creates a new instance of the Aggregation_HtmlSubwriter class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        public Aggregation_HtmlSubwriter(RequestCache RequestSpecificValues)
            : base(RequestSpecificValues)
        {
            // Get the item aggregation from the SobekCM engine endpoints
            // If the mode is NULL or the request was already completed, do nothing
            if ((RequestSpecificValues.Current_Mode == null) || (RequestSpecificValues.Current_Mode.Request_Completed))
                return;

            RequestSpecificValues.Tracer.Add_Trace("Aggregation_HtmlSubwriter.Constructor", "Retrieving collection");

            // Check that the current aggregation code is valid
            if (!UI_ApplicationCache_Gateway.Aggregations.isValidCode(RequestSpecificValues.Current_Mode.Aggregation))
            {
                // Is there a "forward value"
                if (UI_ApplicationCache_Gateway.Collection_Aliases.ContainsKey(RequestSpecificValues.Current_Mode.Aggregation))
                {
                    RequestSpecificValues.Current_Mode.Aggregation = UI_ApplicationCache_Gateway.Collection_Aliases[RequestSpecificValues.Current_Mode.Aggregation];
                }
            }

            // Use the method in the base class to actually pull the entire hierarchy
            if (!Get_Collection(RequestSpecificValues.Current_Mode, RequestSpecificValues.Tracer, out hierarchyObject))
            {
                RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Error;
                return;
            }

            //// Check if a differente skin should be used if this is a collection display
            //string current_skin_code = RequestSpecificValues.Current_Mode.Skin.ToUpper();
            //if ((hierarchyObject != null) && (hierarchyObject.Web_Skins != null) && (hierarchyObject.Web_Skins.Count > 0))
            //{
            //    // Do NOT do this replacement if the web skin is in the URL and this is admin mode
            //    if ((!RequestSpecificValues.Current_Mode.Skin_In_URL) || (RequestSpecificValues.Current_Mode.Mode != Display_Mode_Enum.Administrative))
            //    {
            //        if (!hierarchyObject.Web_Skins.Contains(current_skin_code.ToLower()))
            //        {
            //            RequestSpecificValues.Current_Mode.Skin = hierarchyObject.Web_Skins[0];
            //        }
            //    }
            //}

            // Run the browse/info work if it is of those modes
            if (((RequestSpecificValues.Current_Mode.Aggregation_Type == Aggregation_Type_Enum.Browse_Info) || (RequestSpecificValues.Current_Mode.Aggregation_Type == Aggregation_Type_Enum.Child_Page_Edit)))
            {
                RequestSpecificValues.Tracer.Add_Trace("SobekCM_Page_Globals.Browse_Info_Block", "Retrieiving Browse/Info Object");

                // If this is a robot, then get the text from the static page
                if ((RequestSpecificValues.Current_Mode.Is_Robot) && (RequestSpecificValues.Current_Mode.Info_Browse_Mode == "all"))
                {
                    SobekCM_Assistant assistant = new SobekCM_Assistant();
                    browse_info_display_text = assistant.Get_All_Browse_Static_HTML(RequestSpecificValues.Current_Mode, RequestSpecificValues.Tracer);
                    RequestSpecificValues.Current_Mode.Writer_Type = Writer_Type_Enum.HTML_Echo;
                }
                else
                {
                    if (!Get_Browse_Info(RequestSpecificValues.Current_Mode, hierarchyObject, UI_ApplicationCache_Gateway.Settings.Servers.Base_Directory, RequestSpecificValues.Tracer, out thisBrowseObject, out datasetBrowseResultsStats, out pagedResults, out staticBrowse))
                    {
                        RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                        //RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Error;
                    }
                }
            }

            // Set some basic values
            leftButtons = String.Empty;
            rightButtons = String.Empty;
            children_icons_added = false;

            // Check to see if the user should be able to edit the home page
            if ((RequestSpecificValues.Current_Mode.Mode == Display_Mode_Enum.Aggregation) && (RequestSpecificValues.Current_Mode.Aggregation_Type == Aggregation_Type_Enum.Home_Edit))
            {
                if ( RequestSpecificValues.Current_User == null )
                    RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                else
                {
                    if ((!RequestSpecificValues.Current_User.Is_System_Admin) && (!RequestSpecificValues.Current_User.Is_Portal_Admin) && (!RequestSpecificValues.Current_User.Is_Aggregation_Admin(hierarchyObject.Code)))
                    {
                        RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                    }
                }
            }
            else if ( RequestSpecificValues.Current_Mode.Aggregation_Type == Aggregation_Type_Enum.Home_Edit )
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;

            #region Handle post backs from the mySobek sharing, emailin, etc.. buttons

            NameValueCollection form = HttpContext.Current.Request.Form;
            if ( form["item_action"] != null)
            {
                string action = form["item_action"].ToLower().Trim();

                if ((action == "add_aggregation") && ( RequestSpecificValues.Current_User != null ))
                {
                    SobekCM_Database.User_Set_Aggregation_Home_Page_Flag(RequestSpecificValues.Current_User.UserID, hierarchyObject.ID, true, RequestSpecificValues.Tracer);
                    RequestSpecificValues.Current_User.Set_Aggregation_Home_Page_Flag(hierarchyObject.Code, hierarchyObject.Name, true);
                    HttpContext.Current.Session.Add("ON_LOAD_MESSAGE", "Added aggregation to your home page");
                }

                if (( action == "remove_aggregation") && ( RequestSpecificValues.Current_User != null ))
                {
                    int removeAggregationID = hierarchyObject.ID;
                    string remove_code = hierarchyObject.Code;
                    string remove_name = hierarchyObject.Name;

                    if ((form["aggregation"] != null) && (form["aggregation"].Length > 0))
                    {
                        Item_Aggregation_Related_Aggregations aggrInfo = UI_ApplicationCache_Gateway.Aggregations[form["aggregation"]];
                        if (aggrInfo != null)
                        {
                            remove_code = aggrInfo.Code;
                            removeAggregationID = aggrInfo.ID;
                        }
                    }

                    SobekCM_Database.User_Set_Aggregation_Home_Page_Flag(RequestSpecificValues.Current_User.UserID, removeAggregationID, false, RequestSpecificValues.Tracer);
                    RequestSpecificValues.Current_User.Set_Aggregation_Home_Page_Flag(remove_code, remove_name, false);

                    if (RequestSpecificValues.Current_Mode.Home_Type != Home_Type_Enum.Personalized)
                    {
                        HttpContext.Current.Session.Add("ON_LOAD_MESSAGE", "Removed aggregation from your home page");
                    }
                }

                if ((action == "private_folder") && ( RequestSpecificValues.Current_User != null ))
                {
                    User_Folder thisFolder = RequestSpecificValues.Current_User.Get_Folder(form["aggregation"]);
                    if (SobekCM_Database.Edit_User_Folder(thisFolder.Folder_ID, RequestSpecificValues.Current_User.UserID, -1, thisFolder.Folder_Name, false, String.Empty, RequestSpecificValues.Tracer) >= 0)
                        thisFolder.IsPublic = false;
                }

                if ((action == "email") && ( RequestSpecificValues.Current_User != null ))
                {
                    string address = form["email_address"].Replace(";", ",").Trim();
                    string comments = form["email_comments"].Trim();
                    string format = form["email_format"].Trim().ToUpper();

                    if (address.Length > 0)
                    {
                        // Determine the email format
                        bool is_html_format = format != "TEXT";

                        // CC: the user, unless they are already on the list
                        string cc_list = RequestSpecificValues.Current_User.Email;
                        if (address.ToUpper().IndexOf(RequestSpecificValues.Current_User.Email.ToUpper()) >= 0)
                            cc_list = String.Empty;

                        // Send the email
                        string any_error = URL_Email_Helper.Send_Email(address, cc_list, comments, RequestSpecificValues.Current_User.Full_Name, RequestSpecificValues.Current_Mode.Instance_Abbreviation, is_html_format, HttpContext.Current.Items["Original_URL"].ToString(), hierarchyObject.Name, "Collection", RequestSpecificValues.Current_User.UserID);
                        HttpContext.Current.Session.Add("ON_LOAD_MESSAGE", any_error.Length > 0 ? any_error : "Your email has been sent");

                        RequestSpecificValues.Current_Mode.isPostBack = true;

                        // Do this to force a return trip (cirumnavigate cacheing)
                        string original_url = HttpContext.Current.Items["Original_URL"].ToString();
                        if (original_url.IndexOf("?") < 0)
                            HttpContext.Current.Response.Redirect(original_url + "?p=" + DateTime.Now.Millisecond, false);
                        else
                            HttpContext.Current.Response.Redirect(original_url + "&p=" + DateTime.Now.Millisecond, false);

                        HttpContext.Current.ApplicationInstance.CompleteRequest();
                        RequestSpecificValues.Current_Mode.Request_Completed = true;
                        return;
                    }
                }
            }
            #endregion

            #region Handle post backs from editing the home page text

            if (( RequestSpecificValues.Current_Mode.Aggregation_Type == Aggregation_Type_Enum.Home_Edit ) && ( form["sbkAghsw_HomeTextEdit"] != null))
            {
                string aggregation_folder = UI_ApplicationCache_Gateway.Settings.Servers.Base_Design_Location + "aggregations\\" + hierarchyObject.Code + "\\";
                if (!Directory.Exists(aggregation_folder))
                    Directory.CreateDirectory(aggregation_folder);

                string file = hierarchyObject.HomePageHtml.Source;

                // Make a backup from today, if none made yet
                if (File.Exists(file))
                {
                    DateTime lastWrite = (new FileInfo(file)).LastWriteTime;
                    string new_file = file.ToLower().Replace(".txt", "").Replace(".html", "").Replace(".htm", "") + lastWrite.Year + lastWrite.Month.ToString().PadLeft(2, '0') + lastWrite.Day.ToString() .PadLeft(2, '0')+ ".bak";
                    if (File.Exists(new_file))
                        File.Delete(new_file);
                    File.Move(file, new_file);
                }
                else
                {
                    // Ensure the folder exists
                    string directory = Path.GetDirectoryName(file);
                    if (!Directory.Exists(directory))
                        Directory.CreateDirectory(directory);
                }

                // Write to the file now
                StreamWriter homeWriter = new StreamWriter(file, false);
                homeWriter.WriteLine(form["sbkAghsw_HomeTextEdit"].Replace("%]", "%>").Replace("[%", "<%"));
                homeWriter.Flush();
                homeWriter.Close();

                // Also save this change
                SobekCM_Database.Save_Item_Aggregation_Milestone(hierarchyObject.Code, "Home page edited (" + Web_Language_Enum_Converter.Enum_To_Name(RequestSpecificValues.Current_Mode.Language) + ")", RequestSpecificValues.Current_User.Full_Name);

                // Clear this aggreation from the cache
                CachedDataManager.Aggregations.Remove_Item_Aggregation(hierarchyObject.Code, RequestSpecificValues.Tracer);

                // If this is all, save the new text as well
                if (String.Compare("all", hierarchyObject.Code, StringComparison.OrdinalIgnoreCase) == 0)
                {
                    string home_app_key = "SobekCM_Home_" + RequestSpecificValues.Current_Mode.Language_Code;
                    HttpContext.Current.Application[home_app_key] = form["sbkAghsw_HomeTextEdit"].Replace("%]", "%>").Replace("[%", "<%");
                }

                // Forward along
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                string redirect_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
                if (redirect_url.IndexOf("?") > 0)
                    redirect_url = redirect_url + "&refresh=always";
                else
                    redirect_url = redirect_url + "?refresh=always";
                RequestSpecificValues.Current_Mode.Request_Completed = true;
                HttpContext.Current.Response.Redirect(redirect_url, false);
                HttpContext.Current.ApplicationInstance.CompleteRequest();

                return;
            }

            #endregion

            // If this is a search, verify it is a valid search type
            if (RequestSpecificValues.Current_Mode.Mode == Display_Mode_Enum.Search)
            {
                // Not every collection has every search type...
                ReadOnlyCollection<Search_Type_Enum> possibleSearches = hierarchyObject.Search_Types;
                if (!possibleSearches.Contains(RequestSpecificValues.Current_Mode.Search_Type))
                {
                    bool found_valid = false;

                    if ((RequestSpecificValues.Current_Mode.Search_Type == Search_Type_Enum.Full_Text) && (possibleSearches.Contains(Search_Type_Enum.dLOC_Full_Text)))
                    {
                        found_valid = true;
                        RequestSpecificValues.Current_Mode.Search_Type = Search_Type_Enum.dLOC_Full_Text;
                    }

                    if ((!found_valid) && (RequestSpecificValues.Current_Mode.Search_Type == Search_Type_Enum.Basic) && (possibleSearches.Contains(Search_Type_Enum.Newspaper)))
                    {
                        found_valid = true;
                        RequestSpecificValues.Current_Mode.Search_Type = Search_Type_Enum.Newspaper;
                    }

                    if (( !found_valid ) && ( possibleSearches.Count > 0 ))
                    {
                        found_valid = true;
                        RequestSpecificValues.Current_Mode.Search_Type = possibleSearches[0];
                    }

                    if ( !found_valid )
                    {
                        RequestSpecificValues.Current_Mode.Mode = Display_Mode_Enum.Aggregation;
                        RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                    }
                }
            }

            #region Create the new subviewer to handle this request

            // First, create the aggregation view bag
            AggregationViewBag viewBag = new AggregationViewBag(hierarchyObject, datasetBrowseResultsStats, pagedResults, thisBrowseObject, staticBrowse);

            if (RequestSpecificValues.Current_Mode.Mode == Display_Mode_Enum.Search)
            {
                collectionViewer = AggregationViewer_Factory.Get_Viewer(RequestSpecificValues.Current_Mode.Search_Type, RequestSpecificValues, viewBag);
            }

            if (RequestSpecificValues.Current_Mode.Mode == Display_Mode_Enum.Aggregation)
            {
                switch (RequestSpecificValues.Current_Mode.Aggregation_Type)
                {
                    case Aggregation_Type_Enum.Home:
                    case Aggregation_Type_Enum.Home_Edit:
                        if (!hierarchyObject.Custom_Home_Page)
                        {
                            // Are there tiles here?
                            string aggregation_tile_directory = Path.Combine(UI_ApplicationCache_Gateway.Settings.Servers.Base_Design_Location, hierarchyObject.ObjDirectory, "images", "tiles");
                            if (Directory.Exists(aggregation_tile_directory))
                            {
                                string[] jpeg_tiles = Directory.GetFiles(aggregation_tile_directory, "*.jpg");
                                if (jpeg_tiles.Length > 0)
                                    collectionViewer = new Tiles_Home_AggregationViewer(RequestSpecificValues, viewBag);
                            }

                            // If the tiles home page as not built, build the standard viewer
                            if ( collectionViewer == null )
                                collectionViewer = AggregationViewer_Factory.Get_Viewer(hierarchyObject.Views_And_Searches[0], RequestSpecificValues, viewBag);
                        }
                        else
                        {
                            collectionViewer = new Custom_Home_Page_AggregationViewer(RequestSpecificValues, viewBag);
                        }
                        break;

                    case Aggregation_Type_Enum.Browse_Info:
                        if (datasetBrowseResultsStats == null)
                        {
                            collectionViewer = new Static_Browse_Info_AggregationViewer(RequestSpecificValues, viewBag);
                        }
                        else
                        {
                            collectionViewer = new DataSet_Browse_Info_AggregationViewer(RequestSpecificValues, viewBag);
                        }
                        break;

                    case Aggregation_Type_Enum.Child_Page_Edit:
                        collectionViewer = new Static_Browse_Info_AggregationViewer(RequestSpecificValues, viewBag);
                        break;

                    case Aggregation_Type_Enum.Browse_By:
                        collectionViewer = new Metadata_Browse_AggregationViewer(RequestSpecificValues, viewBag);
                        break;

                    case Aggregation_Type_Enum.Browse_Map:
                        collectionViewer = new Map_Browse_AggregationViewer(RequestSpecificValues, viewBag);
                        break;

                    case Aggregation_Type_Enum.Browse_Map_Beta:
                        collectionViewer = new Map_Browse_AggregationViewer_Beta(RequestSpecificValues, viewBag);
                        break;

                    case Aggregation_Type_Enum.Item_Count:
                        collectionViewer = new Item_Count_AggregationViewer(RequestSpecificValues, viewBag);
                        break;

                    case Aggregation_Type_Enum.Usage_Statistics:
                        collectionViewer = new Usage_Statistics_AggregationViewer(RequestSpecificValues, viewBag);
                        break;

                    case Aggregation_Type_Enum.Private_Items:
                        collectionViewer = new Private_Items_AggregationViewer(RequestSpecificValues, viewBag);
                        break;

                    case Aggregation_Type_Enum.Manage_Menu:
                        collectionViewer = new Manage_Menu_AggregationViewer(RequestSpecificValues, viewBag);
                        break;

                    case Aggregation_Type_Enum.User_Permissions:
                        collectionViewer = new User_Permissions_AggregationViewer(RequestSpecificValues, viewBag);
                        break;

                    case Aggregation_Type_Enum.Work_History:
                        collectionViewer = new Work_History_AggregationViewer(RequestSpecificValues, viewBag);
                        break;
                }
            }

            // If execution should end, do it now
            if (RequestSpecificValues.Current_Mode.Request_Completed)
                return;

            if (collectionViewer != null)
            {
                // Pull the standard values
                switch (collectionViewer.Selection_Panel_Display)
                {
                    case Selection_Panel_Display_Enum.Selectable:
                        if (form["show_subaggrs"] != null)
                        {
                            string show_subaggrs = form["show_subaggrs"].ToUpper();
                            if (show_subaggrs == "TRUE")
                                RequestSpecificValues.Current_Mode.Show_Selection_Panel = true;
                        }
                        break;

                    case Selection_Panel_Display_Enum.Always:
                        RequestSpecificValues.Current_Mode.Show_Selection_Panel = true;
                        break;
                }

                behaviors = collectionViewer.AggregationViewer_Behaviors;
            }
            else
            {
                behaviors = emptybehaviors;
            }

            #endregion
        }
 /// <summary> Constructor for a new instance of the DataSet_Browse_Info_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public DataSet_Browse_Info_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // Do nothing
 }
 /// <summary> Constructor for a new instance of the Usage_Statistics_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public Usage_Statistics_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // Everything done in base class constructor
 }
 /// <summary> Constructor for a new instance of the Custom_Home_Page_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public Custom_Home_Page_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // All work done in base class?
 }
示例#25
0
        /// <summary> Constructor for a new instance of the Map_Search_AggregationViewer class </summary>
        ///<param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Map_Search_AggregationViewer_Beta(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            ////redirect
            //currentMode.Redirect_URL();

            #region MY STUFF

            // Start to build the response
            StringBuilder mapSearchBuilder = new StringBuilder();

            //start of custom content
            mapSearchBuilder.AppendLine("<td> MapSearchHolder");

            #region TEMP HEADER FILES

            ////standard css
            //mapSearchBuilder.AppendLine(" <link rel=\"stylesheet\" href=\"" + CurrentMode.Base_URL + "default/jquery-ui.css\"/> ");
            //mapSearchBuilder.AppendLine(" <link rel=\"stylesheet\" href=\"" + CurrentMode.Base_URL + "default/jquery-searchbox.css\"/> ");

            ////standard js files
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/jquery/jquery-ui-1.10.3.custom.min.js\"></script> ");
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/jquery/jquery-migrate-1.1.1.min.js\"></script> ");
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/jquery/jquery-rotate.js\"></script> ");
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/jquery/jquery-knob.js\"></script> ");
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/jquery/jquery-json-2.4.min.js\"></script> ");

            mapSearchBuilder.AppendLine("     <script type=\"text/javascript\" src=\"https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&key=AIzaSyCzliz5FjUlEI9D2605b33-etBrENSSBZM&libraries=drawing\"></script> ");
            mapSearchBuilder.AppendLine("     <script src=\"" + RequestSpecificValues.Current_Mode.Base_URL + "default/scripts/mapsearch/external_markerclusterer_compiled.js\"></script>  ");
            mapSearchBuilder.AppendLine("     <script src=\"" + RequestSpecificValues.Current_Mode.Base_URL + "default/scripts/mapsearch/external_jquery_1.10.2.js\"></script> ");
            mapSearchBuilder.AppendLine("     <script src=\"" + RequestSpecificValues.Current_Mode.Base_URL + "default/scripts/mapsearch/external_jquery_ui.min.js\"></script> ");
            mapSearchBuilder.AppendLine("     <script src=\"" + RequestSpecificValues.Current_Mode.Base_URL + "default/scripts/mapsearch/external_jquery_ui_labeledslider.js\"></script> ");
            mapSearchBuilder.AppendLine("     <script type=\"text/javascript\" src=\"" + Static_Resources_Gateway.Gmaps_Infobox_Js + "\" /></script> ");
            mapSearchBuilder.AppendLine("     <script type=\"text/javascript\" src=\"" + RequestSpecificValues.Current_Mode.Base_URL + "default/scripts/mapsearch/custom_geoObjects.js\"></script>  ");
            mapSearchBuilder.AppendLine("     <script type=\"text/javascript\" src=\"" + RequestSpecificValues.Current_Mode.Base_URL + "default/scripts/mapsearch/sobekcm_mapsearch.js\"></script> ");
            mapSearchBuilder.AppendLine("     <link rel=\"stylesheet\" href=\"" + Static_Resources_Gateway.Jquery_1_10_2_Js + "default/external_jquery_ui_1.10.4.css\"> ");
            mapSearchBuilder.AppendLine("     <link rel=\"stylesheet\" href=\"" + RequestSpecificValues.Current_Mode.Base_URL + "default/SobekCM_MapSearch.css\"> ");

            //apply theming
            mapSearchBuilder.AppendLine("     <link rel=\"stylesheet\" href=\"" + RequestSpecificValues.Current_Mode.Base_URL + "default/themes/mapsearch/custom_theme_grey.css\"> ");

            #endregion

            #region Literal

            //mapSearchBuilder.AppendLine("  ");
            //mapSearchBuilder.AppendLine("  ");
            //mapSearchBuilder.AppendLine("  ");
            //mapSearchBuilder.AppendLine(" <div id=\"container_main\"> ");
            ////mapSearchBuilder.AppendLine("     <div id=\"container_header\"> ");
            ////mapSearchBuilder.AppendLine("       <div id=\"container_header_pt1\"></div> ");
            ////mapSearchBuilder.AppendLine("         <div id=\"container_header_pt2\"></div> ");
            ////mapSearchBuilder.AppendLine("         <div id=\"container_header_pt3\"></div> ");
            ////mapSearchBuilder.AppendLine("     </div> ");
            //mapSearchBuilder.AppendLine("     <div id=\"container_body\"> ");
            //mapSearchBuilder.AppendLine("         <div id=\"container_toolbar1\"> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_addSearch\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_searchControl\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"searchControl_text\">New Search</div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"searchControl_inputs\" class=\"form-wrapper cf\"> ");
            //mapSearchBuilder.AppendLine("                         <input type=\"text\" id=\"userDefinedSearch\" placeholder=\"Search for...\" /> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_searchText\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"searchText\"> ");
            //mapSearchBuilder.AppendLine("                     You searched for <div id=\"searchText_filter\">all items <a></a></div> <div id=\"searchText_filter\">something <a></a></div> <div id=\"searchText_filter\">points <a></a></div> <div id=\"searchText_filter\">stuff <a></a></div> <div id=\"searchText_filter\">this <a></a></div> <div id=\"searchText_filter\">that <a></a></div> <div id=\"searchText_filter\">something else <a></a></div> <div id=\"searchText_filter\">bacon <a></a></div> <div id=\"searchText_filter\">st augustine <a></a></div> <div id=\"searchText_filter\">wells <a></a></div> inside the \"Unearthing St. Augustine's Colonial Heritage\" collection.  ");
            //mapSearchBuilder.AppendLine("                     <!-- Here is enough text for the third line, aaahh the third line! We are not quite there yet... wait for it.. are you waiting? I thought so... --> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_addFilter\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_filterControl\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"filterControl_text\">Add Filter</div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"filterControl_inputs\" class=\"form-wrapper cf\"> ");
            //mapSearchBuilder.AppendLine("                         <input id=\"userDefinedFilter\" type=\"text\" placeholder=\"Filter for...\"> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"searchBox_in\">IN</div> ");
            //mapSearchBuilder.AppendLine("                         <select id=\"filterList\"> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Language</option>  ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Publisher</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Topic</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Geographic Area</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Genre</option> ");
            //mapSearchBuilder.AppendLine("                         </select> ");
            //mapSearchBuilder.AppendLine("                     </div>   ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("             </div>  ");
            //mapSearchBuilder.AppendLine("         </div> ");
            //mapSearchBuilder.AppendLine("         <div id=\"container_toolbar2\"> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_view\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_view_buttons\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"view_geo\" class=\"view_button\"></div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"view_brief\" class=\"view_button\"></div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"view_thumb\" class=\"view_button\"></div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"view_table\" class=\"view_button\"></div> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_resultsHeader\"> ");
            //mapSearchBuilder.AppendLine("             <div class=\"center-helper\"> ");
            //mapSearchBuilder.AppendLine("             <div class=\"center-inner\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_resultsPagingLeft\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"resultsPagingLeft\"> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"firstPage\" class=\"pagingButton\"> ");
            //mapSearchBuilder.AppendLine("                             <div class=\"line-left\"></div> ");
            //mapSearchBuilder.AppendLine("                             <div class=\"arrow-left\"></div>                     ");
            //mapSearchBuilder.AppendLine("                             &nbsp;First ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"prevPage\" class=\"pagingButton\"> ");
            //mapSearchBuilder.AppendLine("                             <div class=\"arrow-left\"></div> ");
            //mapSearchBuilder.AppendLine("                             &nbsp;Previous ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                 </div>             ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_resultsCounter\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"resultsCounter\"></div> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_resultsPagingRight\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"resultsPagingRight\"> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"nextPage\" class=\"pagingButton\"> ");
            //mapSearchBuilder.AppendLine("                             Next&nbsp; ");
            //mapSearchBuilder.AppendLine("                             <div class=\"arrow-right\"></div> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"lastPage\" class=\"pagingButton\"> ");
            //mapSearchBuilder.AppendLine("                             Last&nbsp; ");
            //mapSearchBuilder.AppendLine("                             <div class=\"line-right\"></div>  ");
            //mapSearchBuilder.AppendLine("                             <div class=\"arrow-right\"></div> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                 </div>               ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_resultsSorter\"> ");
            //mapSearchBuilder.AppendLine("                 <form > ");
            //mapSearchBuilder.AppendLine("                     <select id=\"resultsSorter\" class=\"desc\"> ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By Title (Desc)</option>  ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By Title (Asc)</option>  ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By BibID (Desc)</option> ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By BibID (Asc)</option> ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By Date (Desc)</option> ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By Date (Asc)</option> ");
            //mapSearchBuilder.AppendLine("                     </select> ");
            //mapSearchBuilder.AppendLine("                 </form> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("         </div>                 ");
            //mapSearchBuilder.AppendLine("         <div id=\"container_toolbox1\"> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_filterBox\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_filterBox_header\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"filterBox_header\">Narrow Results By:</div> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("                  ");
            //mapSearchBuilder.AppendLine("                 <!-- <div id=\"container_addFilter2\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_filterControl2\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"filterControl_text2\">Add Filter</div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"filterControl_inputs2\" class=\"form-wrapper cf\"> ");
            //mapSearchBuilder.AppendLine("                         <input id=\"userDefinedFilter2\" type=\"text\" placeholder=\"Filter for...\"> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"filterBox_in2\">IN</div> ");
            //mapSearchBuilder.AppendLine("                         <select id=\"filterList2\"> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Language</option>  ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Publisher</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Topic</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Geographic Area</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Genre</option> ");
            //mapSearchBuilder.AppendLine("                         </select> ");
            //mapSearchBuilder.AppendLine("                     </div>   ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("                 </div> --> ");
            //mapSearchBuilder.AppendLine("                  ");
            //mapSearchBuilder.AppendLine("                 <div id=\"filterBox\"> ");
            //mapSearchBuilder.AppendLine("                     <h3>Language</h3> ");
            //mapSearchBuilder.AppendLine("                     <div> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"sortResults\">sort A - z</div> ");
            //mapSearchBuilder.AppendLine("                         <ul> ");
            //mapSearchBuilder.AppendLine("                         <li>French <a>(503)</a></li> ");
            //mapSearchBuilder.AppendLine("                         <li>Spanish <a>(74)</a></li> ");
            //mapSearchBuilder.AppendLine("                         <li>French <a>(5)</a></li> ");
            //mapSearchBuilder.AppendLine("                         <li>Other <a>(4)</a></li> ");
            //mapSearchBuilder.AppendLine("                         </ul> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"loadmoreResults\">load more</div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                     <h3>Publisher</h3> ");
            //mapSearchBuilder.AppendLine("                     <div> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"sortResults\">sort A - z</div> ");
            //mapSearchBuilder.AppendLine("                         <ul> ");
            //mapSearchBuilder.AppendLine("                           <li>St. Augustine Restoration, Inc. <a>(1108)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>St. Augustine Historical Restoration and  Preservation Commission <a>(219)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>The St. Augustine Record <a>(80)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Planning and Building Department, City of St.  Augustine, FL <a>(41)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Ramola Drost <a>(36)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>National Archives and Records Office, United  States of America <a>(30)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>St. Augustine Historical Society <a>(27)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Historic St. Augustine Preservation Board <a>(23)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>State Photographic Archives, Strozier Library,  Florida State University <a>(14)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>National Archives <a>(12)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Florida Souvenir, Co. <a>(10)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Library of Congress <a>(9)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Florida State News Bureau <a>(8)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>George A. Smathers Libraries, University of  Florida <a>(7)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Koppel Color Cards <a>(7)</a></li> ");
            //mapSearchBuilder.AppendLine("                         </ul> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"loadmoreResults\">load more</div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                      ");
            //mapSearchBuilder.AppendLine("                     <h3>Topic</h3> ");
            //mapSearchBuilder.AppendLine("                     <div> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"sortResults\">sort A - z</div> ");
            //mapSearchBuilder.AppendLine("                         <ul> ");
            //mapSearchBuilder.AppendLine("                           <li>Saint Augustine <a>(890)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Saint Augustine, Fl <a>(88)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>46 Saint George Street <a>(73)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Arrivas House <a>(73)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>143 Saint George Street <a>(65)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Dr. Peck House <a>(65)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Pe�a-Peck House <a>(65)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Burt House <a>(64)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Ximenez-Fatio House <a>(59)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>43 Saint George Street <a>(56)</a></li> ");
            //mapSearchBuilder.AppendLine("                         </ul> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"loadmoreResults\">load more</div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                      ");
            //mapSearchBuilder.AppendLine("                     <h3>Geographic Area</h3> ");
            //mapSearchBuilder.AppendLine("                     <div> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"sortResults\">sort A - z</div> ");
            //mapSearchBuilder.AppendLine("                         <ul> ");
            //mapSearchBuilder.AppendLine("                           <li>Florida <a>(1269)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>North America <a>(1269)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>United States of America <a>(1268)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Saint Johns <a>(870)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Saint Augustine <a>(851)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>St. Augustine <a>(399)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>St. Johns <a>(399)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>United States <a>(1)</a></li> ");
            //mapSearchBuilder.AppendLine("                         </ul> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"loadmoreResults\">load more</div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                      ");
            //mapSearchBuilder.AppendLine("                     <h3>Genre</h3> ");
            //mapSearchBuilder.AppendLine("                     <div> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"sortResults\">sort A - z</div> ");
            //mapSearchBuilder.AppendLine("                         <ul> ");
            //mapSearchBuilder.AppendLine("                           <li>newspaper <a>(63)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>plan <a>(35)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>coastal chart <a>(29)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>map <a>(23)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>plan view <a>(20)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>survey <a>(14)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>plan and profile <a>(8)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>profile <a>(7)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>manuscript <a>(2)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>survey and profile <a>(2)</a></li> ");
            //mapSearchBuilder.AppendLine("                         </ul> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"loadmoreResults\">load more</div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                      ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("         </div> ");
            //mapSearchBuilder.AppendLine("          ");
            //mapSearchBuilder.AppendLine("         <div id=\"container_toolbar3\"> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_timebar\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"timebar_value\"></div> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"timebar\"></div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("         </div> ");
            //mapSearchBuilder.AppendLine("          ");
            //mapSearchBuilder.AppendLine("         <div id=\"container_mainContent\"> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_content1\"></div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_content2\"></div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_content3\"></div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_map\"></div> ");
            //mapSearchBuilder.AppendLine("         </div> ");
            //mapSearchBuilder.AppendLine("                      ");
            //mapSearchBuilder.AppendLine("         <div id=\"container_toolbox2\"> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_resultsBox\"> ");
            //mapSearchBuilder.AppendLine("                  ");
            //mapSearchBuilder.AppendLine("                 <div id=\"resultsBox_header\">Search Results</div> ");
            //mapSearchBuilder.AppendLine("                  ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_toolbox2_scrollContent\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"resultsBox\"> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"result_1\" class=\"result\"> ");
            //mapSearchBuilder.AppendLine("                             <img class=\"result_thumb\" src=\"http://hlmatt.com/uf/part2/resources/result1.jpg\"/> ");
            //mapSearchBuilder.AppendLine("                             <p class=\"result_desc\">Aritst's rendering for possible reconstruction projects along the South side of Cuna Street</p> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"result_2\" class=\"result\"> ");
            //mapSearchBuilder.AppendLine("                             <img class=\"result_thumb\" src=\"http://hlmatt.com/uf/part2/resources/result2.jpg\"/> ");
            //mapSearchBuilder.AppendLine("                             <p class=\"result_desc\">Artist rendering of possible reconstruction projects in Block 4 and Block 5, centered on the Perez Sanchez House reconstruction; Corner of Charlotte Street and Treasury Street</p> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"result_3\" class=\"result\"> ");
            //mapSearchBuilder.AppendLine("                             <img class=\"result_thumb\" src=\"http://hlmatt.com/uf/part2/resources/result3.jpg\"/> ");
            //mapSearchBuilder.AppendLine("                             <p class=\"result_desc\">Artists rending of a concept for the reconstruction of the Ribera House, including the Blanco House and Carmona House</p> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"result_4\" class=\"result\"> ");
            //mapSearchBuilder.AppendLine("                             <img class=\"result_thumb\" src=\"http://hlmatt.com/uf/part2/resources/result4.jpg\"/> ");
            //mapSearchBuilder.AppendLine("                             <p class=\"result_desc\">Artist's Rendering of Block 8, from the corner of Hypolita Street and Charlotte Street, focusing on the Regidor-Clark House</p> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("                  ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("         </div> ");
            //mapSearchBuilder.AppendLine("     </div> ");
            //mapSearchBuilder.AppendLine(" </div> ");
            //mapSearchBuilder.AppendLine("  ");

            #endregion

            //end of custom content
            mapSearchBuilder.AppendLine("</td>");

            Search_Script_Reference = (mapSearchBuilder.ToString());

            #endregion
        }
        /// <summary> Constructor for a new instance of the Metadata_Browse_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Map_Browse_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Get the coordinate information
            DataTable coordinates = Engine_Database.Get_All_Coordinate_Points_By_Aggregation(ViewBag.Hierarchy_Object.Code, RequestSpecificValues.Tracer);

            // Add the google script information
            StringBuilder scriptBuilder = new StringBuilder(10000);

            // Only continue if there actually IS a map key
            if (!String.IsNullOrWhiteSpace(UI_ApplicationCache_Gateway.Settings.System.Google_Map_API_Key))
            {
                scriptBuilder.AppendLine("<script src=\"https://maps.googleapis.com/maps/api/js?key=" + UI_ApplicationCache_Gateway.Settings.System.Google_Map_API_Key  +"\" type=\"text/javascript\"></script>");
                scriptBuilder.AppendLine("<script type=\"text/javascript\" src=\"" + Static_Resources_Gateway.Keydragzoom_Packed_Js + "\"></script>");
                scriptBuilder.AppendLine("<script type=\"text/javascript\">");
                scriptBuilder.AppendLine("  //<![CDATA[");
                scriptBuilder.AppendLine("  // Global values");
                scriptBuilder.AppendLine("  var map, bounds, custom_icon, info_window, last_center;");
                scriptBuilder.AppendLine();
                scriptBuilder.AppendLine("  // Initialize the map on load ");
                scriptBuilder.AppendLine("  function load() { ");

                decimal center_latitude = 0;
                decimal center_longitude = 0;
                int zoom = 1;
                bool zoom_to_extent = true;
                if ((ViewBag.Hierarchy_Object.Map_Browse_Display != null) && (ViewBag.Hierarchy_Object.Map_Browse_Display.Type == Item_Aggregation_Map_Coverage_Type_Enum.FIXED))
                {
                    Item_Aggregation_Map_Coverage_Info mapTypeInfo = ViewBag.Hierarchy_Object.Map_Browse_Display;
                    if ((mapTypeInfo.Latitude.HasValue) && (mapTypeInfo.Longitude.HasValue))
                    {
                        center_latitude = mapTypeInfo.Latitude.Value;
                        center_longitude = mapTypeInfo.Longitude.Value;
                        zoom = 7;

                        if (mapTypeInfo.ZoomLevel.HasValue)
                            zoom = mapTypeInfo.ZoomLevel.Value;

                        zoom_to_extent = false;
                    }
                }

                scriptBuilder.AppendLine("    // Create the map and set some values");
                scriptBuilder.AppendLine("    var latlng = new google.maps.LatLng(" + center_latitude + ", " + center_longitude + ");");
                scriptBuilder.AppendLine("    var myOptions = { zoom: " + zoom + ", center: latlng, mapTypeId: google.maps.MapTypeId.TERRAIN, streetViewControl: false  };");
                scriptBuilder.AppendLine("    map = new google.maps.Map(document.getElementById('sbkMbav_MapDiv'), myOptions);");
                scriptBuilder.AppendLine("    map.enableKeyDragZoom();");

                if ((coordinates != null) && (coordinates.Rows.Count > 0))
                {
                    scriptBuilder.AppendLine();
                    scriptBuilder.AppendLine("    // Create the custom icon / marker image");
                    scriptBuilder.AppendLine("    var iconSize = new google.maps.Size(11, 11);");
                    scriptBuilder.AppendLine("    var iconAnchor = new google.maps.Point(5, 5);");
                    scriptBuilder.AppendLine("    var pointer_image = '" + Static_Resources_Gateway.Map_Point_Png + "';");
                    scriptBuilder.AppendLine("    custom_icon = new google.maps.MarkerImage(pointer_image, iconSize, null, iconAnchor);");

                    scriptBuilder.AppendLine();
                    scriptBuilder.AppendLine("    // Create the bounds");
                    scriptBuilder.AppendLine("    bounds = new google.maps.LatLngBounds();");

                    scriptBuilder.AppendLine();
                    scriptBuilder.AppendLine("    // Create the info window for display");
                    scriptBuilder.AppendLine("    info_window = new google.maps.InfoWindow();");
                    scriptBuilder.AppendLine("    google.maps.event.addListener(info_window, 'closeclick', function() { if (last_center != null) { map.panTo(last_center); last_center = null; } });");

                    scriptBuilder.AppendLine();
                    scriptBuilder.AppendLine("    // Add all the points");
                    string last_latitude = coordinates.Rows[0]["Point_Latitude"].ToString();
                    string last_longitude = coordinates.Rows[0]["Point_Longitude"].ToString();
                    List<DataRow> bibids_in_this_point = new List<DataRow>();
                    foreach (DataRow thisRow in coordinates.Rows)
                    {
                        string latitude = thisRow["Point_Latitude"].ToString();
                        string longitude = thisRow["Point_Longitude"].ToString();

                        // Is this upcoming point new?
                        if ((latitude != last_latitude) || (longitude != last_longitude))
                        {
                            // Write the last point, if there was one
                            if (bibids_in_this_point.Count > 0)
                            {
                                // Add the point
                                add_single_point(last_latitude, last_longitude, RequestSpecificValues.Current_Mode, bibids_in_this_point, scriptBuilder);

                                // Assign this as the last value
                                last_latitude = latitude;
                                last_longitude = longitude;

                                // Clear the list of newspapers linked to this point
                                bibids_in_this_point.Clear();
                            }

                            // Start a new list and include this bib id
                            bibids_in_this_point.Add(thisRow);
                        }
                        else
                        {
                            // Add this bibid to the list
                            bibids_in_this_point.Add(thisRow);
                        }
                    }

                    // Write the last point, if there was one
                    if (bibids_in_this_point.Count > 0)
                    {
                        // Add the point
                        add_single_point(last_latitude, last_longitude, RequestSpecificValues.Current_Mode, bibids_in_this_point, scriptBuilder);

                        // Clear the list of newspapers linked to this point
                        bibids_in_this_point.Clear();
                    }
                }

                // Zoom to extent?
                if (zoom_to_extent)
                {
                    scriptBuilder.AppendLine("    map.fitBounds(bounds);");
                }

                scriptBuilder.AppendLine("  }");
                scriptBuilder.AppendLine();
                scriptBuilder.AppendLine("  // Add a single point ");
                scriptBuilder.AppendLine("  function add_point(latitude, longitude, window_content) {");
                scriptBuilder.AppendLine("    var point = new google.maps.LatLng(latitude, longitude);");
                scriptBuilder.AppendLine("    bounds.extend(point);");
                scriptBuilder.AppendLine("    var marker = new google.maps.Marker({ position: point, draggable: false, map: map, icon: custom_icon });");
                scriptBuilder.AppendLine("    google.maps.event.addListener(marker, 'click', function() { info_window.setContent(window_content); last_center = map.getCenter(); info_window.open(map, marker); });");

                scriptBuilder.AppendLine("  }");
                scriptBuilder.AppendLine("  //]]>");
                scriptBuilder.AppendLine("</script>");

            }
            else
            {
                // No Google Map API Key
                scriptBuilder.AppendLine("<script type=\"text/javascript\">");
                scriptBuilder.AppendLine("  //<![CDATA[ ");
                scriptBuilder.AppendLine("  function load() {  }");
                scriptBuilder.AppendLine("  //]]>");
                scriptBuilder.AppendLine("</script>");
            }
            Search_Script_Reference = scriptBuilder.ToString();
        }
        /// <summary> Constructor for a new instance of the Private_Items_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Private_Items_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Ensure user has some permissions on this aggregation, or is a power/internal user or admin before showing
            // them this list
            if ((RequestSpecificValues.Current_User == null) || (!RequestSpecificValues.Current_User.LoggedOn))
            {
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
                return;
            }

            // Does this user have permissions on this itgem
            if (RequestSpecificValues.Current_User.PermissionedAggregations != null)
            {
                // Do they have some special permissions against this aggregation?
                bool special_permissions_found = false;
                foreach (User_Permissioned_Aggregation permissions in RequestSpecificValues.Current_User.PermissionedAggregations)
                {
                    if (String.Compare(permissions.Code, ViewBag.Hierarchy_Object.Code, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        if ((permissions.CanChangeVisibility) || (permissions.CanDelete) || (permissions.CanEditBehaviors) || (permissions.CanEditItems) ||
                            (permissions.CanEditMetadata) || (permissions.CanPerformQc) || (permissions.CanUploadFiles) || (permissions.IsAdmin) || (permissions.IsCurator))
                        {
                            special_permissions_found = true;
                            break;
                        }
                    }
                }

                // Are they a portal/system admin or power user?
                if ((!special_permissions_found) && ((RequestSpecificValues.Current_User.Is_Internal_User) || (RequestSpecificValues.Current_User.Is_Portal_Admin) || (RequestSpecificValues.Current_User.Is_System_Admin)))
                {
                    special_permissions_found = true;
                }

                // If no permissions, forward them back
                if (!special_permissions_found)
                {
                    RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                    UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
                    return;
                }
            }
            else
            {
                // Are they a portal/system admin or power user?
                if ((!RequestSpecificValues.Current_User.Is_Internal_User) && (!RequestSpecificValues.Current_User.Is_Portal_Admin) && (!RequestSpecificValues.Current_User.Is_System_Admin))
                {
                    RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Home;
                    UrlWriterHelper.Redirect(RequestSpecificValues.Current_Mode);
                    return;
                }
            }

            // Get the list of private items
            int current_sort = RequestSpecificValues.Current_Mode.Sort.HasValue ? RequestSpecificValues.Current_Mode.Sort.Value : 0;
            int current_page = RequestSpecificValues.Current_Mode.Page.HasValue ? RequestSpecificValues.Current_Mode.Page.Value : 1;

            privateItems = Engine_Database.Tracking_Get_Aggregation_Private_Items(ViewBag.Hierarchy_Object.Code, (int)RESULTS_PER_PAGE, current_page, current_sort, RequestSpecificValues.Tracer);
        }
示例#28
0
 /// <summary> Constructor for a new instance of the Item_Count_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public Item_Count_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // All work done in the base constructor
 }
 /// <summary> Constructor for a new instance of the DataSet_Browse_Info_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public DataSet_Browse_Info_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // Do nothing
 }
 /// <summary> Constructor for a new instance of the Custom_Home_Page_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public Custom_Home_Page_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // All work done in base class?
 }
示例#31
0
        public Tiles_Home_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag) : base(RequestSpecificValues, ViewBag)
        {
            // Get the list of tiles
            string aggregation_tile_directory = Path.Combine(UI_ApplicationCache_Gateway.Settings.Servers.Base_Design_Location, ViewBag.Hierarchy_Object.ObjDirectory, "images", "tiles");

            string[] jpeg_tiles = Directory.GetFiles(aggregation_tile_directory, "*.jpg");

            // Compute the URL for these images
            string aggregation_tile_uri = RequestSpecificValues.Current_Mode.Base_URL + "design/aggregations/" + ViewBag.Hierarchy_Object.Code + "/images/tiles/";

            // Get the list of all potential tiles, by checking name
            List <Tiles_Home_Single_Tile> allTiles = new List <Tiles_Home_Single_Tile>();
            string bibid = null;
            string vid   = null;

            foreach (string thisJpegTile in jpeg_tiles)
            {
                // Get the filename
                string thisFileName = Path.GetFileName(thisJpegTile);
                string thisFileNameSansExtension = Path.GetFileNameWithoutExtension(thisJpegTile);


                // Check for a link to the bibid/vid
                string bib_vid_for_link = String.Empty;

                if ((thisFileNameSansExtension.Length == 10) && (SobekCM_Item.is_bibid_format(thisFileNameSansExtension)))
                {
                    bib_vid_for_link = thisFileNameSansExtension;
                    bibid            = bib_vid_for_link;
                    vid = "00001";
                }
                else if ((thisFileNameSansExtension.Length == 15) && (SobekCM_Item.is_bibid_format(thisFileNameSansExtension.Substring(0, 10))) && (SobekCM_Item.is_vids_format(thisFileNameSansExtension.Substring(10))))
                {
                    bib_vid_for_link = thisFileNameSansExtension.Substring(0, 10) + "/" + thisFileNameSansExtension.Substring(10);
                    bibid            = thisFileNameSansExtension.Substring(0, 10);
                    vid = thisFileNameSansExtension.Substring(10);
                }
                else if ((thisFileNameSansExtension.Length == 16) && (SobekCM_Item.is_bibid_format(thisFileNameSansExtension.Substring(0, 10))) && (SobekCM_Item.is_vids_format(thisFileNameSansExtension.Substring(11))))
                {
                    bib_vid_for_link = thisFileNameSansExtension.Substring(0, 10) + "/" + thisFileNameSansExtension.Substring(11);
                    bibid            = thisFileNameSansExtension.Substring(0, 10);
                    vid = thisFileNameSansExtension.Substring(11);
                }

                // If there was a link calculated, then use this jpeg
                if (!String.IsNullOrEmpty(bib_vid_for_link))
                {
                    allTiles.Add(new Tiles_Home_Single_Tile
                    {
                        JpegUri = aggregation_tile_uri + thisFileName,
                        LinkUri = RequestSpecificValues.Current_Mode.Base_URL + bib_vid_for_link,
                        BibID   = bibid ?? String.Empty,
                        VID     = vid ?? String.Empty
                    });
                }
            }

            // Is the metadata cached?
            string cache_key = ViewBag.Hierarchy_Object.Code + ":TILE METADATA";

            tileMetadata = HttpContext.Current.Cache.Get(cache_key) as Database_Results_Info;
            if (tileMetadata == null)
            {
                // Look for the metadat file
                string metadata_file = Path.Combine(aggregation_tile_directory, "tile_metadata.xml");

                // If no file, try to create it
                if (!File.Exists(metadata_file))
                {
                    // Step through each image, collecting the bibs and vids
                    List <string> bibs = new List <string>();
                    List <string> vids = new List <string>();
                    foreach (Tiles_Home_Single_Tile thisTile in allTiles)
                    {
                        bibs.Add(thisTile.BibID);
                        vids.Add(thisTile.VID);
                    }

                    // Now, look up each of these bib/vids

                    // First, pad the lists correctly
                    while (bibs.Count % 10 != 0)
                    {
                        bibs.Add(String.Empty);
                        vids.Add(String.Empty);
                    }

                    // Get the aggregation code
                    string aggrCode = ViewBag.Hierarchy_Object.Code;

                    // FOR TESTING DON'T USE COLLECTION CODE
                    aggrCode = "";

                    // Start the results object
                    Database_Results_Info allResults = new Database_Results_Info();

                    // Now, get the results
                    int offset = 0;
                    while (offset < bibs.Count)
                    {
                        //Get the results from the database
                        Database_Results_Info results = Engine_Library.Database.Engine_Database.Metadata_By_Bib_Vid(aggrCode, bibs[offset + 0], vids[offset + 0], bibs[offset + 1], vids[offset + 1],
                                                                                                                    bibs[offset + 2], vids[offset + 2], bibs[offset + 3], vids[offset + 3],
                                                                                                                    bibs[offset + 4], vids[offset + 4], bibs[offset + 5], vids[offset + 5],
                                                                                                                    bibs[offset + 6], vids[offset + 6], bibs[offset + 7], vids[offset + 7],
                                                                                                                    bibs[offset + 8], vids[offset + 8], bibs[offset + 9], vids[offset + 9], null);

                        // Combine into full results
                        if ((results != null) && (results.Metadata_Labels != null) && (results.Metadata_Labels.Count > 0))
                        {
                            allResults.Metadata_Labels = results.Metadata_Labels;
                        }

                        if ((results != null) && (results.Results != null) && (results.Results.Count > 0))
                        {
                            allResults.Results.AddRange(results.Results);
                        }

                        offset += 10;
                    }


                    // Save these results
                    StreamWriter writer = new StreamWriter(metadata_file, false);

                    XmlSerializer x = new XmlSerializer(allResults.GetType());
                    x.Serialize(writer, allResults);

                    writer.Close();
                }


                // Check again, and let's read the metadata
                if (File.Exists(metadata_file))
                {
                    try
                    {
                        FileStream fs     = new FileStream(metadata_file, FileMode.Open);
                        XmlReader  reader = XmlReader.Create(fs);

                        XmlSerializer x = new XmlSerializer(typeof(Database_Results_Info));

                        // Use the Deserialize method to restore the object's state.
                        tileMetadata = (Database_Results_Info)x.Deserialize(reader);
                        fs.Close();

                        // Also put this in the cache
                        HttpContext.Current.Cache.Insert(cache_key, tileMetadata, null, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(5));
                    }
                    catch (Exception ee)
                    {
                        tileMetadata = null;
                    }
                }
            }

            // If less than or equal to fifteen, copy over as is.. otherwise, choose random ones
            if (allTiles.Count <= 15)
            {
                selectedTiles.AddRange(allTiles);
            }
            else
            {
                Random randomGen = new Random();
                while (selectedTiles.Count < 15)
                {
                    int random_index = randomGen.Next(0, allTiles.Count);
                    selectedTiles.Add(allTiles[random_index]);
                    allTiles.RemoveAt(random_index);
                }
            }
        }
        /// <summary> Constructor for a new instance of the Metadata_Browse_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Map_Browse_AggregationViewer_Beta(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Start to build the response
            StringBuilder mapSearchBuilder = new StringBuilder();

            //start of custom content
            mapSearchBuilder.AppendLine("<td> mapbrowse placeholder ");

            #region TEMP HEADER FILES

            ////standard css
            //mapSearchBuilder.AppendLine(" <link rel=\"stylesheet\" href=\"" + CurrentMode.Base_URL + "default/jquery-ui.css\"/> ");
            //mapSearchBuilder.AppendLine(" <link rel=\"stylesheet\" href=\"" + CurrentMode.Base_URL + "default/jquery-searchbox.css\"/> ");

            ////custom css
            //mapSearchBuilder.AppendLine(" <link rel=\"stylesheet\" href=\"" + CurrentMode.Base_URL + "default/SobekCM_Mapedit.css\"/> ");
            //mapSearchBuilder.AppendLine(" <link rel=\"stylesheet\" href=\"" + CurrentMode.Base_URL + "default/SobekCM_Mapedit_Theme_Default.css\"/> ");

            ////standard js files
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/jquery/jquery-ui-1.10.3.custom.min.js\"></script> ");
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/jquery/jquery-migrate-1.1.1.min.js\"></script> ");
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/jquery/jquery-rotate.js\"></script> ");
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/jquery/jquery-knob.js\"></script> ");
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/jquery/jquery-json-2.4.min.js\"></script> ");
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&key=AIzaSyCzliz5FjUlEI9D2605b33-etBrENSSBZM&libraries=drawing\"></script> ");
            //mapSearchBuilder.AppendLine(" <script type=\"text/javascript\" src=\"" + CurrentMode.Base_URL + "default/scripts/mapedit/gmaps-infobox.js\"></script> ");

            mapSearchBuilder.AppendLine("     <script type=\"text/javascript\" src=\"https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&key=AIzaSyCzliz5FjUlEI9D2605b33-etBrENSSBZM&libraries=drawing\"></script> ");
            mapSearchBuilder.AppendLine("     <link rel=\"stylesheet\" href=\"http://hlmatt.com/uf/part2/bin/css/external_jquery_ui_1.10.4.css\"> ");
            mapSearchBuilder.AppendLine("     <link rel=\"stylesheet\" href=\"http://hlmatt.com/uf/part2/bin/css/custom_main.css\"> ");
            mapSearchBuilder.AppendLine("     <link rel=\"stylesheet\" href=\"http://hlmatt.com/uf/part2/bin/css/custom_theme_grey.css\"> ");
            mapSearchBuilder.AppendLine("     <script src=\"http://hlmatt.com/uf/part2/bin/js/external_markerclusterer_compiled.js\"></script>  ");
            mapSearchBuilder.AppendLine("     <script src=\"http://hlmatt.com/uf/part2/bin/js/external_jquery_1.10.2.js\"></script> ");
            mapSearchBuilder.AppendLine("     <script src=\"http://hlmatt.com/uf/part2/bin/js/external_jquery_ui.min.js\"></script> ");
            mapSearchBuilder.AppendLine("     <script src=\"http://hlmatt.com/uf/part2/bin/js/external_jquery_ui_labeledslider.js\"></script> ");
            //mapSearchBuilder.AppendLine("     <script src=\"http://hlmatt.com/uf/part2/bin/js/custom_main.js\"></script> ");
            mapSearchBuilder.AppendLine("     <script src=\"http://hlmatt.com/uf/part2/bin/js/custom_geoObjects.js\"></script>  ");

            //mapSearchBuilder.AppendLine("     <link rel=\"stylesheet\" href=\"" + Current_Mode.Base_URL + "default/SobekCM_MapSearch.css\"> ");
            mapSearchBuilder.AppendLine("     <script type=\"text/javascript\" src=\"" + RequestSpecificValues.Current_Mode.Base_URL + "default/scripts/mapsearch/sobekcm_mapsearch.js\"></script> ");

            #endregion

            #region Literal

            //mapSearchBuilder.AppendLine("  ");
            //mapSearchBuilder.AppendLine("  ");
            //mapSearchBuilder.AppendLine("  ");
            //mapSearchBuilder.AppendLine(" <div id=\"container_main\"> ");
            ////mapSearchBuilder.AppendLine("     <div id=\"container_header\"> ");
            ////mapSearchBuilder.AppendLine("     	<div id=\"container_header_pt1\"></div> ");
            ////mapSearchBuilder.AppendLine("         <div id=\"container_header_pt2\"></div> ");
            ////mapSearchBuilder.AppendLine("         <div id=\"container_header_pt3\"></div> ");
            ////mapSearchBuilder.AppendLine("     </div> ");
            //mapSearchBuilder.AppendLine("     <div id=\"container_body\"> ");
            //mapSearchBuilder.AppendLine("     	<div id=\"container_toolbar1\"> ");
            //mapSearchBuilder.AppendLine("         	<div id=\"container_addSearch\"> ");
            //mapSearchBuilder.AppendLine("             	<div id=\"container_searchControl\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"searchControl_text\">New Search</div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"searchControl_inputs\" class=\"form-wrapper cf\"> ");
            //mapSearchBuilder.AppendLine(" 	                    <input type=\"text\" id=\"userDefinedSearch\" placeholder=\"Search for...\" /> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("         	<div id=\"container_searchText\"> ");
            //mapSearchBuilder.AppendLine("             	<div id=\"searchText\"> ");
            //mapSearchBuilder.AppendLine("                     You searched for <div id=\"searchText_filter\">all items <a></a></div> <div id=\"searchText_filter\">something <a></a></div> <div id=\"searchText_filter\">points <a></a></div> <div id=\"searchText_filter\">stuff <a></a></div> <div id=\"searchText_filter\">this <a></a></div> <div id=\"searchText_filter\">that <a></a></div> <div id=\"searchText_filter\">something else <a></a></div> <div id=\"searchText_filter\">bacon <a></a></div> <div id=\"searchText_filter\">st augustine <a></a></div> <div id=\"searchText_filter\">wells <a></a></div> inside the \"Unearthing St. Augustine's Colonial Heritage\" collection.  ");
            //mapSearchBuilder.AppendLine(" 					<!-- Here is enough text for the third line, aaahh the third line! We are not quite there yet... wait for it.. are you waiting? I thought so... --> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_addFilter\"> ");
            //mapSearchBuilder.AppendLine(" 	            <div id=\"container_filterControl\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"filterControl_text\">Add Filter</div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"filterControl_inputs\" class=\"form-wrapper cf\"> ");
            //mapSearchBuilder.AppendLine("                         <input id=\"userDefinedFilter\" type=\"text\" placeholder=\"Filter for...\"> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"searchBox_in\">IN</div> ");
            //mapSearchBuilder.AppendLine("                         <select id=\"filterList\"> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Language</option>  ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Publisher</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Topic</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Geographic Area</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Genre</option> ");
            //mapSearchBuilder.AppendLine("                         </select> ");
            //mapSearchBuilder.AppendLine("                     </div>   ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("             </div>  ");
            //mapSearchBuilder.AppendLine("         </div> ");
            //mapSearchBuilder.AppendLine("     	<div id=\"container_toolbar2\"> ");
            //mapSearchBuilder.AppendLine("         	<div id=\"container_view\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_view_buttons\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"view_geo\" class=\"view_button\"></div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"view_brief\" class=\"view_button\"></div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"view_thumb\" class=\"view_button\"></div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"view_table\" class=\"view_button\"></div> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_resultsHeader\"> ");
            //mapSearchBuilder.AppendLine("             <div class=\"center-helper\"> ");
            //mapSearchBuilder.AppendLine("             <div class=\"center-inner\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_resultsPagingLeft\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"resultsPagingLeft\"> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"firstPage\" class=\"pagingButton\"> ");
            //mapSearchBuilder.AppendLine("                             <div class=\"line-left\"></div> ");
            //mapSearchBuilder.AppendLine("                             <div class=\"arrow-left\"></div>                   	 ");
            //mapSearchBuilder.AppendLine("                             &nbsp;First ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"prevPage\" class=\"pagingButton\"> ");
            //mapSearchBuilder.AppendLine("                             <div class=\"arrow-left\"></div> ");
            //mapSearchBuilder.AppendLine("                             &nbsp;Previous ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                 </div>             ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_resultsCounter\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"resultsCounter\"></div> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_resultsPagingRight\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"resultsPagingRight\"> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"nextPage\" class=\"pagingButton\"> ");
            //mapSearchBuilder.AppendLine("                             Next&nbsp; ");
            //mapSearchBuilder.AppendLine("                             <div class=\"arrow-right\"></div> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"lastPage\" class=\"pagingButton\"> ");
            //mapSearchBuilder.AppendLine("                             Last&nbsp; ");
            //mapSearchBuilder.AppendLine("                             <div class=\"line-right\"></div>  ");
            //mapSearchBuilder.AppendLine("                             <div class=\"arrow-right\"></div> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                 </div>            	 ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_resultsSorter\"> ");
            //mapSearchBuilder.AppendLine("                 <form > ");
            //mapSearchBuilder.AppendLine("                     <select id=\"resultsSorter\" class=\"desc\"> ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By Title (Desc)</option>  ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By Title (Asc)</option>  ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By BibID (Desc)</option> ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By BibID (Asc)</option> ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By Date (Desc)</option> ");
            //mapSearchBuilder.AppendLine("                         <option class=\"opt\">Sort By Date (Asc)</option> ");
            //mapSearchBuilder.AppendLine("                     </select> ");
            //mapSearchBuilder.AppendLine("                 </form> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("         </div>                 ");
            //mapSearchBuilder.AppendLine("         <div id=\"container_toolbox1\"> ");
            //mapSearchBuilder.AppendLine("         	<div id=\"container_filterBox\"> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_filterBox_header\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"filterBox_header\">Narrow Results By:</div> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("                  ");
            //mapSearchBuilder.AppendLine("                 <!-- <div id=\"container_addFilter2\"> ");
            //mapSearchBuilder.AppendLine(" 	            <div id=\"container_filterControl2\"> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"filterControl_text2\">Add Filter</div> ");
            //mapSearchBuilder.AppendLine("                     <div id=\"filterControl_inputs2\" class=\"form-wrapper cf\"> ");
            //mapSearchBuilder.AppendLine("                         <input id=\"userDefinedFilter2\" type=\"text\" placeholder=\"Filter for...\"> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"filterBox_in2\">IN</div> ");
            //mapSearchBuilder.AppendLine("                         <select id=\"filterList2\"> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Language</option>  ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Publisher</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Topic</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Geographic Area</option> ");
            //mapSearchBuilder.AppendLine("                             <option class=\"filterListItem\">Genre</option> ");
            //mapSearchBuilder.AppendLine("                         </select> ");
            //mapSearchBuilder.AppendLine("                     </div>   ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("             	</div> --> ");
            //mapSearchBuilder.AppendLine("                  ");
            //mapSearchBuilder.AppendLine("                 <div id=\"filterBox\"> ");
            //mapSearchBuilder.AppendLine("                     <h3>Language</h3> ");
            //mapSearchBuilder.AppendLine("                     <div> ");
            //mapSearchBuilder.AppendLine("                     	<div class=\"sortResults\">sort A - z</div> ");
            //mapSearchBuilder.AppendLine("                         <ul> ");
            //mapSearchBuilder.AppendLine("                         <li>French <a>(503)</a></li> ");
            //mapSearchBuilder.AppendLine("                         <li>Spanish <a>(74)</a></li> ");
            //mapSearchBuilder.AppendLine("                         <li>French <a>(5)</a></li> ");
            //mapSearchBuilder.AppendLine("                         <li>Other <a>(4)</a></li> ");
            //mapSearchBuilder.AppendLine("                         </ul> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"loadmoreResults\">load more</div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                     <h3>Publisher</h3> ");
            //mapSearchBuilder.AppendLine("                     <div> ");
            //mapSearchBuilder.AppendLine("                     	<div class=\"sortResults\">sort A - z</div> ");
            //mapSearchBuilder.AppendLine("                         <ul> ");
            //mapSearchBuilder.AppendLine("                           <li>St. Augustine Restoration, Inc. <a>(1108)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>St. Augustine Historical Restoration and  Preservation Commission <a>(219)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>The St. Augustine Record <a>(80)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Planning and Building Department, City of St.  Augustine, FL <a>(41)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Ramola Drost <a>(36)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>National Archives and Records Office, United  States of America <a>(30)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>St. Augustine Historical Society <a>(27)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Historic St. Augustine Preservation Board <a>(23)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>State Photographic Archives, Strozier Library,  Florida State University <a>(14)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>National Archives <a>(12)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Florida Souvenir, Co. <a>(10)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Library of Congress <a>(9)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Florida State News Bureau <a>(8)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>George A. Smathers Libraries, University of  Florida <a>(7)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Koppel Color Cards <a>(7)</a></li> ");
            //mapSearchBuilder.AppendLine("                         </ul> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"loadmoreResults\">load more</div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                      ");
            //mapSearchBuilder.AppendLine("                     <h3>Topic</h3> ");
            //mapSearchBuilder.AppendLine("                     <div> ");
            //mapSearchBuilder.AppendLine(" 	                    <div class=\"sortResults\">sort A - z</div> ");
            //mapSearchBuilder.AppendLine("                         <ul> ");
            //mapSearchBuilder.AppendLine("                           <li>Saint Augustine <a>(890)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Saint Augustine, Fl <a>(88)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>46 Saint George Street <a>(73)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Arrivas House <a>(73)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>143 Saint George Street <a>(65)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Dr. Peck House <a>(65)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Pe�a-Peck House <a>(65)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Burt House <a>(64)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Ximenez-Fatio House <a>(59)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>43 Saint George Street <a>(56)</a></li> ");
            //mapSearchBuilder.AppendLine("                         </ul> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"loadmoreResults\">load more</div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                      ");
            //mapSearchBuilder.AppendLine("                     <h3>Geographic Area</h3> ");
            //mapSearchBuilder.AppendLine("                     <div> ");
            //mapSearchBuilder.AppendLine("                     	<div class=\"sortResults\">sort A - z</div> ");
            //mapSearchBuilder.AppendLine("                         <ul> ");
            //mapSearchBuilder.AppendLine("                           <li>Florida <a>(1269)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>North America <a>(1269)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>United States of America <a>(1268)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Saint Johns <a>(870)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>Saint Augustine <a>(851)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>St. Augustine <a>(399)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>St. Johns <a>(399)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>United States <a>(1)</a></li> ");
            //mapSearchBuilder.AppendLine("                         </ul> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"loadmoreResults\">load more</div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                      ");
            //mapSearchBuilder.AppendLine("                     <h3>Genre</h3> ");
            //mapSearchBuilder.AppendLine("                     <div> ");
            //mapSearchBuilder.AppendLine("                     	<div class=\"sortResults\">sort A - z</div> ");
            //mapSearchBuilder.AppendLine("                         <ul> ");
            //mapSearchBuilder.AppendLine("                           <li>newspaper <a>(63)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>plan <a>(35)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>coastal chart <a>(29)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>map <a>(23)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>plan view <a>(20)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>survey <a>(14)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>plan and profile <a>(8)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>profile <a>(7)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>manuscript <a>(2)</a></li> ");
            //mapSearchBuilder.AppendLine("                           <li>survey and profile <a>(2)</a></li> ");
            //mapSearchBuilder.AppendLine("                         </ul> ");
            //mapSearchBuilder.AppendLine("                         <div class=\"loadmoreResults\">load more</div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                      ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine(" 	        </div> ");
            //mapSearchBuilder.AppendLine("         </div> ");
            //mapSearchBuilder.AppendLine("          ");
            //mapSearchBuilder.AppendLine("         <div id=\"container_toolbar3\"> ");
            //mapSearchBuilder.AppendLine("            	<div id=\"container_timebar\"> ");
            //mapSearchBuilder.AppendLine(" 	        	<div id=\"timebar_value\"></div> ");
            //mapSearchBuilder.AppendLine("                 <div id=\"timebar\"></div> ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("         </div> ");
            //mapSearchBuilder.AppendLine("          ");
            //mapSearchBuilder.AppendLine("         <div id=\"container_mainContent\"> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_content1\"></div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_content2\"></div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_content3\"></div> ");
            //mapSearchBuilder.AppendLine("             <div id=\"container_map\"></div> ");
            //mapSearchBuilder.AppendLine(" 		</div> ");
            //mapSearchBuilder.AppendLine("                      ");
            //mapSearchBuilder.AppendLine("         <div id=\"container_toolbox2\"> ");
            //mapSearchBuilder.AppendLine(" 			<div id=\"container_resultsBox\"> ");
            //mapSearchBuilder.AppendLine("             	 ");
            //mapSearchBuilder.AppendLine("                 <div id=\"resultsBox_header\">Search Results</div> ");
            //mapSearchBuilder.AppendLine("                  ");
            //mapSearchBuilder.AppendLine("                 <div id=\"container_toolbox2_scrollContent\"> ");
            //mapSearchBuilder.AppendLine("                 	<div id=\"resultsBox\"> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"result_1\" class=\"result\"> ");
            //mapSearchBuilder.AppendLine("                             <img class=\"result_thumb\" src=\"http://hlmatt.com/uf/part2/resources/result1.jpg\"/> ");
            //mapSearchBuilder.AppendLine("                             <p class=\"result_desc\">Aritst's rendering for possible reconstruction projects along the South side of Cuna Street</p> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"result_2\" class=\"result\"> ");
            //mapSearchBuilder.AppendLine("                             <img class=\"result_thumb\" src=\"http://hlmatt.com/uf/part2/resources/result2.jpg\"/> ");
            //mapSearchBuilder.AppendLine("                             <p class=\"result_desc\">Artist rendering of possible reconstruction projects in Block 4 and Block 5, centered on the Perez Sanchez House reconstruction; Corner of Charlotte Street and Treasury Street</p> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"result_3\" class=\"result\"> ");
            //mapSearchBuilder.AppendLine("                             <img class=\"result_thumb\" src=\"http://hlmatt.com/uf/part2/resources/result3.jpg\"/> ");
            //mapSearchBuilder.AppendLine("                             <p class=\"result_desc\">Artists rending of a concept for the reconstruction of the Ribera House, including the Blanco House and Carmona House</p> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                         <div id=\"result_4\" class=\"result\"> ");
            //mapSearchBuilder.AppendLine("                             <img class=\"result_thumb\" src=\"http://hlmatt.com/uf/part2/resources/result4.jpg\"/> ");
            //mapSearchBuilder.AppendLine("                             <p class=\"result_desc\">Artist's Rendering of Block 8, from the corner of Hypolita Street and Charlotte Street, focusing on the Regidor-Clark House</p> ");
            //mapSearchBuilder.AppendLine("                         </div> ");
            //mapSearchBuilder.AppendLine("                     </div> ");
            //mapSearchBuilder.AppendLine("                 </div> ");
            //mapSearchBuilder.AppendLine("                  ");
            //mapSearchBuilder.AppendLine("             </div> ");
            //mapSearchBuilder.AppendLine("         </div> ");
            //mapSearchBuilder.AppendLine("     </div> ");
            //mapSearchBuilder.AppendLine(" </div> ");
            //mapSearchBuilder.AppendLine("  ");

            #endregion

            //end of custom content
            mapSearchBuilder.AppendLine("</td>");

            Search_Script_Reference = (mapSearchBuilder.ToString());
        }
        /// <summary> Returns a built collection viewer matching request </summary>
        /// <param name="SearchType"> Type of search from the current http request </param>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> View bag holds specific data that was pulled for an aggregation request </param>
        /// <returns> Collection viewer that extends the <see cref="abstractAggregationViewer"/> class. </returns>
        public static abstractAggregationViewer Get_Viewer(Search_Type_Enum SearchType, RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
        {
            switch (SearchType)
            {
            case Search_Type_Enum.Advanced:
                if (ViewBag.Hierarchy_Object.Views_And_Searches.Contains(Item_Aggregation_Views_Searches_Enum.Advanced_Search_YearRange))
                {
                    return(new Advanced_Search_YearRange_AggregationViewer(RequestSpecificValues, ViewBag));
                }
                if (ViewBag.Hierarchy_Object.Views_And_Searches.Contains(Item_Aggregation_Views_Searches_Enum.Advanced_Search_MimeType))
                {
                    return(new Advanced_Search_MimeType_AggregationViewer(RequestSpecificValues, ViewBag));
                }
                return(new Advanced_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Search_Type_Enum.Basic:
                Item_Aggregation_Front_Banner frontBannerImage = ViewBag.Hierarchy_Object.FrontBannerObj;
                if ((frontBannerImage != null) && (ViewBag.Hierarchy_Object.Highlights != null) && (ViewBag.Hierarchy_Object.Highlights.Count > 0))
                {
                    return(new Rotating_Highlight_Search_AggregationViewer(RequestSpecificValues, ViewBag));
                }
                return(new Basic_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Search_Type_Enum.Full_Text:
                return(new Full_Text_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Search_Type_Enum.Newspaper:
                return(new Newspaper_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Search_Type_Enum.Map:
                return(new Map_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Search_Type_Enum.Map_Beta:
                return(new Map_Search_AggregationViewer_Beta(RequestSpecificValues, ViewBag));

            case Search_Type_Enum.dLOC_Full_Text:
                return(new dLOC_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            default:
                return(null);
            }
        }
示例#34
0
 /// <summary> Constructor for a new instance of the No_Search_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public No_Search_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // Do nothing
 }
 /// <summary> Constructor for a new instance of the No_Search_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public No_Search_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // Do nothing
 }
示例#36
0
 /// <summary> Constructor for objects which implement this abstract class  </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 protected abstractAggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
 {
     this.RequestSpecificValues = RequestSpecificValues;
     this.ViewBag = ViewBag;
 }
        /// <summary> Returns a built collection viewer matching request </summary>
        /// <param name="ViewType"> Aggregation view type </param>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> View bag holds specific data that was pulled for an aggregation request </param>
        /// <returns> Collection viewer that extends the <see cref="abstractAggregationViewer"/> class. </returns>
        public static abstractAggregationViewer Get_Viewer(Item_Aggregation_Views_Searches_Enum ViewType, RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
        {
            switch (ViewType)
            {
            case Item_Aggregation_Views_Searches_Enum.Advanced_Search:
                return(new Advanced_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.Advanced_Search_MimeType:
                return(new Advanced_Search_MimeType_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.Advanced_Search_YearRange:
                return(new Advanced_Search_YearRange_AggregationViewer(RequestSpecificValues, ViewBag));


            case Item_Aggregation_Views_Searches_Enum.Basic_Search:
                Item_Aggregation_Front_Banner frontBannerImage = ViewBag.Hierarchy_Object.FrontBannerObj;
                if ((frontBannerImage != null) && (ViewBag.Hierarchy_Object.Highlights != null) && (ViewBag.Hierarchy_Object.Highlights.Count > 0))
                {
                    return(new Rotating_Highlight_Search_AggregationViewer(RequestSpecificValues, ViewBag));
                }
                return(new Basic_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.Basic_Search_YearRange:
                return(new Basic_Search_YearRange_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.Basic_Search_FullTextOption:
                return(new Basic_Text_Search_Combined_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.Basic_Search_MimeType:
                Item_Aggregation_Front_Banner frontBannerImage2 = ViewBag.Hierarchy_Object.FrontBannerObj;
                if ((frontBannerImage2 != null) && (ViewBag.Hierarchy_Object.Highlights != null) && (ViewBag.Hierarchy_Object.Highlights.Count > 0))
                {
                    return(new Rotating_Highlight_MimeType_AggregationViewer(RequestSpecificValues, ViewBag));
                }
                return(new Basic_Search_MimeType_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.FullText_Search:
                return(new Full_Text_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.No_Home_Search:
                return(new No_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.Newspaper_Search:
                return(new Newspaper_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.Map_Search:
                return(new Map_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.Map_Search_Beta:
                return(new Map_Search_AggregationViewer_Beta(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.DLOC_FullText_Search:
                return(new dLOC_Search_AggregationViewer(RequestSpecificValues, ViewBag));

            case Item_Aggregation_Views_Searches_Enum.Empty:
                return(new Empty_AggregationViewer(RequestSpecificValues, ViewBag));


            default:
                return(null);
            }
        }
 /// <summary> Constructor for a new instance of the Metadata_Browse_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public Empty_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag) : base(RequestSpecificValues, ViewBag)
 {
     // Do nothing else
 }
 /// <summary> Constructor for a new instance of the Usage_Statistics_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public Usage_Statistics_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // Everything done in base class constructor
 }
 /// <summary> Constructor for objects which implement this abstract class  </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 protected abstractAggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
 {
     this.RequestSpecificValues = RequestSpecificValues;
     this.ViewBag = ViewBag;
 }
示例#41
0
        /// <summary> Constructor for a new instance of the Map_Search_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Map_Search_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            // Compute the redirect stem to use
            string fields        = RequestSpecificValues.Current_Mode.Search_Fields;
            string search_string = RequestSpecificValues.Current_Mode.Search_String;

            RequestSpecificValues.Current_Mode.Search_String    = String.Empty;
            RequestSpecificValues.Current_Mode.Search_Fields    = String.Empty;
            RequestSpecificValues.Current_Mode.Mode             = Display_Mode_Enum.Results;
            RequestSpecificValues.Current_Mode.Search_Type      = Search_Type_Enum.Map;
            RequestSpecificValues.Current_Mode.Search_Precision = Search_Precision_Type_Enum.Inflectional_Form;
            string redirect_stem = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);

            RequestSpecificValues.Current_Mode.Mode          = Display_Mode_Enum.Search;
            RequestSpecificValues.Current_Mode.Search_String = search_string;
            RequestSpecificValues.Current_Mode.Search_Fields = fields;
            // Now, populate the search terms, if there was one or some
            text1 = String.Empty;
            text2 = String.Empty;
            text3 = String.Empty;
            text4 = String.Empty;
            if (RequestSpecificValues.Current_Mode.Search_String.Length > 0)
            {
                string[] splitter = RequestSpecificValues.Current_Mode.Search_String.Split(",".ToCharArray());
                bool     isNumber = true;
                foreach (char thisChar in splitter[0])
                {
                    if ((!Char.IsDigit(thisChar)) && (thisChar != '.') && (thisChar != '-'))
                    {
                        isNumber = false;
                    }
                }
                if (isNumber)
                {
                    text1 = splitter[0].Replace(" =", " or ");


                    if (splitter.Length > 1)
                    {
                        foreach (char thisChar in splitter[1])
                        {
                            if ((!Char.IsDigit(thisChar)) && (thisChar != '.') && (thisChar != '-'))
                            {
                                isNumber = false;
                            }
                        }
                        if (isNumber)
                        {
                            text2 = splitter[1].Replace(" =", " or ");

                            if (splitter.Length > 2)
                            {
                                foreach (char thisChar in splitter[2])
                                {
                                    if ((!Char.IsDigit(thisChar)) && (thisChar != '.') && (thisChar != '-'))
                                    {
                                        isNumber = false;
                                    }
                                }

                                if (isNumber)
                                {
                                    text3 = splitter[2].Replace(" =", " or ");

                                    foreach (char thisChar in splitter[3])
                                    {
                                        if ((!Char.IsDigit(thisChar)) && (thisChar != '.') && (thisChar != '-'))
                                        {
                                            isNumber = false;
                                        }
                                    }

                                    if (isNumber)
                                    {
                                        text4 = splitter[3].Replace(" =", " or ");
                                    }
                                }
                            }
                        }
                    }
                }
            }

            // Add the google script information
            mapHeight = 500;
            StringBuilder scriptBuilder = new StringBuilder();

            // Only continue if there actually IS a map key
            if (!String.IsNullOrWhiteSpace(UI_ApplicationCache_Gateway.Settings.System.Google_Map_API_Key))
            {
                scriptBuilder.AppendLine("<script src=\"https://maps.googleapis.com/maps/api/js?key=" + UI_ApplicationCache_Gateway.Settings.System.Google_Map_API_Key + "\" type=\"text/javascript\"></script>");
                scriptBuilder.AppendLine("<script type=\"text/javascript\" src=\"" + Static_Resources_Gateway.Sobekcm_Map_Search_Js + "\"></script>");
                scriptBuilder.AppendLine("<script type=\"text/javascript\" src=\"" + Static_Resources_Gateway.Sobekcm_Map_Tool_Js + "\"></script>");

                scriptBuilder.AppendLine("<script type=\"text/javascript\">");
                scriptBuilder.AppendLine("  //<![CDATA[");
                scriptBuilder.AppendLine("  function load() { ");

                // Set the latitude and longitude
                int     zoom      = 1;
                decimal latitude  = 0;
                decimal longitude = 0;
                if (ViewBag.Hierarchy_Object.Map_Search_Display != null)
                {
                    if ((ViewBag.Hierarchy_Object.Map_Search_Display.ZoomLevel.HasValue) && (ViewBag.Hierarchy_Object.Map_Search_Display.Latitude.HasValue) && (ViewBag.Hierarchy_Object.Map_Search_Display.Longitude.HasValue))
                    {
                        latitude  = ViewBag.Hierarchy_Object.Map_Search_Display.Latitude.Value;
                        longitude = ViewBag.Hierarchy_Object.Map_Search_Display.Longitude.Value;
                        zoom      = ViewBag.Hierarchy_Object.Map_Search_Display.ZoomLevel.Value;
                    }
                }
                scriptBuilder.AppendLine("    load_search_map(" + latitude + ", " + longitude + ", " + zoom + ", \"map1\");");

                //// If no point searching is allowed, disable it
                //if (ViewBag.Hierarchy_Object.Map_Search >= 100)
                //{
                //    pointSearchingDisabled = true;
                //    scriptBuilder.AppendLine("    disable_point_searching();");
                //}

                if ((text1.Length > 0) && (text2.Length > 0) && (text3.Length > 0) && (text4.Length > 0))
                {
                    scriptBuilder.AppendLine("    add_selection_rectangle( " + text1 + ", " + text2 + ", " + text3 + ", " + text4 + " );");
                    scriptBuilder.AppendLine("    zoom_to_bounds();");
                }
                else if ((text1.Length > 0) && (text2.Length > 0))
                {
                    scriptBuilder.AppendLine("    add_selection_point( " + text1 + ", " + text2 + ", 8 );");
                }

                scriptBuilder.AppendLine("  }");
                scriptBuilder.AppendLine("  //]]>");
                scriptBuilder.AppendLine("</script>");
            }
            else
            {
                // No Google Map API Key
                scriptBuilder.AppendLine("<script type=\"text/javascript\">");
                scriptBuilder.AppendLine("  //<![CDATA[ ");
                scriptBuilder.AppendLine("  function load() {  }");
                scriptBuilder.AppendLine("  //]]>");
                scriptBuilder.AppendLine("</script>");
            }
            Search_Script_Reference = scriptBuilder.ToString();

            // Get the action name for the button
            Search_Script_Action = "map_search_sobekcm('" + redirect_stem + "');";
        }
示例#42
0
        /// <summary> Constructor for a new instance of the Static_Browse_Info_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Static_Browse_Info_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            bool isAdmin = (RequestSpecificValues.Current_User != null) && (RequestSpecificValues.Current_User.Is_Aggregation_Admin(ViewBag.Hierarchy_Object.Code));

            if ((RequestSpecificValues.Current_Mode.Aggregation_Type == Aggregation_Type_Enum.Child_Page_Edit) && (!isAdmin))
            {
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
            }

            NameValueCollection form = HttpContext.Current.Request.Form;

            if ((RequestSpecificValues.Current_Mode.Aggregation_Type == Aggregation_Type_Enum.Child_Page_Edit) && (form["sbkSbia_ChildTextEdit"] != null) && (RequestSpecificValues.Current_User != null))
            {
                string aggregation_folder = UI_ApplicationCache_Gateway.Settings.Servers.Base_Design_Location + "aggregations\\" + ViewBag.Hierarchy_Object.Code + "\\";

                string file = aggregation_folder + ViewBag.Browse_Object.Source;

                // Get the header information as well
                if (!String.IsNullOrEmpty(form["admin_childpage_title"]))
                {
                    ViewBag.Static_Web_Content.Title = form["admin_childpage_title"];
                }
                if (form["admin_childpage_author"] != null)
                {
                    ViewBag.Static_Web_Content.Author = form["admin_childpage_author"];
                }
                if (form["admin_childpage_date"] != null)
                {
                    ViewBag.Static_Web_Content.Date = form["admin_childpage_date"];
                }
                if (form["admin_childpage_description"] != null)
                {
                    ViewBag.Static_Web_Content.Description = form["admin_childpage_description"];
                }
                if (form["admin_childpage_keywords"] != null)
                {
                    ViewBag.Static_Web_Content.Keywords = form["admin_childpage_keywords"];
                }
                if (form["admin_childpage_extrahead"] != null)
                {
                    ViewBag.Static_Web_Content.Extra_Head_Info = form["admin_childpage_extrahead"];
                }


                // Make a backup from today, if none made yet
                if (File.Exists(file))
                {
                    DateTime lastWrite = (new FileInfo(file)).LastWriteTime;
                    string   new_file  = file.ToLower().Replace(".txt", "").Replace(".html", "").Replace(".htm", "") + lastWrite.Year + lastWrite.Month.ToString().PadLeft(2, '0') + lastWrite.Day.ToString().PadLeft(2, '0') + ".bak";
                    if (File.Exists(new_file))
                    {
                        File.Delete(new_file);
                    }
                    File.Move(file, new_file);
                }


                // Assign the new text
                ViewBag.Static_Web_Content.Content = form["sbkSbia_ChildTextEdit"].Replace("%]", "%>").Replace("[%", "<%");
                ViewBag.Static_Web_Content.Date    = DateTime.Now.ToLongDateString();
                ViewBag.Static_Web_Content.Save_To_File(file);

                // Also save this change
                SobekCM_Database.Save_Item_Aggregation_Milestone(ViewBag.Hierarchy_Object.Code, "Child page '" + ViewBag.Browse_Object.Code + "' edited (" + Web_Language_Enum_Converter.Enum_To_Name(RequestSpecificValues.Current_Mode.Language) + ")", RequestSpecificValues.Current_User.Full_Name);

                // Forward along
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
                if (ViewBag.Browse_Object.Browse_Type == Item_Aggregation_Child_Visibility_Enum.Metadata_Browse_By)
                {
                    RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_By;
                }

                string redirect_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
                if (redirect_url.IndexOf("?") > 0)
                {
                    redirect_url = redirect_url + "&refresh=always";
                }
                else
                {
                    redirect_url = redirect_url + "?refresh=always";
                }
                RequestSpecificValues.Current_Mode.Request_Completed = true;
                HttpContext.Current.Response.Redirect(redirect_url, false);
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
        }
        /// <summary> Constructor for a new instance of the Static_Browse_Info_AggregationViewer class </summary>
        /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
        /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
        public Static_Browse_Info_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
            : base(RequestSpecificValues, ViewBag)
        {
            bool isAdmin = (RequestSpecificValues.Current_User != null) && (RequestSpecificValues.Current_User.Is_Aggregation_Admin(ViewBag.Hierarchy_Object.Code));
            if (( RequestSpecificValues.Current_Mode.Aggregation_Type == Aggregation_Type_Enum.Child_Page_Edit) && ( !isAdmin))
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;

            NameValueCollection form = HttpContext.Current.Request.Form;
            if ((RequestSpecificValues.Current_Mode.Aggregation_Type == Aggregation_Type_Enum.Child_Page_Edit) && (form["sbkSbia_ChildTextEdit"] != null) && ( RequestSpecificValues.Current_User != null ))
            {
                string aggregation_folder = UI_ApplicationCache_Gateway.Settings.Servers.Base_Design_Location + "aggregations\\" + ViewBag.Hierarchy_Object.Code + "\\";

                string file = aggregation_folder + ViewBag.Browse_Object.Source;

                // Get the header information as well
                if ( !String.IsNullOrEmpty(form["admin_childpage_title"]))
                {
                    ViewBag.Static_Web_Content.Title = form["admin_childpage_title"];
                }
                if (form["admin_childpage_author"] != null)
                    ViewBag.Static_Web_Content.Author = form["admin_childpage_author"];
                if (form["admin_childpage_date"] != null)
                    ViewBag.Static_Web_Content.Date = form["admin_childpage_date"];
                if (form["admin_childpage_description"] != null)
                    ViewBag.Static_Web_Content.Description = form["admin_childpage_description"];
                if (form["admin_childpage_keywords"] != null)
                    ViewBag.Static_Web_Content.Keywords = form["admin_childpage_keywords"];
                if (form["admin_childpage_extrahead"] != null)
                    ViewBag.Static_Web_Content.Extra_Head_Info = form["admin_childpage_extrahead"];

                // Make a backup from today, if none made yet
                if (File.Exists(file))
                {
                    DateTime lastWrite = (new FileInfo(file)).LastWriteTime;
                    string new_file = file.ToLower().Replace(".txt", "").Replace(".html", "").Replace(".htm", "") + lastWrite.Year + lastWrite.Month.ToString().PadLeft(2, '0') + lastWrite.Day.ToString() .PadLeft(2, '0')+ ".bak";
                    if (File.Exists(new_file))
                        File.Delete(new_file);
                    File.Move(file, new_file);
                }

                // Assign the new text
                ViewBag.Static_Web_Content.Content = form["sbkSbia_ChildTextEdit"].Replace("%]", "%>").Replace("[%", "<%");
                ViewBag.Static_Web_Content.Date = DateTime.Now.ToLongDateString();
                ViewBag.Static_Web_Content.Save_To_File(file);

                // Also save this change
                SobekCM_Database.Save_Item_Aggregation_Milestone(ViewBag.Hierarchy_Object.Code, "Child page '" + ViewBag.Browse_Object.Code + "' edited (" + Web_Language_Enum_Converter.Enum_To_Name(RequestSpecificValues.Current_Mode.Language) + ")", RequestSpecificValues.Current_User.Full_Name);

                // Forward along
                RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_Info;
                if (ViewBag.Browse_Object.Browse_Type == Item_Aggregation_Child_Visibility_Enum.Metadata_Browse_By)
                    RequestSpecificValues.Current_Mode.Aggregation_Type = Aggregation_Type_Enum.Browse_By;

                string redirect_url = UrlWriterHelper.Redirect_URL(RequestSpecificValues.Current_Mode);
                if (redirect_url.IndexOf("?") > 0)
                    redirect_url = redirect_url + "&refresh=always";
                else
                    redirect_url = redirect_url + "?refresh=always";
                RequestSpecificValues.Current_Mode.Request_Completed = true;
                HttpContext.Current.Response.Redirect(redirect_url, false);
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
        }
 /// <summary> Constructor for a new instance of the Item_Count_AggregationViewer class </summary>
 /// <param name="RequestSpecificValues"> All the necessary, non-global data specific to the current request </param>
 /// <param name="ViewBag"> Aggregation-specific request information, such as aggregation object and any browse object requested </param>
 public Item_Count_AggregationViewer(RequestCache RequestSpecificValues, AggregationViewBag ViewBag)
     : base(RequestSpecificValues, ViewBag)
 {
     // All work done in the base constructor
 }