Subversion Repositories SmartDukaan

Rev

Rev 24457 | Rev 26263 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

$(function() {
        callback = function(value) {
                removeItemFromLocalStorage(giftItemId);
                if(isNaN(value)) {
                        bootbox("No of watches should be a number. Set '0' specifically");
                        return;
                }else {
                        loadCart("main-content", value);
                }
        }
        $(".cart_icon_header").live('click', function() {
                if(typeof hasGift=="undefined") {
                        hasGift = false;
                }
                if(hasGift) {
                        bootBoxObj = { 
                                                size: "medium",
                                                title: "Add Number of Watch as Gift", 
                                                callback: callback,
                                                inputType:'number'
                                        };
                        
                        bootbox.prompt(bootBoxObj);
                } else {
                                loadCart('main-content', 0);
                }
        });
        
        
        $(".cart-checkout").live('click', function() {
                checkout("main-content");
        });
        
        $(".add-to-bag").live('click', function() {
                added=false;
                $('#catalogModalBody').hide();
                var itemId = $(this).attr('data');
                $("#bagModel .itemId").val(itemId);
                $("#bagModel .quantity").val(0);
                doGetAjaxRequestHandler(context+"/checkItemAvailability/?itemId="+itemId, function(response){
                        var obj = JSON.parse(response);
                        console.log(obj);
                        console.log(obj.displayName);
                        $(".modal-body h4.bagModalProductInfo.modelHeaderCustom > span").text(obj.displayName);
                        $(".modal-body h4.bagModalAvailability.modelHeaderCustom > span").text(obj.availability);
                        inputEle = [];
                        if("earlyImeis" in obj) {
                                for(i in obj.earlyImeis) {
                                        inputEle.push('<span class="input-group-addon">');
                                        inputEle.push('<input type="checkbox" aria-label="..." name="interest" value="'  + obj.earlyImeis[i] +  '" id="'  + obj.earlyImeis[i] +  '"/>');
                                        inputEle.push('<label for="'  + obj.earlyImeis[i] +  '">'  + obj.earlyImeis[i] +  '</label>');
                                        inputEle.push('</span>');
                                        if(i%3==2){
                                                inputEle.push('</br>');
                                        }
                                        $(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom > span").html(inputEle.join(''));
                                }
                                $(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom").show();
                                $(".modal-body h4.bagModalQuantity.modelHeaderCustom").hide();
                        } else {
                                $(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom").html("");
                                $(".modal-body h4.bagModalEarlyImeis.modelHeaderCustom").hide();
                                $(".modal-body h4.bagModalQuantity.modelHeaderCustom").show();

                        }
                        $("#bagModel .availability").val(obj.availability);
                        $('#catalogModalBody').show();
                });
                
                
        });
        
        // addToBagButton
        
        $("#addToBagButton").live('click', function() {
                var itemId = $("#bagModel .itemId").val();
                var tempAvailability = $("#bagModel .availability").val();
                var quantity = $("#bagModel .quantity").val();
                imeiCount = $('h4.bagModalEarlyImeis').find('input').length;
                if(imeiCount > 0) {
                        quantity = $('h4.bagModalEarlyImeis').find('input:checked').length;
                        if(quantity == 0) {
                                alert("Please check one of the imei(s)");
                                return;
                        }
                } else if (!quantity || parseInt(quantity) <= 0 || isNaN(parseInt(quantity)) || quantity.indexOf('.') != -1){
                        alert("Please enter valid quantity");
                        return;
                }
                
                doGetAjaxRequestHandler(context+"/checkItemAvailability/?itemId="+itemId, function(response){
                        var obj = JSON.parse(response);
                        console.log(obj);
                        if (obj.availability < parseInt(quantity) || obj.availability == 0){
                                alert("You don't have enough inventory of this item");
                                return;
                        }
                        var obj = {'itemId':obj.itemId,'displayName':obj.displayName,'quantity':parseInt(quantity),'iconUrl':obj.iconUrl};
                        if(imeiCount > 0) {
                                obj['imeis'] = [];
                                $('h4.bagModalEarlyImeis').find('input:checked').each(function(index, ele){
                                        obj['imeis'].push(ele.value);
                                });
                        }
                        console.log(obj);
                        addItemInLocalStorage(obj);
                        alert("Item added to bag successfully");
                        $('#bagModel').modal('hide');
                
                });     
                
        });
        
        $(".cart-trash").live('click',function(){
                var itemId = $(this).attr('data');
                removeItemFromLocalStorage(itemId);
                $('div[itemId="' + itemId + '"]').remove();
                if ($('#cart-details').html().trim() == ""){
                        $('#cart-details-empty').show();
                        $('#cart-checkout').hide();
                }
        });
        
        $(".cart-qty").live('change', function() {
                var itemId = $(this).attr('data');
                var maxQty = $(this).attr('max');
                var qty = $(this).val();
                if (!qty){
                        qty = 0;
                }
                if(parseInt(qty) < 0){
                        alert("Invalid quantity");
                        $(this).val(0);
                        qty = 0;
                }
                if (parseInt(qty) > parseInt(maxQty)){
                        alert("You don't have availability of "+qty);
                        $(this).val(maxQty);
                        qty = maxQty;
                }
                changeQuantityInLocalStorage(itemId, qty);
        });
});



function addItemInLocalStorage(bagObj){
        if (localStorage.getItem("bag")!=null){
                var bag = JSON.parse(localStorage.getItem("bag"));
                bag[bagObj.itemId] = bagObj
                localStorage.setItem("bag",JSON.stringify(bag));
                bag = localStorage.getItem("bag")
                $("#cart_bar").find('span').text(Object.keys(JSON.parse(bag)).length);
        }
        else{
                var tempObj = {};
                tempObj[bagObj.itemId] = bagObj
                localStorage.setItem("bag",JSON.stringify(tempObj));
                var bag = localStorage.getItem("bag")
                $("#cart_bar").find('span').text(Object.keys(JSON.parse(bag)).length);
        }
}


function changeQuantityInLocalStorage(itemId, newQuantity){
        var bag = JSON.parse(localStorage.getItem("bag"));
        if (typeof bag[itemId]=="undefined") {
                bag[itemId] = {};
                bag[itemId].itemId=itemId;
                bag[itemId].displayName = "SmartDukaan Gift Watch";
                bag[itemId].iconUrl = "";
                delete bag["giftQty"];
                
        }
        bag[itemId].quantity = newQuantity;
        localStorage.setItem("bag",JSON.stringify(bag));
}

function removeItemFromLocalStorage(itemId){
        if (localStorage.getItem("bag")!=null){
                var bag = JSON.parse(localStorage.getItem("bag"));
                delete bag[itemId];
                localStorage.setItem("bag",JSON.stringify(bag));
                $("#cart_bar").find('span').text(Object.keys(bag).length);
        }
}

function addGiftQty(giftQty) {
        if (localStorage.getItem("bag")!=null){
                var bag = JSON.parse(localStorage.getItem("bag"));
                bag["giftQty"] = giftQty;
                localStorage.setItem("bag",JSON.stringify(bag));
        }
}
function removeGiftQty() {
        if (localStorage.getItem("bag")!=null){
                var bag = JSON.parse(localStorage.getItem("bag"));
                delete bag["giftQty"];
                localStorage.setItem("bag",JSON.stringify(bag));
        }
}

function saveBag(bagObj) {
        localStorage.setItem("bag", JSON.stringify(bagObj));
}

function emptyBag(){
        localStorage.setItem("bag",JSON.stringify({}));
        $("#cart_bar").find('span').text(0);
}

function loadCart(domId, giftQty){
        addGiftQty(giftQty);
        var params = {
                        "cartData":localStorage.getItem("bag")
                }
        doPostAjaxRequestWithParamsHandler(context+"/cart", params, function(response){
                $('#' + domId).html(response);
                removeGiftQty();
        });
}

function checkout(domId){
        var params = {
                        "cartData":localStorage.getItem("bag")
                }
        doPostAjaxRequestWithParamsHandler(context+"/validate-cart", params, function(response){
                $('#' + domId).html(response);
                var obj = JSON.parse(response);
                redirectCart(obj.redirectUrl, obj.params, "main-content");
                $('#main-content').html(response);
        });
}

function redirectCart(url, cartData, domId){
        var params = {
                "cartData":cartData     
        }
        doPostAjaxRequestWithParamsHandler(context + url, params, function(response){
        $('#' + domId).html(response);
        cartData = JSON.parse(cartData);
        for(itemId in cartData) {
                if('imeis' in cartData[itemId]){
                        $('#order-details').find('input[name="serialNumber"][itemId="' + itemId + '"]').each(function(i,e){
                                if($(e).attr("itemtype")=="SERIALIZED") {
                                        e.value = cartData[itemId].imeis[i];
                                } else {
                                        cartData[itemId].imeis=[];
                                        
                                }
                        });
                }
        }
        saveBag(cartData);
        if(localStorage.getItem('customerDetails')==null){
                $('.mk_restore').hide();
        } else {
                $('.mk_restore').show();
        }
        window.dispatchEvent(new Event('resize'));
        }); 
}