Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
23343 ashik.ali 1
$(function() {
24202 amit.gupta 2
	callback = function(value) {
3
		if(isNaN(value)) {
4
			bootbox("No of watches should be a number. Set '0' specifically");
5
			return;
6
		}else {
7
			loadCart("main-content", value);
8
		}
9
	}
23343 ashik.ali 10
	$(".cart_icon_header").live('click', function() {
24202 amit.gupta 11
		if(hasGift) {
12
			bootBoxObj = { 
13
						size: "medium",
14
						title: "Add Number of Watch as Gift", 
15
						callback: callback,
16
						inputType:'number'
17
					};
18
 
19
			bootbox.prompt(bootBoxObj);
20
		} else {
21
				loadCart('main-content', 0);
22
		}
23343 ashik.ali 23
	});
24
 
24202 amit.gupta 25
 
23343 ashik.ali 26
	$(".cart-checkout").live('click', function() {
27
		checkout("main-content");
28
	});
29
 
30
	$(".add-to-bag").live('click', function() {
24202 amit.gupta 31
		added=false;
23405 amit.gupta 32
		$('#catalogModalBody').hide();
23343 ashik.ali 33
		var itemId = $(this).attr('data');
34
		$("#bagModel .itemId").val(itemId);
35
		$("#bagModel .quantity").val(0);
23500 ashik.ali 36
		doGetAjaxRequestHandler(context+"/checkItemAvailability/?itemId="+itemId, function(response){
23347 ashik.ali 37
			var obj = JSON.parse(response);
38
			console.log(obj);
39
			console.log(obj.displayName);
40
			$(".modal-body h4.bagModalProductInfo.modelHeaderCustom > span").text(obj.displayName);
41
			$(".modal-body h4.bagModalAvailability.modelHeaderCustom > span").text(obj.availability);
23405 amit.gupta 42
			inputEle = [];
43
			if("earlyImeis" in obj) {
44
				for(i in obj.earlyImeis) {
45
					inputEle.push('<span class="input-group-addon">');
46
					inputEle.push('<input type="checkbox" aria-label="..." name="interest" value="'  + obj.earlyImeis[i] +  '" id="'  + obj.earlyImeis[i] +  '"/>');
47
					inputEle.push('<label for="'  + obj.earlyImeis[i] +  '">'  + obj.earlyImeis[i] +  '</label>');
48
					inputEle.push('</span>');
23967 amit.gupta 49
					if(i%3==2){
50
						inputEle.push('</br>');
51
					}
23405 amit.gupta 52
					$(".modal-body h4.bagMaodalEarlyImeis.modelHeaderCustom > span").html(inputEle.join(''));
53
				}
54
				$(".modal-body h4.bagMaodalEarlyImeis.modelHeaderCustom").show();
55
				$(".modal-body h4.bagMaodalQuantity.modelHeaderCustom").hide();
56
			} else {
57
				$(".modal-body h4.bagMaodalEarlyImeis.modelHeaderCustom").hide();
58
				$(".modal-body h4.bagMaodalQuantity.modelHeaderCustom").show();
59
 
60
			}
23347 ashik.ali 61
			$("#bagModel .availability").val(obj.availability);
23405 amit.gupta 62
			$('#catalogModalBody').show();
23347 ashik.ali 63
		});
64
 
24202 amit.gupta 65
 
23343 ashik.ali 66
	});
67
 
24202 amit.gupta 68
	// addToBagButton
23343 ashik.ali 69
 
70
	$("#addToBagButton").live('click', function() {
71
		var itemId = $("#bagModel .itemId").val();
72
		var tempAvailability = $("#bagModel .availability").val();
73
		var quantity = $("#bagModel .quantity").val();
23405 amit.gupta 74
		imeiCount = $('h4.bagMaodalEarlyImeis').find('input').length;
75
		if(imeiCount > 0) {
76
			quantity = $('h4.bagMaodalEarlyImeis').find('input:checked').length;
77
			if(quantity == 0) {
78
				alert("Please check one of the imei(s)");
79
				return;
80
			}
81
		} else if (!quantity || parseInt(quantity) <= 0 || isNaN(parseInt(quantity)) || quantity.indexOf('.') != -1){
23343 ashik.ali 82
			alert("Please enter valid quantity");
83
			return;
84
		}
85
 
23500 ashik.ali 86
		doGetAjaxRequestHandler(context+"/checkItemAvailability/?itemId="+itemId, function(response){
87
			var obj = JSON.parse(response);
88
			console.log(obj);
89
			if (obj.availability < parseInt(quantity) || obj.availability == 0){
90
				alert("You don't have enough inventory of this item");
91
				return;
92
			}
93
			var obj = {'itemId':obj.itemId,'displayName':obj.displayName,'quantity':parseInt(quantity),'iconUrl':obj.iconUrl};
94
			if(imeiCount > 0) {
95
				obj['imeis'] = [];
96
				$('h4.bagMaodalEarlyImeis').find('input:checked').each(function(index, ele){
97
					obj['imeis'].push(ele.value);
98
				});
99
			}
100
			console.log(obj);
101
			addItemInLocalStorage(obj);
102
			alert("Item added to bag successfully");
103
			$('#bagModel').modal('hide');
104
 
105
		});	
106
 
23343 ashik.ali 107
	});
108
 
109
	$(".cart-trash").live('click',function(){
110
		var itemId = $(this).attr('data');
111
		removeItemFromLocalStorage(itemId);
112
		$('div[itemId="' + itemId + '"]').remove();
113
		if ($('#cart-details').html().trim() == ""){
114
			$('#cart-details-empty').show();
115
			$('#cart-checkout').hide();
116
		}
117
	});
118
 
119
	$(".cart-qty").live('change paste keyup mouseup', function() {
120
		var itemId = $(this).attr('data');
121
		var maxQty = $(this).attr('max');
122
		var qty = $(this).val();
123
		if (!qty){
124
			qty = 0;
125
		}
126
		if(parseInt(qty) < 0){
127
			alert("Invalid quantity");
128
			$(this).val(0);
129
			qty = 0;
130
		}
131
		if (parseInt(qty) > parseInt(maxQty)){
132
			alert("You don't have availability of "+qty);
133
			$(this).val(maxQty);
134
			qty = maxQty;
135
		}
136
		changeQuantityInLocalStorage(itemId, qty);
137
	});
138
});
139
 
140
 
141
 
142
function addItemInLocalStorage(bagObj){
143
	if (localStorage.getItem("bag")!=null){
144
		var bag = JSON.parse(localStorage.getItem("bag"));
145
		bag[bagObj.itemId] = bagObj
146
		localStorage.setItem("bag",JSON.stringify(bag));
147
		bag = localStorage.getItem("bag")
148
		$("#cart_bar").find('span').text(Object.keys(JSON.parse(bag)).length);
149
	}
150
	else{
151
		var tempObj = {};
152
		tempObj[bagObj.itemId] = bagObj
153
		localStorage.setItem("bag",JSON.stringify(tempObj));
154
		var bag = localStorage.getItem("bag")
155
		$("#cart_bar").find('span').text(Object.keys(JSON.parse(bag)).length);
156
	}
157
}
158
 
159
 
160
function changeQuantityInLocalStorage(itemId, newQuantity){
161
	var bag = JSON.parse(localStorage.getItem("bag"));
24202 amit.gupta 162
	if (typeof bag[itemId]=="undefined") {
163
		bag[itemId] = {};
164
		bag[itemId].itemId=itemId;
165
		bag[itemId].displayName = "SmartDukaan Gift Watch";
166
 
167
	}
23343 ashik.ali 168
	bag[itemId].quantity = newQuantity;
169
	localStorage.setItem("bag",JSON.stringify(bag));
170
}
171
 
172
function removeItemFromLocalStorage(itemId){
173
	if (localStorage.getItem("bag")!=null){
174
		var bag = JSON.parse(localStorage.getItem("bag"));
175
		delete bag[itemId];
176
		localStorage.setItem("bag",JSON.stringify(bag));
177
		$("#cart_bar").find('span').text(Object.keys(bag).length);
178
	}
179
}
180
 
24202 amit.gupta 181
function addGiftQty(giftQty) {
182
	if (localStorage.getItem("bag")!=null){
183
		var bag = JSON.parse(localStorage.getItem("bag"));
184
		bag["giftQty"] = giftQty;
185
		localStorage.setItem("bag",JSON.stringify(bag));
186
		$("#cart_bar").find('span').text(Object.keys(bag).length);
187
	}
188
}
189
 
23343 ashik.ali 190
function emptyBag(){
191
	localStorage.setItem("bag",JSON.stringify({}));
192
	$("#cart_bar").find('span').text(0);
193
}
194
 
24202 amit.gupta 195
function loadCart(domId, giftQty){
196
	addGiftQty(giftQty);
23343 ashik.ali 197
	var params = {
198
			"cartData":localStorage.getItem("bag")
199
		}
23500 ashik.ali 200
	doPostAjaxRequestWithParamsHandler(context+"/cart", params, function(response){
23343 ashik.ali 201
		$('#' + domId).html(response);
202
	});
203
}
204
 
205
function checkout(domId){
206
	var params = {
207
			"cartData":localStorage.getItem("bag")
208
		}
23500 ashik.ali 209
	doPostAjaxRequestWithParamsHandler(context+"/validate-cart", params, function(response){
23343 ashik.ali 210
		$('#' + domId).html(response);
211
		var obj = JSON.parse(response);
23500 ashik.ali 212
		redirectCart(obj.redirectUrl, obj.params, "main-content");
23343 ashik.ali 213
		$('#main-content').html(response);
214
	});
215
}
216
 
23500 ashik.ali 217
function redirectCart(url, cartData, domId){
218
	var params = {
219
		"cartData":cartData	
220
	}
221
	doPostAjaxRequestWithParamsHandler(context + url, params, function(response){
222
        $('#' + domId).html(response);
223
        cartData = JSON.parse(cartData);
224
        for(itemId in cartData) {
225
        	if('imeis' in cartData[itemId]){
226
        		$('#order-details').find('input[name="serialNumber"][itemId="' + itemId + '"]').each(function(i,e){
227
        			e.value = cartData[itemId].imeis[i];
228
        		});
229
        	}
23343 ashik.ali 230
        }
23500 ashik.ali 231
        window.dispatchEvent(new Event('resize'));
232
	}); 
23343 ashik.ali 233
}