private void PopulateLanguageList()
        {
            BHLProvider provider = new BHLProvider();
            CustomDataAccess.CustomGenericList<Language> languages = null;

            // Cache the results of the languages query for 24 hours
            String cacheKey = "LanguagesWithPubItems";
            if (Cache[cacheKey] != null)
            {
                // Use cached version
                languages = (CustomDataAccess.CustomGenericList<Language>)Cache[cacheKey];
            }
            else
            {
                // Refresh cache
                languages = provider.LanguageSelectWithPublishedItems();
                Cache.Add(cacheKey, languages, null, DateTime.Now.AddMinutes(
                    Convert.ToDouble(ConfigurationManager.AppSettings["LanguageListQueryCacheTime"])),
                    System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Normal, null);
            }

            ddlLanguage.DataSource = languages;
            ddlLanguage.DataBind();
            ddlLanguage.Items.Insert(0, new ListItem("(Any Language)", ""));
        }