Subversion Repositories SmartDukaan

Rev

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

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