Subversion Repositories SmartDukaan

Rev

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