Subversion Repositories SmartDukaan

Rev

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

$(function() {
        $(".cart_icon_header").live('click', function() {
                loadCart("main-content");
        });
        
        $(".cart-checkout").live('click', function() {
                checkout("main-content");
        });
        
        $(".add-to-bag").live('click', function() {
                $('#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.bagMaodalEarlyImeis.modelHeaderCustom > span").html(inputEle.join(''));
                                }
                                $(".modal-body h4.bagMaodalEarlyImeis.modelHeaderCustom").show();
                                $(".modal-body h4.bagMaodalQuantity.modelHeaderCustom").hide();
                        } else {
                                $(".modal-body h4.bagMaodalEarlyImeis.modelHeaderCustom").hide();
                                $(".modal-body h4.bagMaodalQuantity.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.bagMaodalEarlyImeis').find('input').length;
                if(imeiCount > 0) {
                        quantity = $('h4.bagMaodalEarlyImeis').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.bagMaodalEarlyImeis').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 paste keyup mouseup', 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"));
        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 emptyBag(){
        localStorage.setItem("bag",JSON.stringify({}));
        $("#cart_bar").find('span').text(0);
}

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

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){
                                e.value = cartData[itemId].imeis[i];
                        });
                }
        }
        window.dispatchEvent(new Event('resize'));
        }); 
}