Subversion Repositories SmartDukaan

Rev

Rev 23343 | Rev 23405 | 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() {
11
		var itemId = $(this).attr('data');
12
		$("#bagModel .itemId").val(itemId);
13
		$("#bagModel .quantity").val(0);
23347 ashik.ali 14
		doAjaxRequestHandler(context+"/checkItemAvailability/?itemId="+itemId, "GET", function(response){
15
			var obj = JSON.parse(response);
16
			console.log(obj);
17
			console.log(obj.displayName);
18
			$(".modal-body h4.bagModalProductInfo.modelHeaderCustom > span").text(obj.displayName);
19
			$(".modal-body h4.bagModalAvailability.modelHeaderCustom > span").text(obj.availability);
20
			$("#bagModel .availability").val(obj.availability);
21
		});
22
 
23
		/*jQuery.ajax({
24
			url: ,
23343 ashik.ali 25
			type: 'GET',
26
			contentType:'application/json',
27
			async: false,
28
			success: function (data) {
29
				var obj = JSON.parse(data);
30
				console.log(obj);
31
				console.log(obj.displayName);
32
				$(".modal-body h4.bagModalProductInfo.modelHeaderCustom > span").text(obj.displayName);
33
				$(".modal-body h4.bagModalAvailability.modelHeaderCustom > span").text(obj.availability);
34
				$("#bagModel .availability").val(obj.availability);
35
			},
36
			cache: false,
37
			processData: false
23347 ashik.ali 38
		});*/
23343 ashik.ali 39
	});
40
 
41
	//addToBagButton
42
 
43
	$("#addToBagButton").live('click', function() {
44
		var itemId = $(this).attr('data');
45
		var itemId = $("#bagModel .itemId").val();
46
		var tempAvailability = $("#bagModel .availability").val();
47
		var quantity = $("#bagModel .quantity").val();
48
 
49
		if (!quantity || parseInt(quantity) <= 0 || isNaN(parseInt(quantity)) || quantity.indexOf('.') != -1){
50
			alert("Please enter valid quantity");
51
			return;
52
		}
53
 
54
		jQuery.ajax({
55
			url: context+"/checkItemAvailability/?itemId="+itemId,
56
			type: 'GET',
57
			contentType:'application/json',
58
			async: false,
59
			success: function (data) {
60
				var obj = JSON.parse(data);
61
				console.log(obj);
62
				if (obj.availability < parseInt(quantity) || obj.availability == 0){
63
					alert("You don't have enough inventory of this item");
64
					return;
65
				}
66
				var obj = {'itemId':obj.itemId,'displayName':obj.displayName,'quantity':parseInt(quantity),'iconUrl':obj.iconUrl};
67
				console.log(obj);
68
				addItemInLocalStorage(obj);
69
				alert("Item added to bag successfully");
70
				$('#bagModel').modal('hide');
71
			},
72
			cache: false,
73
			processData: false
74
		});
75
	});
76
 
77
	$(".cart-trash").live('click',function(){
78
		var itemId = $(this).attr('data');
79
		removeItemFromLocalStorage(itemId);
80
		$('div[itemId="' + itemId + '"]').remove();
81
		if ($('#cart-details').html().trim() == ""){
82
			$('#cart-details-empty').show();
83
			$('#cart-checkout').hide();
84
		}
85
	});
86
 
87
	$(".cart-qty").live('change paste keyup mouseup', function() {
88
		var itemId = $(this).attr('data');
89
		var maxQty = $(this).attr('max');
90
		var qty = $(this).val();
91
		if (!qty){
92
			qty = 0;
93
		}
94
		if(parseInt(qty) < 0){
95
			alert("Invalid quantity");
96
			$(this).val(0);
97
			qty = 0;
98
		}
99
		if (parseInt(qty) > parseInt(maxQty)){
100
			alert("You don't have availability of "+qty);
101
			$(this).val(maxQty);
102
			qty = maxQty;
103
		}
104
		changeQuantityInLocalStorage(itemId, qty);
105
	});
106
});
107
 
108
 
109
 
110
function addItemInLocalStorage(bagObj){
111
	if (localStorage.getItem("bag")!=null){
112
		var bag = JSON.parse(localStorage.getItem("bag"));
113
		bag[bagObj.itemId] = bagObj
114
		localStorage.setItem("bag",JSON.stringify(bag));
115
		bag = localStorage.getItem("bag")
116
		$("#cart_bar").find('span').text(Object.keys(JSON.parse(bag)).length);
117
	}
118
	else{
119
		var tempObj = {};
120
		tempObj[bagObj.itemId] = bagObj
121
		localStorage.setItem("bag",JSON.stringify(tempObj));
122
		var bag = localStorage.getItem("bag")
123
		$("#cart_bar").find('span').text(Object.keys(JSON.parse(bag)).length);
124
	}
125
}
126
 
127
 
128
function changeQuantityInLocalStorage(itemId, newQuantity){
129
	var bag = JSON.parse(localStorage.getItem("bag"));
130
	bag[itemId].quantity = newQuantity;
131
	localStorage.setItem("bag",JSON.stringify(bag));
132
}
133
 
134
function removeItemFromLocalStorage(itemId){
135
	if (localStorage.getItem("bag")!=null){
136
		var bag = JSON.parse(localStorage.getItem("bag"));
137
		delete bag[itemId];
138
		localStorage.setItem("bag",JSON.stringify(bag));
139
		$("#cart_bar").find('span').text(Object.keys(bag).length);
140
	}
141
}
142
 
143
function emptyBag(){
144
	localStorage.setItem("bag",JSON.stringify({}));
145
	$("#cart_bar").find('span').text(0);
146
}
147
 
148
function loadCart(domId){
149
	var params = {
150
			"cartData":localStorage.getItem("bag")
151
		}
152
	doAjaxRequestWithParamsHandler(context+"/cart", "POST", params, function(response){
153
		$('#' + domId).html(response);
154
	});
155
}
156
 
157
function checkout(domId){
158
	var params = {
159
			"cartData":localStorage.getItem("bag")
160
		}
161
	doAjaxRequestWithParamsHandler(context+"/validate-cart", "POST", params, function(response){
162
		$('#' + domId).html(response);
163
		var obj = JSON.parse(response);
164
		redirectCart(obj.redirectUrl, obj.params, obj.method, "main-content");
165
		$('#main-content').html(response);
166
	});
167
}
168
 
169
function redirectCart(url, cartData, method, domId){
170
	jQuery.ajax({
171
        type : method,
172
        data: {"cartData":cartData},
173
        url : context+url,
174
        success : function(response) {
175
            $('#' + domId).html(response);
176
            window.dispatchEvent(new Event('resize'));
177
        }
178
    });  
179
}