Subversion Repositories SmartDukaan

Rev

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