function updateSppDeliveryMessage() {
    if (parseFloat($jq('#rawCartValue').html()) >= parseFloat($jq('#raw_delivery_threshold').html())) {
        //qualifies for free delivery
        $jq('#spp_delivery_message').html($jq('#spp_delivery_qualifies').html());
    } else if ((parseFloat($jq('#rawCartValue').html()) + parseFloat($jq('#spp_product_min_value').html())) >= parseFloat($jq('#raw_delivery_threshold').html())) {
        //adding spp product will qualify for free delivery
        $jq('#spp_delivery_message').html($jq('#spp_delivery_add_product').html());
    } else {
        //display value required to qualify for free delivery
        var remainder = parseFloat($jq('#raw_delivery_threshold').html()) - parseFloat($jq('#rawCartValue').html());
        remainder = remainder.toFixed(2);
        var str = $jq('#spp_delivery_countdown').html();
        str = str.replace(/::amount::/, remainder);
        $jq('#spp_delivery_message').html(str);
    }
}

function addToCart(hrefdata){
    //let launch the announcement checkout popup if need be
    if ( window.generic && generic.announcement ) {
        if ( generic.announcement.basket_announcement_on ) {
            generic.announcement.basket(); 
        }
    }
    
    $jq('.shoppingbag_container').removeClass('hidden');
    $jq('.shoppingbag_wrapper').removeClass('hidden');
    $jq('#cart_content').addClass('hidden');
    $jq('#shoppingbag_layer').attr('style', "top:45px; margin-top: auto;");

    $jq.get(hrefdata, function(returnedMsg) {
        $jq('#shoppingbag_layer').html(returnedMsg);
        $jq('#shoppingbag_size_section').html($jq('#cartTotalItems').html());
        if ($jq('#spp_delivery_message').length > 0) {
            updateSppDeliveryMessage();
        }
    });
}

function removeFromCart(hrefdata){
    $jq('.shoppingbag_container').removeClass('hidden');
    $jq('#cart_content').addClass('hidden');
    $jq('#shoppingbag_layer').attr('style', "top:45px; margin-top: auto;");

    $jq.get(hrefdata, function(returnedMsg) {
        $jq('#shoppingbag_layer').html(returnedMsg);
        $jq('#shoppingbag_size_section').html($jq('#cartTotalItems').html());
        if ($jq('#spp_delivery_message').length > 0) {
            updateSppDeliveryMessage();
        }
    });
}

function closeCart(){
    $jq('#shoppingbag_layer').hide();
    $jq('#shoppingbag_layer').removeAttr('style');
}

function updateCart(hrefdata, this_ref_id){
    $jq('#' + this_ref_id).hide();
    $jq('#loading_' + this_ref_id).show();

    $jq.get(hrefdata, function(returnedMsg) {
        $jq('#main_content_wrapper').html(returnedMsg);
        $jq('#shoppingbag_size_section').html($jq('#cartTotalItems').html());
        if ($jq('#spp_delivery_message').length > 0) {
            updateSppDeliveryMessage();
        }
    });
}

function addToCartFlash(hrefdata){
    $jq('.shoppingbag_container').removeClass('hidden');
    $jq('.shoppingbag_wrapper').removeClass('hidden');
    $jq('#cart_content').addClass('hidden');
    $jq('#shoppingbag_layer').attr('style', "top:45px; margin-top: auto;");

    $jq.get(hrefdata, function(returnedMsg) {
        $jq('#shoppingbag_layer').html(returnedMsg);
        $jq('#shoppingbag_size_section').html($jq('#cartTotalItems').html());
    });
}
