SPF5450-12K SuperPro Universal 12mm Anti-Roll Bar Bush and Bracket Kit

SuperPro SPF5450-12K SuperPro Universal 12mm Anti-Roll Bar Bush and Bracket Kit

RRP: £67.50

£58.99 inc VAT (£49.16 + VAT)

SPF5450-12K SuperPro Universal 12mm Anti-Roll Bar Bush and Bracket Kit

// Picture element HTML5 shiv
document.createElement( “picture” );

×

#motulNav.overlay {
background-color: #000;
}
#motulNav.overlay a {
color: #ffffff;
}
#motulNav.overlay a:hover {
color: #ec2027;
}
.motul-menu {
background-color: #000;
background-image:url(images/suppliers/Motul/menu-bg.jpg);
background-position: bottom right;
background-size: 100%;
background-repeat:no-repeat;
padding-bottom: 50vh;
}
.motul-menu h1 {
border-bottom-color: #ec2027;
margin: 20px 0;
}
.motul-menu h2 {
margin: 20px 0;
}
.motul-menu ul {
font-family: ‘Oswald’, sans-serif;
list-style: none; /* Remove default bullets */
}
.motul-menu ul li::before {
color: #ec2027;
content: “2022”; /* Add content: 2022 is the CSS Code/unicode for a bullet */
font-weight: bold; /* If you want it to be bold */
display: inline-block; /* Needed to add space between the bullet and the text */
width: 1em; /* Also needed for space (tweak if needed) */
margin-left: -1em; /* Also needed for space (tweak if needed) */
}
.motul-menu ul li {
margin: 20px 0 0 0;
font-weight: 300;
}
#motulNav.overlay .motul-menu ul li a {
line-height: 1;
font-size: 120%;
display: inline-block;
transition: all 0.12s ease 0s;
}
#motulNav.overlay .motul-menu ul li a:hover, .motul-menu ul li a:active {
background-color: #ec2027;
color: #fff;
}
.motul-menu ul li ul {
margin: 0 auto;
}
.motul-menu ul li ul li {
margin: 0 auto;
padding: 0;
}
.motul-menu ul li ul li:last-child {
margin-bottom: 10px;
}

Motul

We are now a top-tier distributor of Motul products in the UK.

Motul offers you all you need as a good full-range supplier: mineral-based oils, semi-synthetic and 100% synthetic oils, ester-based racing oils, special oils and gear oils, to ensure you always have the right oil for each specific engine. Motul also covers all manufacturer requirements.

  • Additives Range

  • Car Care

  • Cleaning and Polishing

  • Clothing & Merch

  • Fluids, Oils and Lubes

  • Air Intake Cleaner

  • Brake Cleaner

  • Brake Fluids

  • Ceramic Grease

  • Coolants and Anti-Freeze

  • Cooling System Additives & Flushes

  • Radiator Cleaners

  • Stop Radiator Leaks

  • Emission Reduction Kits

  • Engine Oil Additives and Flushes

  • Engine Cleaner / Flush

  • Hydraulic Valve Lifter Care

  • Stop Oil Leaks

  • Engine Oils

  • By Viscosity
  • 0W-12
  • 0W-15
  • 0W-16
  • 0W-20
  • 0W-30
  • 0W-40
  • 0W-8
  • 10W-30
  • 10W-40
  • 10W-50
  • 10W-60
  • 15W-40
  • 15W-50
  • 20W-50
  • 20W-60
  • 5W-20
  • 5W-30
  • 5W-40
  • 5W-50
  • 5W-60
  • 75W-140
  • SAE 30
  • SAE 40
  • SAE 50
  • SAE 90
  • By Manufacturer Approval
  • Abarth
  • 0101
  • BMW
  • LL-01
  • LL-04
  • LL-12 FE
  • LL-17 FE+
  • Daimler
  • MB 226.5
  • MB 229.3
  • MB 229.5
  • MB 229.51
  • MB 229.52
  • MB 229.71
  • MB 229.1
  • MB 236.9
  • MB 236.14
  • MB 236.15
  • Ford
  • WSS M2C 913-D
  • WSS M2C 934-B
  • WSS M2C 937-A
  • WSS M2C 948-B
  • WSS M2C 950-A
  • WSS M2C 931-C
  • Jaguar / Land Rover
  • STJLR.03.5003
  • STJLR.03.5004
  • STJLR.03.5005
  • STJLR.03.5006
  • STJLR.51.5122
  • STJLR.03.5007
  • Opel / General Motors
  • GM dexos 2â„¢
  • GM dexos 1â„¢ Gen 2
  • OV 0401547
  • Porsche
  • A40
  • C20
  • C30
  • C40
  • PSA-Group (Peugeot, Citroen and DS)
  • B71 2290
  • B71 2312
  • Renault
  • RN0700
  • RN0710
  • RN0720
  • RN17FE
  • Volkswagen
  • VW 501 01
  • VW 502 00
  • VW 504 00
  • VW 505 00
  • VW 508 00 – VW 509 00
  • VW 511 00
  • Volvo
  • VCC 95200377
  • VCC RBS0-2AE
  • VCC 95200356
  • 300V

  • 4000 & 2000

  • 4100 & 2100

  • 6100

  • 8100

  • 8100 Power

  • Classic Cars

  • Hybrid

  • LCV

  • NGEN Bio-Sourced Oil

  • Nismo Competition Oil

  • Oil Analysis Kit

  • Specific

  • Sport

  • Fuel Additives and Flushes

  • DFP Cleaners

  • Fuel Stabilisers

  • Fuel System Cleaners

  • Lead Substitute

  • Octane / Cetane Booster

  • Gear / Transmission Additives and Flushes

  • Gear Oil / Transmission Fluid

  • Automatic Transmission Fluid

  • CVT Fluid

  • Dual-Clutch Transmission Fluid

  • Limited-Slip Differential Oil

  • Mechanical Transmission

  • Nismo

  • Oil Analysis Kit

  • Racing Cars

  • Greases

  • Hydraulic Fluid

  • Oil Analysis Kit

  • Threadlocker

  • Throttle Body Cleaner

  • Windscreen Washer Fluid

  • Motorcycle Products

  • 300V Factory Line Racing

  • Chain Cleaner

  • Chain Lube

  • Workshop Supplies

  • Workshop Tools

  • Parts Washing / Washers

  • Favourites

    18

    Mods4U

    My Account | Settings | Sign Out

  • Vehicle Search
  • Bilstein
  • GFB
  • H&R
  • Powerflex
  • Motul
  • Milltek
  • ITG
  • Febest
  • Probite
  • Universal
  • Clearance
  • Downloads
  • Home
  • Vehicle Search
  • Bilstein
  • Powerflex
  • GFB (Go Fast Bits)
  • H&R
  • Motul
  • Milltek Sport
  • ITG
  • Febest OEM
  • Probite Brakes
  • Tube, Link and Bush Finder
  • Other Brands
  • Universal Products
  • Clearance
  • Videos
  • Latest News
  • Frequently Asked Questions
  • Price List & Media Files
  • Contact Us
  • My Account
  • Settings
  • Log Out
  • Search

    section.tabs {
    border-left: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
    padding: 20px !important;
    }
    .frm-add-to-basket {
    margin-top: 0 !important;
    }
    .key, .value {
    width: 48%;
    float: left;
    font-weight: bold;
    font-size: 120%;
    line-height: 1.3;
    }
    .key {
    text-align: right;
    margin-right: 4%;
    clear: left;
    }

    .spacer {
    width: 100px;
    height: 20px;
    clear: both;
    }
    .spacer.half {
    height: 10px;
    }
    .quantity-divider {
    width: 70%;
    height: 1px;
    background: #ccc;
    margin: 15px auto 0px auto;
    clear: both;
    }
    .quantity-divider.lighter {
    background: #dfdfdf;
    }
    .quantity {
    outline-color: #719ECE;
    }
    .key.case, .value.case {
    font-size: 100%;
    }
    .key.case {
    font-weight: normal;
    }
    .pricingMessageContainer{
    margin-bottom: 30px;
    }
    .pricingMessageContainer, .stockMessageContainer {
    padding: 0 0 0 0;
    clear: both;
    }
    .pricingMessageContainer {
    margin-bottom: 10px;
    }
    .subtotalContainer, .pricingTitleContainer {
    width: 100%;
    clear: both;
    text-align: center;
    }
    .suggestionContainer {
    width: 100%;
    clear: both;
    }
    .suggestionContainerInner {
    margin-top: 20px;
    padding: 30px;
    text-align: center;
    border: 3px dashed #78af2d;
    }
    .subtotalContainer h3, .pricingTitleContainer h3 {
    font-weight: 200;
    text-transform: uppercase;
    border-bottom: 1px solid #ff3200;
    display: inline-block;
    clear: both;
    line-height: normal;
    }
    .txtSmaller {
    font-size: 80% !important;
    }
    .txtInitial {
    color: initial;
    }

    SPF5450-12K

    SuperPro Universal 12mm Anti-Roll Bar Bush and Bracket Kit

    2 Brightened Zinc Brackets and 2 SuperPro bushes designed to suit a 12mm Anti-Roll Bar.

    Comes complete with SuperPro bushing grease for assembly and long service life. The SuperPro bushes feature their advanced internal knurling which reduces the surface area of polyurethane in contact with the anti-roll bar. This reduction in surface area results in less frictional forces being developed. The SuperPro knurl bore keeps the lubricating grease intact for the life of the bushing, and eliminates the necessity for periodic re-greasing.

    The brackets use slots to allow for a wider range of fitments and tolerances.

    Stock Details:
    Country of Origin: AUEAN: 5056488917984
    Immediate Stock On Hand: 3
    Secondary Stock on Hand: 0 (Normally within 24 hours)

    Other Similar Parts:

  • SPF5450-13K
  • SPF5450-14K
  • SPF5450-15K
  • SPF5450-16K
  • SPF5450-17K
  • SPF5450-18K
  • SPF5450-19K
  • SPF5450-19KFP
  • SPF5450-20K
  • SPF5450-21K
  • SPF5450-22K
  • SPF5450-22KFP
  • SPF5450-23K
  • SPF5450-24K
  • SPF5450-25K
  • SPF5450-25KFP
  • SPF5450-26K
  • SPF5450-27K
  • SPF5450-28K
  • SPF5450-29K
  • SPF5450-30K
  • By

    Add to Basket

    QUANTITY

    +

    .fullwidth {
    width: 100% !important;
    max-width: 2048px;
    }

    .home-feature-container-outer {
    background: #f5f5f5;
    padding: 5px;
    display: flex;
    justify-content: center;
    clear: both;
    }

    .home-feature-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, 1fr);
    grid-column-gap: 5px;
    grid-row-gap: 5px;
    }

    .home-feature-container > img {
    aspect-ratio: 16/9;
    object-fit: cover;
    }

    .feature1 { grid-area: 1 / 1 / 2 / 2; }
    .feature2 { grid-area: 1 / 2 / 2 / 3; }
    .feature3 { grid-area: 2 / 1 / 3 / 2; }
    .feature4 { grid-area: 2 / 2 / 3 / 3; }
    .feature5 { grid-area: 3 / 1 / 4 / 2; }
    .feature6 { grid-area: 3 / 2 / 4 / 3; }

    @media only screen and (min-width: 1024px) {

    .home-feature-container-outer {
    padding: 0;
    }

    .home-feature-container {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: 1fr auto;
    grid-column-gap: 10px;
    grid-row-gap: 10px;
    }

    .feature1 { grid-area: 1 / 1 / 2 / 2; }
    .feature2 { grid-area: 1 / 2 / 2 / 3; }
    .feature3 { grid-area: 1 / 3 / 2 / 4; }
    .feature4 { grid-area: 1 / 4 / 2 / 5; }
    .feature5 { grid-area: 2 / 1 / 3 / 3; }
    .feature6 { grid-area: 2 / 3 / 3 / 5; }

    }

    About Octane Distribution

  • About Us
  • News
  • Videos
  • Latest Photos
  • Frequently Asked Questions
  • Contact Us
  • Returns Policy
  • Terms and Conditions of Sale
  • Data Protection Policy (GDPR)
  • Website Privacy Policy
  • Specialisms

  • Go Fast Bits
  • Bilstein Suspension
  • Motul
  • Powerflex Bushes
  • Probite Brakes
  • ITG Filters
  • Febest
  • Universal Products
  • OEM+ Front Control Arm Kits
  • Other Brands
  • © Copyright 2005-2025, Octane Distribution Ltd. All Rights Reserved.

    Back to Top

    // Add a script element as a child of the body
    function downloadJSAtOnload() {
    var element = document.createElement(“script”);
    element.src = “js/respond.min.js”;
    document.body.appendChild(element);
    }

    // Check for browser support of event handling capability
    if (window.addEventListener)
    window.addEventListener(“load”, downloadJSAtOnload, false);
    else if (window.attachEvent)
    window.attachEvent(“onload”, downloadJSAtOnload);
    else window.onload = downloadJSAtOnload;

    window.jQuery || document.write(”)

    $(document).ready(function(){

    // other models drop down menu

    function openothermodelsmenu() {
    $(“.downarrow,#model-list”).addClass(“open”);
    }
    function closeothermodelsmenu() {
    $(“.downarrow,#model-list”).removeClass(“open”);
    }

    $(“.h1-logo”).click(function(e) {
    //e.preventDefault();
    if ( $(“.downarrow”).hasClass(“open”) ) {
    closeothermodelsmenu();
    }
    else {
    openothermodelsmenu();
    }
    });

    // notification area (if needed)

    // *************
    // SEARCH V2
    // *************

    // constructs the suggestion engine
    var makes = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace(‘label’,’description1′,’description2′,’keywords’),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    // `states` is an array of state names defined in “The Basics”
    //local: makes,
    //sufficient: 100,
    //prefetch: ‘json/best-sellers.json’,
    //prefetch: ‘json/predicted.results.json’,
    remote: {
    //url: ‘https://www.beta.superproeurope.com/trade2/ajax/search.results.cfm?q=%QUERY’,
    url: ‘https://api.superproeurope.com/rest/SuperProAPI/search/globalElasticSearch.json?keyword=%QUERY’,
    wildcard: ‘%QUERY’
    }
    });

    var oem = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace(‘label’,’description1′,’keywords’),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    // `states` is an array of state names defined in “The Basics”
    //local: makes,
    //sufficient: 100,
    //prefetch: ‘json/best-sellers.json’,
    //prefetch: ‘json/predicted.results.json’,
    remote: {
    //url: ‘https://www.beta.superproeurope.com/trade2/ajax/search.results.cfm?q=%QUERY’,
    url: ‘https://api.superproeurope.com/rest/SuperProAPI/search/globalElasticSearch.json?keyword=%QUERY’,
    wildcard: ‘%QUERY’
    }
    });

    var myTypeahead = $(‘#bloodhound .typeahead’).typeahead({
    hint: true,
    highlight: true,
    minLength: 1
    },
    {
    name: ‘makes’,
    display: ‘label’,
    source: makes,
    limit: 20,
    //limit: 5, /* This is disabled because it seemed to affect the results being returned if set higher than 5! */
    templates: {
    empty: [
    ”,
    ‘No results found’,

    ].join(‘n’),
    //suggestion: Handlebars.compile(‘{{make}} – {{makeid}}’)
    suggestion: function(data) {
    if(data._source.resultimage==”) {
    resultimage=’https://d365pjkgt5rd4j.cloudfront.net/images/products/default.jpg’;
    }
    else if(data._source.resultimage.substring(0,8)==”https://”) {
    resultimage=data._source.resultimage;
    }
    else {
    resultimage=’https://d365pjkgt5rd4j.cloudfront.net/images/’+data._source.resultimage;
    }

    visiblelabel=data._source.label + ‘: ‘ + data._source.description1;

    return ” + visiblelabel +” + data._source.resultimage + data._source.resulttype + ”;
    }
    }
    });

    var OEMTypeahead = $(‘#oemSearchContainer .oemsearch’).typeahead({
    hint: true,
    highlight: true,
    minLength: 3
    },
    {
    name: ‘oem’,
    display: ‘label’,
    source: oem,
    limit: 20,
    //limit: 5, /* This is disabled because it seemed to affect the results being returned if set higher than 5! */
    templates: {
    empty: [
    ”,
    ‘No results found’,

    ].join(‘n’),
    //suggestion: Handlebars.compile(‘{{make}} – {{makeid}}’)
    suggestion: function(data) {
    if(data.resultimage==”) {
    resultimage=’https://d365pjkgt5rd4j.cloudfront.net/images/products/default.jpg’;
    }
    else if(data.resultimage.substring(0,8)==”https://”) {
    resultimage=data.resultimage;
    }
    else {
    resultimage=’https://d365pjkgt5rd4j.cloudfront.net/images/’+data.resultimage;
    }

    visiblelabel=data.label + ‘ ‘ + data.description1 + ‘ ‘ + data.description2;

    return ” + visiblelabel +” + data.resultimage + data.resulttype + ”;
    }
    }
    });

    // Attach initialized event to it
    myTypeahead.on(‘typeahead:selected’,function(evt,data){

    data=data._source;

    // what to do?
    if(data.resulttype == ‘Part’) {
    window.location.href = “part.number.cfm?partnumber=” + encodeURI(data.value);
    }
    else if(data.resulttype == ‘GFBPart’) {
    window.location.href = “gfb.part.number.cfm?partnumber=” + encodeURI(data.value);
    }
    else if(data.resulttype == ‘FebestPart’) {
    window.location.href = “febest.part.number.cfm?partnumber=” + encodeURI(data.value);
    }
    else if(data.resulttype == ‘ITGPart’) {
    window.location.href = “itg.part.number.cfm?partnumber=” + encodeURI(data.value);
    }
    else if(data.resulttype == ‘Vehicle’) {
    window.location.href = “products.cfm?vehicleid=” + encodeURI(data.value);
    }
    else if(data.resulttype == ‘Page’ || data.resulttype == ‘Pages’) {
    window.location.href = encodeURI(data.value);
    }
    else if(data.resulttype == ‘Brands’) {
    window.location.href = “brand.cfm?brandid=” + encodeURI(data.value);
    }
    else if(data.resulttype==”News”) {
    window.location.href = “news.read.cfm?articleid=” + encodeURI(data.value);
    }
    else if(data.resulttype==”Make”) {
    window.location.href = “products.by.make.cfm?makeid=” + encodeURI(data.value);
    }
    else if(data.resulttype==”Model”) {
    window.location.href = “products.by.model.cfm?modelid=” + encodeURI(data.value);
    }
    else if(data.resulttype==”Video”) {
    window.location.href = “video.watch.cfm?videoid=” + encodeURI(data.value);
    }
    else if(data.resulttype==”DENIED”) {
    window.location.href = “index.cfm”;
    }
    else {
    alert(‘Something else was selected’);
    };

    return false;

    });

    // reload current page function
    function reloadCurrentPage() {
    location.reload(true); // parameter true means refresh from server not cache
    }

    function getHeights() {
    var window_height = ($(window).height());
    var footer_height = ($(“#footer”).outerHeight());

    // if the height of the page is less than the height of the content then make the footer position absolute bottom and add approrpiate margin
    if(window_height > $(“body”).outerHeight()) {
    $(“#footer”).css({
    “position”:”absolute”,
    “bottom”:0,
    “left”:0
    });
    $(“body”).css({
    “margin-bottom”:footer_height+”px”});
    }

    }

    // after load
    var window_width_start = $(window).width(); // save width of screen
    getHeights();

    $(document).on(“click”, “.open-ajax-notification”, function(e) {
    e.preventDefault();
    $.magnificPopup.open({
    items: {
    src: $(this).attr(‘href’)
    },
    type: ‘iframe’,
    closeBtnInside: true,
    alignTop: true,
    overflowY: ‘scroll’, // as we know that popup content is tall we set scroll overflow by default to avoid jump,
    callbacks: {
    close: function() {
    // Will fire when popup is closed
    isNotificationSet(‘SPF5450-12K’).done(function(data) {
    if(data.trim() == ‘false’) {
    var notificationButtonText=’Notify Me’;
    }
    else {
    var notificationButtonText=’Cancel Notification’;
    }
    $(“#stockNotification”).html(“” + notificationButtonText + “”);
    });
    }
    }
    })
    });

    function isNotificationSet(partNumber) {

    return $.ajax({
    url: ‘ajax/back.in.stock.notification.check.cfm?partnumber=’ + partNumber,
    type: ‘GET’,
    async: true,
    success: function(data){
    //console.log(data);
    },
    close: function() {
    alert(‘Closed’);
    }
    });

    }

    // now call the function
    isNotificationSet(‘SPF5450-12K’).done(function(data) {
    if(data.trim() == ‘false’) {
    var notificationButtonText=’Notify Me’;
    }
    else {
    var notificationButtonText=’Cancel Notification’;
    }
    $(“#stockNotification”).html(“” + notificationButtonText + “”);
    });

    // NEWS LAYOUT

    // RESIZE
    $(window).resize(function() { // stops window.resize firing multiple times during resize event

    if(window_width_start!==$(window).width()) { // only fires if the width has changed
    getHeights();
    window_width_start = $(window).width(); // we know window has been resized so reset the global window width variable
    //$(“#mobilenav”).removeClass(“open”); // closes the mobile menu if it’s open
    closeMobileMainMenu() // close the mobile nav menu if it’s open
    enableMainScroll();

    }

    });

    // VEHICLE MENU
    $(‘.grid’).masonry({
    itemSelector: ‘.grid-item’,
    percentPosition: true,
    columnWidth: 10,
    fitWidth: true,
    isAnimated: false,
    layoutPriorities: {
    shelfOrder: 2
    },
    });

    // FULL SCREEN MENU

    // disable scroll bars when opening the products menu
    function disableMainScroll() {
    if ($(document).height() > $(window).height()) {
    var scrollTop = ($(‘html’).scrollTop()) ? $(‘html’).scrollTop() : $(‘body’).scrollTop(); // Works for Chrome, Firefox, IE…
    $(‘html’).addClass(‘noscroll’).css(‘top’,-scrollTop);
    }
    }

    // re-enable scroll bars when closing the products menu
    function enableMainScroll() {
    var scrollTop = parseInt($(‘html’).css(‘top’));
    $(‘html’).removeClass(‘noscroll’).css(“top”, 0);
    $(‘html,body’).scrollTop(-scrollTop);
    }

    // open menu
    function openNav() {
    $(“#fullNav”).css(“height”, “100%”);
    disableMainScroll();
    //$(“body”).addClass(“noscroll”);
    }
    // motul version
    function openMotulNav() {
    $(“#motulNav”).css(“height”, “100%”);
    disableMainScroll();
    //$(“body”).addClass(“noscroll”);
    }

    // close menu
    function closeNav() {
    $(“#fullNav”).css(“height”, “0%”);
    enableMainScroll()
    //$(“body”).removeClass(“noscroll”);
    }
    // motul version
    function closeMotulNav() {
    $(“#motulNav”).css(“height”, “0%”);
    enableMainScroll()
    //$(“body”).removeClass(“noscroll”);
    }

    $(“.productsLnk”).click(function(e) {
    e.preventDefault();
    openNav();
    });
    // motul version
    $(“.motulLnk”).click(function(e) {
    e.preventDefault();
    openMotulNav();
    });
    $(“.closebtn”).click(function(e) {
    e.preventDefault();
    closeNav();
    closeMotulNav();
    });

    // Mobile Search Menu

    // open mobile search panel
    function openMobileSearchPanel() {
    disableMainScroll();
    $(“#search-screen,.menu-search”).addClass(“open”);
    }
    // close mobile search panel
    function closeMobileSearchPanel() {
    enableMainScroll();
    $(“#search-screen,.menu-search”).removeClass(“open”);
    }

    // mobile search
    $(“.menu-search”).click(function(e) {
    e.preventDefault();
    if($(“#search-screen”).hasClass(“open”)) {
    closeMobileSearchPanel();
    }
    else {
    openMobileSearchPanel();
    closeMobileMainMenu(); // make sure we close the main menu if it’s open
    }
    });

    // Mobile Main Menu
    //open mobile main menu
    function openMobileMainMenu() {
    // set mobile menu height to be below the header
    $(“#mobile-menu”).css(“margin-top”, $(“#header”).outerHeight());
    $(“#mobilenav,#mobile-menu-container”).addClass(“open”);
    }
    // close
    function closeMobileMainMenu() {
    // close menu and nav icon
    $(“#mobilenav,#mobile-menu-container”).removeClass(“open”);
    }
    // toggle the above on click
    function toggleMobileNav(navaction) {
    if($(“#mobile-menu-container”).hasClass(“open”)) {
    //enableMainScroll();
    closeMobileMainMenu();
    }
    else {
    //disableMainScroll();
    openMobileMainMenu();
    closeMobileSearchPanel(); // close the search menu if it’s open
    }

    }

    $(“.menu-link”).click(function(e) {
    e.preventDefault();
    toggleMobileNav();
    });

    // listen for the escape key to close any menus (if open)
    $(document).keyup(function(e) {
    if (e.keyCode === 27) { // esc
    closeNav();
    closeMotulNav();
    closeMobileMainMenu();
    closeMobileSearchPanel();
    }
    });

    // VEHICLE SELECTOR
    $(“#modelid”).chained(“#makeid”);

    function getYears(element) {
    if (“” != $(“option:selected”, element).val()) {
    $.ajax({
    type: “POST”,
    url: ‘ajax/vehicle.years.simplified.cfm?’ + $(“option:selected”, element).val() + ‘&vehicleyear=’,
    dataType: “html”,
    success: function(data) {
    // Call this function on success
    //$(“#vehicleyears”).hide().html( data ).fadeIn();
    $(“#vehicleyear”).empty().append(data).prop(“disabled”, false);
    if (“” != $(“option:selected”, $(“#vehicleyear”)).val()) {
    $(“#vehicle-submit”).show();
    }
    return data;
    },
    error: function(xhr, ajaxOptions, thrownError) {
    //alert(‘Error occured’);
    alert(xhr.status);
    alert(thrownError);
    }
    });

    } else {
    $(“#vehicleyear”).prop(“disabled”, true).removeAttr(“selected”).filter(“[value=”]”).prop(“selected”, true);
    $(“#vehicle-submit”).hide();
    }
    }

    // run the year function on load to see if it’s already been pre-selected (browser history)
    getYears($(“#modelid”));

    /* Show button after each pulldown has a value. */
    $(“#modelid”).on(“change”, function(event) {
    getYears(this);
    checkYears(this);
    });

    // once the year has been selected, show the submit button
    $(document).on(“change”, “#vehicleyear”, function(event) {
    checkYears($(“#vehicleyear”));
    });

    // VALIDATE VEHICLE YEAR SELECTION
    function checkYears() {

    if (“” != $(“#vehicleyear”).val() && “” != $(“#modelid”).val()) {

    submiturl=”choose.vehicle.process.cfm?” + $(“option:selected”, $(“#modelid”)).val() + “&vehicleyear=” + $(“option:selected”, $(“#vehicleyear”)).val();

    $(“#vehicleselect”).attr(‘action’, submiturl);
    $(“#vehicle-submit”).show();
    }
    else {
    $(“#vehicle-submit”).hide();
    }
    }

    // END VEHICLE SELECTION

    $(‘.popup-youtube’).magnificPopup({
    type: ‘iframe’,
    mainClass: ‘mfp-fade’,
    preloader: true
    });

    // PRODUCT TABS

    // END: PRODUCT TABS

    // GALLERY

    $(‘.related-parts’).owlCarousel({
    loop:true,
    margin:10,
    autoHeight:true,
    responsiveClass:true,
    responsive:{
    0:{
    items:1,
    nav:false,
    stagePadding: 0
    },
    600:{
    items:1,
    nav:true,
    stagePadding: 0
    },
    1000:{
    items:1,
    nav:true,
    stagePadding: 0,
    }
    }
    });

    setTimeout(function() {
    createGallery();
    });

    function createGallery() {

    var $pswp = $(‘.pswp’)[0];
    var image = [];

    $(‘.demo-gallery’).each( function() {
    var $pic = $(this),
    getItems = function() {
    var items = [];
    $pic.find(‘a.enlarge’).each(function() {
    var $href = $(this).attr(‘href’),
    $size = $(this).data(‘size’).split(‘x’),
    $width = $size[0],
    $height = $size[1],
    $caption = $(this).attr(‘title’);

    //alert($caption);

    var item = {
    src : $href,
    w : $width,
    h : $height,
    title: $caption
    }

    items.push(item);
    });
    return items;
    }

    var items = getItems();

    //alert(JSON.stringify(items));

    $.each(items, function(index, value) {
    image[index] = new Image();
    image[index].src = value[‘src’];
    });

    $pic.on(‘click’, ‘a.enlarge’, function(event) {
    event.preventDefault();

    //var $index = $(this).index();
    //var $index = parseInt($(this).attr(“index”), 10);
    var $index = parseInt($(this).data(‘index’)-1, 10);

    if(!$(this).attr(‘title’)) {
    var $caption=”;
    }
    else {
    var $caption = $(this).attr(‘title’);
    }

    var options = {
    index: $index,
    bgOpacity: 0.98,
    showHideOpacity: true,
    loop: true,
    escKey: true,
    closeOnScroll: false,
    // Function builds caption markup

    getImageCaption: $caption
    }

    var lightBox = new PhotoSwipe($pswp, PhotoSwipeUI_Default, items, options);
    lightBox.init();
    });
    });
    }

    // END GALLERY

    // BASKET FUNCTIONS

    // QUANTITIES (now works for multiple forms on the same page)
    $(‘.numeric’).numeric(); // this keeps the input numeric-only

    var currencySymbol=”£”;
    var addVATRate=1.2;
    var vatExempt=0;
    var rrpOnly=0;
    var brandid=1;
    // set correct minus button action
    function setMinus() {
    // loop all the various quantity fields on the page
    $(“input[name=’quantity’]”).each(function() {
    var submitBtn=$(this).closest(‘form’).find(“input[name=’addtobasket’]”);
    var userMessageContainer=$(this).closest(‘form’).find(“div.userMessageContainer”);
    var pricingMessageContainer=$(this).closest(‘form’).find(“div.pricingMessageContainer”);

    var suggestionMessageContainer=$(this).closest(‘form’).find(“div.suggestionContainer”);

    var selectedQuantityField=$(this);
    var quantity = parseInt(selectedQuantityField.val());
    var currentVal=quantity;
    var minQty=selectedQuantityField.attr(‘min’);
    var maxQty=selectedQuantityField.attr(‘max’);

    var rrp=parseFloat($(this).closest(‘form’).find(“input[name=’unitprice’]”).val()).toFixed(2);
    var caseQuantity=parseInt($(this).closest(‘form’).find(“input[name=’casequantity’]”).val());
    var unitTradePrice=parseFloat($(this).closest(‘form’).find(“input[name=’unittradeprice’]”).val()).toFixed(2);
    var unitTradePriceCase=parseFloat($(this).closest(‘form’).find(“input[name=’unittradepricecase’]”).val()).toFixed(2);

    var numberOfCases=0;
    var numberOfSeparates=quantity;

    var userMessage=””;
    var pricingMessage=””;
    //var pricingMessage=”Pricing”;
    var pricingMessage=pricingMessage+”Unit RRP” + currencySymbol + rrp + ((!vatExempt==1) ? ” (exc VAT)” : “”) + “”;

    // handle + and – buttons
    var minus=selectedQuantityField.closest(‘form’).find(“.minus”);
    var plus=selectedQuantityField.closest(‘form’).find(“.plus”);
    if(typeof maxQty !== typeof undefined && maxQty !== false && maxQty !== ”) {
    // great, there’s a max set. This just stops ordering more than available quantity on pages such as the Clearance lines
    }
    else {
    var maxQty=999999;
    }

    // check min quantity
    if (!isNaN(currentVal) && currentVal > minQty) {
    minus.addClass(“active”);
    }
    else if (!isNaN(currentVal) && currentVal > 1 && currentVal < minQty) { minus.addClass("active"); selectedQuantityField.val(minQty); var currentVal=minQty; var quantity=minQty; userMessage='You must order this product in multiples of ' + minQty + '.'; } else if(currentVal == minQty) { minus.removeClass("active"); } else { selectedQuantityField.val(1); var currentVal=1; var quantity=1; var numberOfSeparates=1; minus.removeClass("active"); } // check max quantity if (!isNaN(currentVal) && currentVal > 1 && currentVal 1 && currentVal > maxQty) {
    minus.addClass(“active”);
    selectedQuantityField.val(maxQty);
    var currentVal=maxQty;
    var quantity=maxQty;
    userMessage=’You can only order a maximum of ‘ + maxQty + ‘ units’;
    }
    else if(!isNaN(currentVal) && currentVal == 1) {
    minus.removeClass(“active”);
    }
    else {
    selectedQuantityField.val(1);
    var currentVal=1;
    var quantity=1;
    var numberOfSeparates=1;
    minus.removeClass(“active”);
    }

    // now see if there’s any issue with the Min Quantity
    if(currentVal == minQty) {
    minus.removeClass(“active”);
    submitBtn.prop(‘disabled’, false);
    }
    else if(currentVal < minQty || currentVal % minQty > 0) {
    userMessage=’You must order this product in multiples of ‘ + minQty + ‘.’;
    submitBtn.prop(‘disabled’, true);
    //selectedQuantityField.val(minQty);
    //var quantity=minQty;
    //minus.removeClass(“active”);
    }
    else {
    submitBtn.prop(‘disabled’, false);
    }

    // now see if there’s any issue with the Max Quantity
    if(currentVal == maxQty) {
    // at maxqty so make it inactive
    plus.removeClass(“active”);
    }
    else if(currentVal > maxQty) {
    userMessage=’You can only order a maximum of ‘ + maxQty + ‘ units’;
    selectedQuantityField.val(maxQty);
    var quantity=maxQty;
    plus.removeClass(“active”);
    }
    else {
    plus.addClass(“active”);
    }

    // write any messages or clear them if needed
    if(userMessage !==”) {
    userMessageContainer.html(userMessage);
    } else {
    userMessageContainer.empty();
    }

    // CREATE PRICING MESSAGE

    if(!vatExempt==1) {
    var pricingMessage=pricingMessage+” ” + currencySymbol + parseFloat((rrp*addVATRate)).toFixed(2) + ((!vatExempt==1) ? ” (inc VAT)” : “”) + “”;
    }

    if(!rrpOnly==1) { // only do this if they want to see RRP and trade pricing
    // quantity divider
    var pricingMessage=pricingMessage + “”;

    // customer’s trade price
    var pricingMessage=pricingMessage+”Unit trade price” + currencySymbol + unitTradePrice + ((!vatExempt==1) ? ” (exc VAT)”:””) + “”;

    var pricingMessage=pricingMessage+”Your margin” + (100-(unitTradePrice/rrp).toFixed(2)*100).toFixed(0) + “%”;

    // handle case rate pricing here
    if(!caseQuantity==0) {

    // quantity divider
    var pricingMessage=pricingMessage + “”;

    var pricingMessage=pricingMessage+”Case unit price” + currencySymbol + unitTradePriceCase + ((!vatExempt==1) ? ” (exc VAT)”:””) + “”;
    var pricingMessage=pricingMessage+”Case quantitymultiples of ” + caseQuantity + “”;
    var pricingMessage=pricingMessage+”Your margin” + (100-(unitTradePriceCase/rrp).toFixed(2)*100).toFixed(0) + “%”;

    // calculate the display of current pricing
    var numberOfCases=(quantity/caseQuantity);
    var numberOfSeparates=quantity-(caseQuantity*Math.floor(numberOfCases));

    // add a message about case rate pricing and what it means
    var suggestionMessage=”Why not add ” + caseQuantity + ” to your basket to take advantage of our case rate pricing.”;

    }
    else {
    var pricingMessage=pricingMessage+””;
    }

    // output pricing subtotal details
    //var pricingMessage=pricingMessage + “Cases: ” + numberOfCases + “Separates: ” + numberOfSeparates;

    // quantity divider
    var pricingMessage=pricingMessage + “Subtotal”;

    //if(numberOfSeparates >= 1) {
    if(numberOfSeparates==1) {
    var plural=””;
    }
    else {
    var plural=”s”;
    }
    var pricingMessage=pricingMessage + “” + numberOfSeparates + ” unit” + plural + ” at” + currencySymbol + unitTradePrice + “”;
    //}

    if(numberOfCases >= 1) {
    var pricingMessage=pricingMessage + “” + (Math.floor(numberOfCases)*caseQuantity) + ” units at” + currencySymbol + unitTradePriceCase + ” (case rate)”;
    }
    else {
    if(!caseQuantity==0) {
    var pricingMessage=pricingMessage + “0 units at” + currencySymbol + unitTradePriceCase + ” (case rate)”;
    }
    }

    // SUBTOTAL
    // separates subtotal
    if(numberOfSeparates>=1) {
    var separatesSubTotal=(numberOfSeparates*unitTradePrice).toFixed(2);
    }
    else {
    var separatesSubTotal=0.00;
    }
    // case subtotal
    if(numberOfCases>=1) {
    var casesSubTotal=((Math.floor(numberOfCases)*caseQuantity)*unitTradePriceCase).toFixed(2);
    }
    else {
    var casesSubTotal=0.00;
    }
    // add the two
    var subTotal=(+separatesSubTotal+ +casesSubTotal).toFixed(2);

    var pricingMessage=pricingMessage + “=” + currencySymbol + subTotal + ((!vatExempt==1) ? ” (exc VAT)” : “”) + “”;

    // quantity divider
    var pricingMessage=pricingMessage + “”;

    } // end of conditional rrpOnly clause
    else {
    // this is to add an RRP subtotal section
    var subTotal=(+quantity * rrp).toFixed(2);
    var pricingMessage=pricingMessage + “Subtotal”;
    var pricingMessage=pricingMessage + “RRP” + currencySymbol + subTotal + ((!vatExempt==1) ? ” (exc VAT)” : “”) + “”;
    if(!vatExempt==1) {
    var pricingMessage=pricingMessage + “RRP” + currencySymbol + (subTotal*addVATRate).toFixed(2) + ” (inc VAT)”;
    }
    }

    // pricing details
    pricingMessageContainer.html(pricingMessage);
    suggestionMessageContainer.html(suggestionMessage);

    });

    } // end setMinus

    $(document).on(“change”, “.quantity”, function(e) {
    setMinus();
    });

    /*
    $(document).on(“change”, “.quantity”, function(e) {
    e.preventDefault();
    setMinus();
    console.log(‘here’);
    var selectedQuantityField=$(this).closest(‘form’).find(“input[name=’quantity’]”);
    var userMessageContainer=$(this).closest(‘form’).find(“div.userMessageContainer”);
    var userMessage=”;
    var quantity = parseInt(selectedQuantityField.val());
    var maxQty=selectedQuantityField.attr(‘max’);
    if(typeof maxQty !== typeof undefined && maxQty !== false && maxQty !== ”) {
    // great, there’s a max set. This just stops ordering more than available quantity on pages such as the Clearance lines
    }
    else {
    var maxQty=999999;
    }
    userMessage=’Quantity: ‘ + quantity + ‘nMax qty: ‘ + maxQty;

    if(quantity < 1) { userMessage='You must enter a value greater than 0 (zero)'; } else if(quantity > maxQty) {
    userMessage=’You can only order a maximum of ‘ + maxQty + ‘ units’;
    }

    if(userMessage !==”) {
    userMessageContainer.html(userMessage);
    }

    })
    */

    // This button will increment the value
    $(‘.plus’).click(function(e){
    // Stop acting like a button
    e.preventDefault();
    // Get the field name
    fieldName=$(this).closest(‘form’).find(“input[name=’quantity’]”);
    // Get its current value
    var currentVal = parseInt(fieldName.val());
    // If is not undefined
    if (!isNaN(currentVal)) {
    // Increment
    fieldName.val(currentVal + 1);
    } else {
    // Otherwise put a 1 there
    fieldName.val(1);
    }

    console.log(‘Plus’);
    setMinus();

    });
    // This button will decrease the value til 0
    $(“.minus”).click(function(e) {
    // Stop acting like a button
    e.preventDefault();
    // Get the field name
    fieldName=$(this).closest(‘form’).find(“input[name=’quantity’]”);
    // Get its current value
    var currentVal = parseInt(fieldName.val());
    // If it isn’t undefined or its greater than 0
    if (!isNaN(currentVal) && currentVal > 1) {
    // Decrement one
    fieldName.val(currentVal – 1);
    } else {
    // Otherwise put a 1 there
    fieldName.val(1);
    }

    console.log(‘Minus’);
    setMinus();

    });

    function setStock() {
    // this simply loops all the addtobasket forms on the page and sets the stock details
    $(“input[name=’quantity’]”).each(function() {

    var stockMessage=””;
    //var stockMessage=”Stock Information”;
    var stockMessageContainer=$(this).closest(‘form’).find(“div.stockMessageContainer”);

    var partnumber=$(this).closest(‘form’).find(“input[name=’partnumber’]”).val();

    // stock availability info
    var immediateStock=$(this).closest(‘form’).find(“input[name=’immediateStock’]”).val();
    var secondaryStock=$(this).closest(‘form’).find(“input[name=’secondaryStock’]”).val();
    var nextAvailableStockDue=$(this).closest(‘form’).find(“input[name=’nextAvailableStockDue’]”).val();
    var nextAvailalableStockQuantity=$(this).closest(‘form’).find(“input[name=’nextAvailalableStockQuantity’]”).val();

    var stockStatus=$(this).closest(‘form’).find(“input[name=’stockStatus’]”).val();
    var displayStockBoolean=$(this).closest(‘form’).find(“input[name=’displayStockBoolean’]”).val();
    var stockQuantity=$(this).closest(‘form’).find(“input[name=’stockQuantity’]”).val();
    var despatchDate=$(this).closest(‘form’).find(“input[name=’despatchDate’]”).val();

    if( stockStatus == 1 ) {
    // if in stock
    var stockMessage=stockMessage + “StockIn Stock”;
    if(displayStockBoolean

    3 in stock

    Estimated delivery by 11/05/2026

    SKU: SuperPro/SPF5450-12K Category: Brand:

    Tech Specs

    Specification

    Category Bushes
    Brand SuperPro
    MPN

    SPF5450-12K

    More Information

    Ratings