Subversion Repositories SmartDukaan

Rev

Rev 17774 | Rev 17804 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
17766 manish.sha 1
$('.itemquantity').attr('disabled', 'true');
2
var cart_details = localStorage.getItem('cart_details');
3
if(cart_details==undefined){
4
	$(".pmfooter span.carttotalval").text('0');
5
	$(".pmfooter span.badge").text('0');
6
	$(".pmfooter").addClass('hidden');
7
}else{
8
	var cartDetailsObj = JSON.parse(cart_details);
9
	if(cartDetailsObj.totalCartQuantity > 0){
10
		$(".pmfooter span.badge").text(cartDetailsObj.totalCartQuantity.toString());
11
		var totalCartValue = cartDetailsObj.totalCartValue;
12
		var priceChangeMap = {};
13
		$.each(cartDetailsObj.cartItems, function(key,val) {
14
			var newUnitPrice = $(".number-spinner button[data-id='"+key+"']").data('price');
17774 manish.sha 15
			if(newUnitPrice!=undefined){
16
				$(".number-spinner button[data-id='"+key+"']").closest('.number-spinner').find('input').val(val.quantity);
17
				if(parseInt(newUnitPrice)!=parseInt(val.unitprice)){
18
					totalCartValue = totalCartValue - (parseInt(val.unitprice)*parseInt(val.quantity)) + (parseInt(newUnitPrice)*parseInt(val.quantity));
19
					priceChangeMap[key] = newUnitPrice;
20
				}
17766 manish.sha 21
			}
22
		});
23
		$(".pmfooter span.carttotalval").text(numberWithCommas(totalCartValue));
17774 manish.sha 24
		if(totalCartValue!=undefined){
25
			cartDetailsObj.totalCartValue = totalCartValue;
26
		}
17766 manish.sha 27
		var cartItems = cartDetailsObj.cartItems;
28
		$.each(priceChangeMap, function(key,val) {
17774 manish.sha 29
			cartItems[key].unitprice = unitPrice;
17766 manish.sha 30
		});
31
		cartDetailsObj.cartItems = cartItems;
32
		localStorage.setItem('cart_details',JSON.stringify(cartDetailsObj));
33
		$(".pmfooter").removeClass('hidden');
34
	}else{
35
		$(".pmfooter span.carttotalval").text('0');
36
		$(".pmfooter span.badge").text('0');
37
		$(".pmfooter").addClass('hidden');
38
	}
39
 
40
}
41
$(".number-spinner button").click(function () {
42
    btn = $(this);
43
    input = btn.closest('.number-spinner').find('input');
44
    oldValue = btn.closest('.number-spinner').find('input').val().trim(),
45
	newVal = 0;
46
    btn.closest('.number-spinner').find('button').prop("disabled", false);
47
    var totalCartQuantity = 0;
48
    var totalCartValue = 0;
49
    var cartDetailsObj; 
50
    var jsonObjToBeStored = {};
51
    var cartItems = {};
52
    var cart_details = localStorage.getItem('cart_details');
53
    if(cart_details!=undefined){
54
    	cartDetailsObj = JSON.parse(cart_details);
55
    	totalCartQuantity = cartDetailsObj.totalCartQuantity;
56
    	totalCartValue = cartDetailsObj.totalCartValue;
57
    	cartItems = cartDetailsObj.cartItems;
58
    }
59
    var inc = 0;
60
    var dec = 0;
61
    var sku = btn.data('id');
62
    var unitPrice = btn.data('price');
63
    var prodname = $(".number-spinner").data('name');
64
    var brandname = $(".number-spinner").data('brand');
65
    if (btn.attr('data-dir') == 'up') {
66
		if ( input.attr('max') == undefined || parseInt(input.val()) < parseInt(input.attr('max')) ) {
67
			if(parseInt(input.val())<5){
68
				inc = 1;
69
				newVal = parseInt(oldValue) + inc;
70
			}else{
71
				inc = 5-(parseInt(input.val())%5);
72
				newVal = parseInt(oldValue) + inc;
73
			}
74
		}else{
75
			newVal = parseInt(oldValue);
76
			btn.prop("disabled", true);
77
		}
78
		totalCartQuantity = totalCartQuantity + inc;
79
	} else {
80
		if ( input.attr('min') == undefined || parseInt(input.val()) > parseInt(input.attr('min')) ) {
81
		    dec = 1;
82
			newVal = parseInt(oldValue) - dec;
83
		}else{
84
			btn.prop("disabled", true);
85
		}
86
		totalCartQuantity = totalCartQuantity - dec;
87
	}
88
 
89
	btn.closest('.number-spinner').find('input').val(newVal);
90
	if(cartDetailsObj==undefined){
91
		jsonObjToBeStored['totalCartQuantity'] = totalCartQuantity;
92
		totalCartValue = totalCartValue + (unitPrice * newVal);
93
		jsonObjToBeStored['totalCartValue'] = totalCartValue;
94
		var itemDetail = {};
95
		itemDetail['quantity']=newVal;
96
		itemDetail['unitprice']=unitPrice;
97
		itemDetail['productname']=prodname;
98
		itemDetail['brand']=brandname;
99
		cartItems[sku.toString()]=itemDetail;
100
		jsonObjToBeStored['cartItems']=cartItems;
101
		localStorage.setItem('cart_details',JSON.stringify(jsonObjToBeStored));
102
	}else{
103
		cartDetailsObj.totalCartQuantity = totalCartQuantity;
104
		var itemDetail = cartItems[sku.toString()];
105
		if(itemDetail==undefined){
106
			var itemDetail = {};
107
			itemDetail['quantity']=newVal;
108
			itemDetail['unitprice']=unitPrice;
109
			itemDetail['productname']=prodname;
110
			itemDetail['brand']=brandname;
111
			totalCartValue = totalCartValue + (unitPrice * newVal);
112
			cartItems[sku.toString()]=itemDetail;
113
		}else{
114
			totalCartValue = totalCartValue - (cartItems[sku.toString()].quantity * cartItems[sku.toString()].unitprice) + (unitPrice * newVal);
115
			if(newVal==0){
116
				delete cartItems[sku.toString()];
117
			}else{
118
				cartItems[sku.toString()].quantity = newVal;
119
				cartItems[sku.toString()].unitprice = unitPrice;
120
			}
121
 
122
		}
123
		cartDetailsObj.totalCartValue = totalCartValue;
124
		cartDetailsObj.cartItems = cartItems;
125
		localStorage.setItem('cart_details',JSON.stringify(cartDetailsObj));
126
	}
127
	if(totalCartQuantity > 0){
128
		$(".pmfooter span.carttotalval").text(numberWithCommas(totalCartValue));
129
		$(".pmfooter span.badge").text(totalCartQuantity);
130
		$(".pmfooter").removeClass('hidden');
131
	}else{
132
		$(".pmfooter span.carttotalval").text('0');
133
		$(".pmfooter span.badge").text('0');
134
		$(".pmfooter").addClass('hidden');
135
	}
136
});
137
 
138
$(document).on('click','.see_more_colors',function(){
139
	$('.morecoloroptions_'+$(this).data('id')).toggleClass('hidden');
140
});
141
 
142
$(".button-checkbox > .btn").click(function(){
143
    $(this).addClass('colorbtn active').siblings().removeClass('colorbtn active');
144
    $(this).addClass().removeClass('btn-default');
145
});
146
 
147
$("#bottomNav").click(function(){
17775 manish.sha 148
	var url = apihost + 'cartdetails/?user_id='+me;
17766 manish.sha 149
    var newForm = $('<form>', {
150
        'action': url,
151
        'method':'post'
152
    }).append($('<input>', {
153
        'name': 'cart_details',
154
        'value': localStorage.getItem('cart_details'),
155
        'type': 'hidden'
156
    }));
157
    newForm.submit();
158
});
159
 
160
function numberWithCommas(x) {
161
    return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
162
}
163
/*
164
$('.button-checkbox').each(function () {
165
 
166
    // Settings
167
    var $widget = $(this),
168
        $button = $widget.find('button'),
169
        $checkbox = $widget.find('input:checkbox'),
170
        color = $button.data('color'),
171
        settings = {
172
            on: {
173
                icon: 'glyphicon glyphicon-check'
174
            },
175
            off: {
176
                icon: 'glyphicon glyphicon-unchecked'
177
            }
178
        };
179
 
180
    // Event Handlers
181
    $button.on('click', function () {
182
        $checkbox.prop('checked', !$checkbox.is(':checked'));
183
        $checkbox.triggerHandler('change');
184
        updateDisplay();
185
    });
186
    $checkbox.on('change', function () {
187
        updateDisplay();
188
    });
189
 
190
    // Actions
191
    function updateDisplay() {
192
        var isChecked = $checkbox.is(':checked');
193
 
194
        // Set the button's state
195
        $button.data('state', (isChecked) ? "on" : "off");
196
 
197
        // Set the button's icon
198
        $button.find('.state-icon')
199
            .removeClass()
200
            .addClass('state-icon ' + settings[$button.data('state')].icon);
201
 
202
        // Update the button's color
203
        if (isChecked) {
204
            $button
205
                .removeClass('btn-default')
206
                .addClass('colorbtn active');
207
        }
208
        else {
209
            $button
210
                .removeClass('colorbtn active')
211
                .addClass('btn-default');
212
        }
213
    }
214
 
215
    // Initialization
216
    function init() {
217
 
218
        updateDisplay();
219
 
220
        // Inject the icon if applicable
221
        if ($button.find('.state-icon').length == 0) {
222
            $button.prepend('<i class="state-icon ' + settings[$button.data('state')].icon + '"></i>');
223
        }
224
    }
225
    init();
226
});*/