/// <summary>
/// Set's up the Asp.net default Menu control for display inside our skinning engine
/// </summary>
private void SetupMenu()
{
if (aspnetMenu != null)
{
string randomId = Guid.NewGuid().ToString("N").Substring(0, 5);
// make ready the scripts
StringBuilder script = new StringBuilder();
script.AppendFormat("<script type=\"text/javascript\" language=\"Javascript\">\n");
script.AppendFormat(" function loadMenu_{0}() {{\n", randomId);
string menuId = aspnetMenu.ClientID;
SiteMapDataSource ds = new SiteMapDataSource();
var prov = SiteMapProviderFactory.GetSiteMap(Customer.Current);
prov.MaximumDynamicDisplayLevels = aspnetMenu.MaximumDynamicDisplayLevels;
ds.Provider = prov;
aspnetMenu.DataSource = ds;
aspnetMenu.AppRelativeTemplateSourceDirectory = "~/";
//aspnetMenu.MaximumDynamicDisplayLevels = AspDotNetStorefrontCommon.AppConfig.SiteDisplay.MaxMenuLevelSize;
aspnetMenu.DataBind();
// now for the custom asp.net Menu javascript
script.AppendFormat(" if({0}_Data) {{\n", menuId);
script.AppendFormat(" {0}_Data.hoverClass = '{0}_DynamicHoverStyle';\n", menuId);
script.AppendFormat(" {0}_Data.hoverHyperLinkClass = '{0}_DynamicHoverStyle';\n", menuId);
script.AppendFormat(" {0}_Data.staticHoverClass = '{0}_StaticHoverStyle';\n", menuId);
script.AppendFormat(" {0}_Data.staticHoverHyperLinkClass = '{0}_StaticHoverStyle';\n", menuId);
script.AppendFormat(" }}\n");
// ending brace for loadMenu function
script.AppendFormat(" }}\n");
script.AppendFormat(" $window_addLoad(loadMenu_{0});\n", randomId);
script.AppendFormat("</script>\n");
Page.ClientScript.RegisterStartupScript(this.GetType(), randomId, script.ToString());
// fix for safari browsers
if (Request.UserAgent.IndexOf("AppleWebKit") > 0)
{
Request.Browser.Adapters.Clear();
}
}
}