Subversion Repositories SmartDukaan

Rev

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