Subversion Repositories SmartDukaan

Rev

Rev 17831 | Rev 17882 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

function loadCartDetails(){
$('.itemquantity').attr('disabled', 'true');
var cart_details = localStorage.getItem('cart_details');
if(cart_details==undefined){
        $(".pmfooter span.carttotalval").text('0');
        $(".pmfooter span.badge").text('0');
        $(".pmfooter").addClass('hidden');
}else{
        var cartDetailsObj = JSON.parse(cart_details);
        if(cartDetailsObj.totalCartQuantity > 0){
                $(".pmfooter span.badge").text(cartDetailsObj.totalCartQuantity.toString());
                var totalCartValue = cartDetailsObj.totalCartValue;
                var priceChangeMap = {};
                $.each(cartDetailsObj.cartItems, function(key,val) {
                        var newUnitPrice = $(".number-spinner button[data-id='"+key+"']").data('price');
                        if(newUnitPrice!=undefined){
                                $(".number-spinner button[data-id='"+key+"']").closest('.number-spinner').find('input').val(val.quantity);
                                if(parseInt(newUnitPrice)!=parseInt(val.unitprice)){
                                        totalCartValue = totalCartValue - (parseInt(val.unitprice)*parseInt(val.quantity)) + (parseInt(newUnitPrice)*parseInt(val.quantity));
                                        priceChangeMap[key] = newUnitPrice;
                                }
                        }
                });
                $(".pmfooter span.carttotalval").text(numberWithCommas(totalCartValue));
                if(totalCartValue!=undefined){
                        cartDetailsObj.totalCartValue = totalCartValue;
                }
                var cartItems = cartDetailsObj.cartItems;
                $.each(priceChangeMap, function(key,val) {
                        cartItems[key].unitprice = val;
                });
                cartDetailsObj.cartItems = cartItems;
                localStorage.setItem('cart_details',JSON.stringify(cartDetailsObj));
                $(".pmfooter").removeClass('hidden');
        }else{
                $.each(cartDetailsObj.cartItems, function(key,val) {
                        var newUnitPrice = $(".number-spinner button[data-id='"+key+"']").data('price');
                        if(newUnitPrice!=undefined){
                                $(".number-spinner button[data-id='"+key+"']").closest('.number-spinner').find('input').val(val.quantity);
                                if(parseInt(newUnitPrice)!=parseInt(val.unitprice)){
                                        totalCartValue = totalCartValue - (parseInt(val.unitprice)*parseInt(val.quantity)) + (parseInt(newUnitPrice)*parseInt(val.quantity));
                                        priceChangeMap[key] = newUnitPrice;
                                }
                        }
                });
                $(".pmfooter span.carttotalval").text('0');
                $(".pmfooter span.badge").text('0');
                $(".pmfooter").addClass('hidden');
        }
        }
}
$(function(){
        loadCartDetails();
});
$(document).on('click','.number-spinner button',function(){
    btn = $(this);
    input = btn.closest('.number-spinner').find('input');
    oldValue = btn.closest('.number-spinner').find('input').val().trim(),
        newVal = 0;
    btn.closest('.number-spinner').find('button').prop("disabled", false);
    var totalCartQuantity = 0;
    var totalCartValue = 0;
    var cartDetailsObj; 
    var jsonObjToBeStored = {};
    var cartItems = {};
    var cart_details = localStorage.getItem('cart_details');
    if(cart_details!=undefined){
        cartDetailsObj = JSON.parse(cart_details);
        totalCartQuantity = cartDetailsObj.totalCartQuantity;
        totalCartValue = cartDetailsObj.totalCartValue;
        cartItems = cartDetailsObj.cartItems;
    }
    var inc = 0;
    var dec = 0;
    var sku = btn.data('id');
    var unitPrice = btn.data('price');
    var prodname = $(".number-spinner").data('name');
    var brandname = $(".number-spinner").data('brand');
    if (btn.attr('data-dir') == 'up') {
                if ( input.attr('max') == undefined || parseInt(input.val()) < parseInt(input.attr('max')) ) {
                        if(parseInt(input.val())<5){
                                inc = 1;
                                newVal = parseInt(oldValue) + inc;
                        }else{
                                inc = 5-(parseInt(input.val())%5);
                                newVal = parseInt(oldValue) + inc;
                                if(newVal>parseInt(input.attr('max'))){
                                        inc = parseInt(input.attr('max')) - parseInt(oldValue);
                                        newVal = parseInt(oldValue) + inc;
                                }
                        }
                }else{
                        newVal = parseInt(oldValue);
                        btn.prop("disabled", true);
                }
                totalCartQuantity = totalCartQuantity + inc;
        } else {
                if ( input.attr('min') == undefined || parseInt(input.val()) > parseInt(input.attr('min')) ) {
                    dec = 1;
                        newVal = parseInt(oldValue) - dec;
                }else{
                        btn.prop("disabled", true);
                }
                totalCartQuantity = totalCartQuantity - dec;
        }
    
        btn.closest('.number-spinner').find('input').val(newVal);
        if(cartDetailsObj==undefined){
                jsonObjToBeStored['totalCartQuantity'] = totalCartQuantity;
                totalCartValue = totalCartValue + (unitPrice * newVal);
                jsonObjToBeStored['totalCartValue'] = totalCartValue;
                var itemDetail = {};
                itemDetail['quantity']=newVal;
                itemDetail['unitprice']=unitPrice;
                itemDetail['productname']=prodname;
                itemDetail['brand']=brandname;
                cartItems[sku.toString()]=itemDetail;
                jsonObjToBeStored['cartItems']=cartItems;
                localStorage.setItem('cart_details',JSON.stringify(jsonObjToBeStored));
        }else{
                cartDetailsObj.totalCartQuantity = totalCartQuantity;
                var itemDetail = cartItems[sku.toString()];
                if(itemDetail==undefined){
                        var itemDetail = {};
                        itemDetail['quantity']=newVal;
                        itemDetail['unitprice']=unitPrice;
                        itemDetail['productname']=prodname;
                        itemDetail['brand']=brandname;
                        totalCartValue = totalCartValue + (unitPrice * newVal);
                        cartItems[sku.toString()]=itemDetail;
                }else{
                        totalCartValue = totalCartValue - (cartItems[sku.toString()].quantity * cartItems[sku.toString()].unitprice) + (unitPrice * newVal);
                        if(newVal==0){
                                cartItems[sku.toString()].quantity = 0;
                                cartItems[sku.toString()].unitprice = unitPrice;
                        }else{
                                cartItems[sku.toString()].quantity = newVal;
                                cartItems[sku.toString()].unitprice = unitPrice;
                        }
                        
                }
                cartDetailsObj.totalCartValue = totalCartValue;
                cartDetailsObj.cartItems = cartItems;
                localStorage.setItem('cart_details',JSON.stringify(cartDetailsObj));
        }
        if(totalCartQuantity > 0){
                $(".pmfooter span.carttotalval").text(numberWithCommas(totalCartValue));
                $(".pmfooter span.badge").text(totalCartQuantity);
                $(".pmfooter").removeClass('hidden');
        }else{
                $(".pmfooter span.carttotalval").text('0');
                $(".pmfooter span.badge").text('0');
                $(".pmfooter").addClass('hidden');
        }
});

$(document).on('click','.see_more_colors',function(){
        var id = $(".number-spinner button").data('id');
        $(".morecoloroptions_"+$(this).data('id')+" button:first-child" ).addClass("active");
        $('.morecoloroptions_'+$(this).data('id')).toggleClass('hidden');
});

$(document).on('click','.button-checkbox > .btn',function(){
    $(this).addClass('active').siblings().removeClass('active');
    var cart_details = localStorage.getItem('cart_details');
    if(cart_details!=undefined){
        var cartDetailsObj = JSON.parse(cart_details);
        var item = cartDetailsObj.cartItems[$(this).data('id')];
        if(item!=undefined){
                $(".number-spinner button[data-did='"+$(this).data('did')+"']").data('id',$(this).data('id'));
                $(".number-spinner button[data-did='"+$(this).data('did')+"']").data('price',parseInt($(this).data('price')));
                $(".number-spinner input[data-did='"+$(this).data('did')+"']").attr('max',parseInt($(this).data('max')));
                $(".number-spinner input[data-did='"+$(this).data('did')+"']").val(item.quantity);
                $(".viewproduct span[data-did='"+$(this).data('did')+"']").text(parseInt($(this).data('price')));
                cartDetailsObj.cartItems[$(this).data('id')].unitprice = parseInt($(this).data('price'));
                localStorage.setItem('cart_details',JSON.stringify(cartDetailsObj));
        }else{
                $(".number-spinner button[data-did='"+$(this).data('did')+"']").data('id',$(this).data('id'));
                $(".number-spinner button[data-did='"+$(this).data('did')+"']").data('price',parseInt($(this).data('price')));
                $(".number-spinner input[data-did='"+$(this).data('did')+"']").attr('max',parseInt($(this).data('max')));
                $(".number-spinner input[data-did='"+$(this).data('did')+"']").val('0');
                $(".viewproduct span[data-did='"+$(this).data('did')+"']").text(parseInt($(this).data('price')));
        }
    }else{
        $(".number-spinner button[data-did='"+$(this).data('did')+"']").data('id',$(this).data('id'));
                $(".number-spinner button[data-did='"+$(this).data('did')+"']").data('price',parseInt($(this).data('price')));
                $(".number-spinner input[data-did='"+$(this).data('did')+"']").attr('max',parseInt($(this).data('max')));
                $(".number-spinner input[data-did='"+$(this).data('did')+"']").val('0');
                $(".viewproduct span[data-did='"+$(this).data('did')+"']").text(parseInt($(this).data('price')));
    }
    
});

$("#bottomNav").click(function(){
        var url = apihost + 'cartdetails/?user_id='+me;
    var newForm = $('<form>', {
        'action': url,
        'method':'post'
    }).append($('<input>', {
        'name': 'cart_details',
        'value': localStorage.getItem('cart_details'),
        'type': 'hidden'
    }));
    newForm.submit();
});

function numberWithCommas(x) {
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}

$(document).on('click','.radGroup2',function(){
    var pin = $(this).data('pin');
     var add_id = $(this).data('id');
    $('#loadingModal').modal('show');
    $.ajax({
    method: "GET",
    url: apihost+"shippings/isServicable/"+pin,
  })
    .done(function( msg ) {
        $('#loadingModal').modal('hide');
        if(msg== 'true'){
            $('.myaddress').removeClass('addressselect');
            $('#address'+add_id).addClass('addressselect');
            // $('#message_success').empty();
            // $('#message_success').append();
            // $('#message_success').removeClass('hidden');

            // setTimeout(function() {
            //     $('#message_success ').addClass('hidden');
            // }, 2000);
        }
        if(msg== 'false'){
            $('#message').empty();
            $('#message').append("Location is not serviceable...");
            $('#message').removeClass('hidden');
            $("input:radio").removeAttr("checked");
            $('.myaddress').removeClass('addressselect');
            setTimeout(function() {
                $('#message').addClass('hidden');
            }, 2000);
        }
        
        // alert(msg);
    });
}); 

$(document).on('click','#showmore',function(){
    $("#showmoreaddressdropdown").toggle();
    if($('#showmore').html() == 'Show More')
    {
        $("#showmore").html('Show Less');
    }
    else if($("#showmore").html() == 'Show Less')
    {
        // $("#showmore").empty();
        $("#showmore").html('Show More');    
    }
});

/*
$('.button-checkbox').each(function () {

    // Settings
    var $widget = $(this),
        $button = $widget.find('button'),
        $checkbox = $widget.find('input:checkbox'),
        color = $button.data('color'),
        settings = {
            on: {
                icon: 'glyphicon glyphicon-check'
            },
            off: {
                icon: 'glyphicon glyphicon-unchecked'
            }
        };

    // Event Handlers
    $button.on('click', function () {
        $checkbox.prop('checked', !$checkbox.is(':checked'));
        $checkbox.triggerHandler('change');
        updateDisplay();
    });
    $checkbox.on('change', function () {
        updateDisplay();
    });

    // Actions
    function updateDisplay() {
        var isChecked = $checkbox.is(':checked');

        // Set the button's state
        $button.data('state', (isChecked) ? "on" : "off");

        // Set the button's icon
        $button.find('.state-icon')
            .removeClass()
            .addClass('state-icon ' + settings[$button.data('state')].icon);

        // Update the button's color
        if (isChecked) {
            $button
                .removeClass('btn-default')
                .addClass('colorbtn active');
        }
        else {
            $button
                .removeClass('colorbtn active')
                .addClass('btn-default');
        }
    }

    // Initialization
    function init() {

        updateDisplay();

        // Inject the icon if applicable
        if ($button.find('.state-icon').length == 0) {
            $button.prepend('<i class="state-icon ' + settings[$button.data('state')].icon + '"></i>');
        }
    }
    init();
});*/