'); subMenuHolder = jQuery(".bn-sub-navigation #submenu-" + submenuId); var data = testData[submenuId], hasMain = (typeof data.mainFilters != "undefined" && data.mainFilters.length > 0), hasMore = (typeof data.moreFilters != "undefined" && data.moreFilters.length > 0), hasTrailers = (typeof data.trailers != "undefined" && data.trailers.length > 0); // main filters empty if(!hasMain) return; // TPL var tpl = '', createLink = function(lable, url){ return '' + lable + ''; }, createTrailer = function(trailer){ return '
' + '
' + '
' + '' + '' + '' + '
' + '
' + '' + trailer.text + '' + '
' + '
' + '
'; }, createBanner = function(targeting){ var tg = (targeting) ? 'data-targeting=\'' + JSON.stringify(targeting) + '\'' : ''; var banner_html = '
' + '
' + '
'; banner_html += '
'; return banner_html; }, createMain = function(){ if(!hasMain) return ''; var result = '
'; // create filter list result += '
'; for(var i in data.mainFilters) { if(!data.mainFilters.hasOwnProperty(i)) continue; var item = data.mainFilters[i]; if(item.is_visible == 1){ result += createLink(item.label, item.url,item.is_visible); } } if(hasMore) result += 'more'; result += '
'; // end filter list // create trailers if(hasTrailers) { for(var i1 in data.trailers) { if(!data.trailers.hasOwnProperty(i1)) continue; if(i1 == 2) { result += createBanner(data.targeting); } var trailer = data.trailers[i1]; result += createTrailer(trailer); } } // end trailers result += '
'; result += '
'; return result; }, createExtra = function(){ if(!hasMore) return ''; var result = '
'; for(var i in data.moreFilters) { if(!data.moreFilters.hasOwnProperty(i)) continue; var item = data.moreFilters[i]; if(item.is_visible == 1) { result += createLink(item.label, item.url); } } result += '
'; result += '
'; return result; }; tpl += createMain(); if(hasMore) tpl += createExtra(); subMenuHolder.html(tpl); // more button jQuery("#submenu-" + submenuId + " .sub-more").on('click', function() { var t = jQuery(this); var extra = jQuery('#submenu-' + submenuId + ' .sub-col-extra'); t.toggleClass('active'); extra.toggleClass('active'); return false; }); } jQuery('.bn-sub-navigation #submenu-' + submenuId + ' .sub-col-extra').removeClass('active'); jQuery('.bn-sub-navigation #submenu-' + submenuId + ' .sub-more').removeClass('active'); subMenu.show(); subMenuHolder.show(); }; window.updateSubMenuPosition = function(){ mainMenuEndPoint = topNav.position(); mainMenuHeight = topNav.outerHeight(); subMenu.css('position', 'absolute'); subMenu.css('top', mainMenuEndPoint.top + mainMenuHeight); }; //init scroll control var locationPath = document.location.pathname.split('/'); if(locationPath[1] != 'admin') { var block = jQuery('#one-line-nav-block'), navBar = jQuery('#nav-bar'), navLoginButtons = jQuery('#nav-login-buttons'), searchBar = jQuery('.top-nav .search-bar'), scrollPosition = jQuery(window).scrollTop(), windowWidth = jQuery(window).width(), topNav = jQuery(".top-nav"), subMenu = jQuery(".bn-sub-navigation"), subMenuIsDev = false, timeoutHideMenuTime = 300, timeoutHideMenu; block.find('.centered').append(navBar.clone()); block.find('.one-line-nav').append(navLoginButtons.clone()); block.find('.one-line-nav').append(searchBar.clone()); // // sub menu // var mainMenuEndPoint = topNav.position(), mainMenuHeight = topNav.outerHeight(); // subMenu.css('position', 'absolute'); // subMenu.css('top', mainMenuEndPoint.top + mainMenuHeight); window.updateSubMenuPosition(); if(subMenuIsDev) subMenu.addClass('active'); // add arrows jQuery('.with-submenu').append(''); if(windowWidth > 1024) { var openedSubMenuId; jQuery('.b-nav-new a[data-submenu]').hover(function(){ clearTimeout(timeoutHideMenu); var t = jQuery(this), subMenuId = t.data('submenu'); // createSubMenu generateSubmenu(subMenuId); if(t.parents('.one-line-nav').length === 0) window.updateSubMenuPosition(); jQuery('.b-nav-new a[data-submenu=' + openedSubMenuId + ']').removeClass('opened'); openedSubMenuId = subMenuId; jQuery('.b-nav-new a[data-submenu=' + openedSubMenuId + ']').addClass('opened'); subMenu.addClass('active'); // window.updateSubMenuPosition(); if(typeof window.bannerClass !== 'undefined') window.bannerClass.findAndInit(); }, function(){ timeoutHideMenu = setTimeout(function(){ if(!subMenuIsDev) { subMenu.removeClass('active'); subMenu.hide(); jQuery('.b-nav-new a[data-submenu=' + openedSubMenuId + ']').removeClass('opened'); } },timeoutHideMenuTime); }); subMenu.hover(function(){ clearTimeout(timeoutHideMenu); },function(){ timeoutHideMenu = setTimeout(function(){ if(!subMenuIsDev) { subMenu.removeClass('active'); subMenu.hide(); jQuery('.b-nav-new a[data-submenu=' + openedSubMenuId + ']').removeClass('opened'); } },timeoutHideMenuTime); }); } // mobile submenu else { jQuery(document).on('click touchend', '.with-submenu .mobile-arrow', function(){ var t = jQuery(this), li = jQuery(t.parent()), nav = t.parents('.b-nav-new'); if(!li.hasClass('opened')) { var opened = jQuery('.with-submenu.opened', nav); if(opened.length > 0) { jQuery('.b-nav-new .nav-list li a.disabled').removeClass('disabled'); opened.removeClass('opened'); } li.addClass("opened"); jQuery('.b-nav-new .nav-list>li[class!="with-submenu opened"] a[class!="mobile-arrow"]').addClass('disabled'); } else { jQuery('.b-nav-new .nav-list li a.disabled').removeClass('disabled'); li.removeClass('opened'); } return false; }); } // // end sub menu // scrollControl(windowWidth, scrollPosition, block, subMenu, topNav); jQuery(window).scroll(function () { var scrollPosition = jQuery(window).scrollTop(), windowWidth = jQuery(window).width(); scrollControl(windowWidth, scrollPosition, block, subMenu, topNav); }); jQuery(window).resize(function(){ var windowWidth = jQuery(window).width(); if(windowWidth < 1025) { if(block.hasClass("active")) { block.removeClass("active"); block.hide(); } if(subMenu.hasClass("active")) subMenu.removeClass("active"); } }); } }); jQuery(document).ready(function() { //notification display message // + set a localstorage to display only once //check if it is IOS or not var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform); if (iOS) { //hide the notification for IOS user SINCE it is still does not support Web push. jQuery("#notification-button-mobile").hide(); } if (Modernizr.localstorage) { var countNotification = localStorage.getItem('countNotification'); if (countNotification === null) { countNotification = 0; } if (countNotification <= 1 ){ setTimeout(function() { jQuery("#notification-button-mobile").attr('data-balloon-visible',''); setTimeout(function() { jQuery("#notification-button-mobile").removeAttr('data-balloon-visible'); }, 12000); },2000 ); setTimeout(function() { jQuery("#notification-button").attr('data-balloon-visible',''); setTimeout(function() { jQuery("#notification-button").removeAttr('data-balloon-visible'); }, 12000); },2000 ); } countNotification++; localStorage.setItem('countNotification',countNotification); } else { //Find a alternative solution maybe a Variable. // i dont provide support for notification for old browser though one solution is to use cookies but this would affect speed and this is a BETA test. } });
Get the Best of London Life, Culture and Style
By entering my email I agree to the CultureWhisper Privacy Policy (we won`t share data & you can unsubscribe anytime).
Things to do
ThisGordon Ramsayrecipe forDuck with Orange and Cranberry Sauce will impress guests this Christmas. Complete the mealwith creamed Cabbage and Thyme, and delicious parsnip purée, for a seasonal feast.
Traditional Christmas recipe: Pan-fried Duck Breast
Duck and cranberry are a traditional Christmas combination, but Gordon Ramsay's recipe for Pan-fried Duck Breast with Orange and Cranberry Sauce is a sophisticated treat this yuletide. Round off the meal with delicious accompaniments ofparsnip purée and creamed cabbage with thyme.
PAN-FRIED DUCK BREAST WITH SPICED ORANGE AND CRANBERRY SAUCE
This is an elegant main course, perfect for a dinner party over the festive period. I would recommend buying either Gressingham or Barbary duck breasts – both breeds are prized for their superlative flavour. For convenience, the sauce can be made in advance and reheated just before serving.
INGREDIENTS: 4 duck breasts, about 225g each 4 juniper berries pinch of caraway seeds 1 tsp allspice sea salt and freshly ground black pepper 100ml ruby port 100g fresh cranberries finely grated zest and juice of 1 orange ó cinnamon stick 1 star anise 300ml chicken stock 1–2 tsp cranberry or redcurrant jelly, to taste 30g butter, diced
serves 4
Spiced orange and cranberry sauce:
METHOD:
Lightly score the skins of the duck breasts with a sharp knife. Using a pestle and mortar, grind the juniper berries, caraway seeds, allspice, 1 tsp salt and a few grinds of pepper to a powder. Rub the spice mix all over the duck breasts and leave to stand for about 10 minutes.Lay the duck breasts, skin side down, in a dry heavy-based large frying pan and gradually turn up the heat. Fry for 5–10 minutes, until most of the fat has rendered and the skin is golden brown.Turn the duck breasts over and lightly brown the other side for a couple of minutes, or until they feel slightly springy when pressed. Remove from the pan and leave to rest in a warm place while you make the sauce.
For the sauce, pour off excess fat from the frying pan and place over a high heat. Pour in the port, stirring to deglaze, and let bubble for a minute. Add the remaining ingredients, except the butter, and bring to the boil. Let bubble until the liquid has reduced by two-thirds and thickened to a syrupy consistency. The cranberries should be very soft; squash a few with a wooden spoon, leaving the others whole. Add any juices from the resting duck. Taste and adjust the seasoning and add a little more jelly if desired. Finally, add the butter and shake the pan to incorporate it as it melts.
Slice the duck breasts on the diagonal and fan them out on warmed serving plates. Spoon the sauce around the duck and serve with parsnip purée and creamed cabbage with thyme (see below) if you like.
75g butter sea salt and freshly ground black pepper 200ml double cream
PARSNIP PURÉE
serves 8
INGREDIENTS:
1kg parsnips, about 8–10 large ones
METHOD:
Peel and cut the parsnips into roughly even dice. Melt the butter in a saucepan over a low heat and add the parsnips with some salt and pepper. Give them a stir, then cover and sweat gently for about 20 minutes, stirring occasionally, until they are very soft and you can squash them with a wooden spoon. Pour in the cream and bring to the boil.Immediately tip the contents of the pan into a blender or food processor and whiz to a smooth purée. Check the seasoning. Return to the pan, ready to reheat to serve.
CREAMED CABBAGE WITH THYME
serves 8
INGREDIENTS:
50g butter
1 large garlic clove, peeled and crushed
few thyme sprigs, leaves only
1 large or 2 small Savoy cabbage(s), finely shredded
200ml vegetable stock or water
90 ml double cream
METHOD:
Melt the butter in a large pan and add the garlic and thyme leaves. Fry for 30 seconds, then stir in the shredded cabbage. Sauté for about 5 minutes until the cabbage starts to wilt.Pour in the stock or water and simmer for about 5 minutes, until the liquid has evaporated and the cabbage is tender. Stir in the cream. Transfer to a warmed bowl to serve.
Recipe extracted fromChristmas with Gordon, by Gordon Ramsay (Quadrille Publishing, Hardback, £15)
You may also like:
- The Seahorse Recipe: Lamb Chops with Salsa Verde
- Halloween Recipe: Pumpkin Tartlets with Sage and Thyme
- Kelis Recipes: Beef Sliders