Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
1464 varun.gupt 1
$(function(){
6176 amit.gupta 2
	jQuery.validator.addMethod("rechargeordernumber", function(value, element) {
3
 
4
        return this.optional(element) || /^([a-zA-Z]?)+[0-9]+$/.test(value);
5
	}); 
1745 varun.gupt 6
	var dropdownContent = {
7
		reasonToReturn: ['Wrong product delivered', 'Product received in damaged condition'],
8
 
9
		deliveryProblem:[
10
		      'Packet received in damaged condition',
11
		      'Seal tampered', 
12
		      'Delivery not received', 
13
		      'Delivery person asking for Extra shipping/Octroi Charges'
14
		]
15
	};
16
 
1471 varun.gupt 17
	var utils = {
1580 varun.gupt 18
			lastQueryType: -1,
19
 
1745 varun.gupt 20
			removeSubjectInput: function()	{
21
				$('#lblSubject').siblings('input, select').each(function(){
22
					$(this).remove();
23
				});
24
			},
1582 varun.gupt 25
 
1745 varun.gupt 26
			addSubjectDropdown: function(listOptions)	{
27
				html = '<select name="subject">\n';
28
 
29
				for(index in listOptions)	{
30
					html += '<option value="' + listOptions[index] + '">' + listOptions[index] + '</option>\n';
31
				}
32
				html += '</select>';
33
				$('#lblSubject').after(html);
34
			},
35
 
36
			addSubjectTextbox: function()	{
11943 kshitij.so 37
				$('#lblSubject').after('<input type="text" name="subject" class="textbox" />');
1745 varun.gupt 38
			},
39
 
6176 amit.gupta 40
			addReasonSelector: function()	{
41
				$('#lblSubject').after('<select name="subject">' 
42
						+ '<option value="recharge-failed">Payment successful&#47;Recharge failed</option>'
43
						+ '<option value="recharge-pending">Recharge successful but pending</option>'
44
						+ '<option value="recharge-wallet-realated">Recharge wallet related</option>'
45
						+ '<option value="recharge-other">Other recharge problem</option>'
46
						+ '</select>');
47
			},
48
 
1745 varun.gupt 49
			disableAllComponents: function(){
50
				$('div.contact-form-component').hide().find("input, select, textarea").attr("disable", "disable");
51
			},
1580 varun.gupt 52
 
1745 varun.gupt 53
            enableComponents: function(className){
54
				$('div.' + className).show().find("input, select, textarea").removeAttr('disable');
55
            },
56
 
57
            setLabelSubject:function(label)	{
58
            	$('#lblSubject').text(label);
59
            },
60
 
1471 varun.gupt 61
			resetProductSelector: function()	{
62
				$('#product').html('<option value="-1">Select Product</option>').attr('disabled', 'true');
63
			},
64
			resetForm: function()	{
65
				$('#communication_category').val("-1");
66
				this.resetProductSelector();
1745 varun.gupt 67
				this.disableAllComponents();
1639 varun.gupt 68
				$('label.error').remove();
1745 varun.gupt 69
				$('#submit, #resetFormButton').attr('disabled', 'disabled');
1471 varun.gupt 70
			},
71
			activateResetButton: function() {
72
				$('#resetFormButton').removeAttr('disabled');
1580 varun.gupt 73
			},
1745 varun.gupt 74
			addOrderIdSelector: function(selectorType, errMsg)	{
75
				var methodToCall = 'all_orders';
76
 
77
				if (selectorType == 'returnable')	{
78
					methodToCall = 'to_return';
79
				}
80
				else if (selectorType == 'cancellable')	{
81
					methodToCall = 'to_cancel';
82
				}
83
 
84
				jQuery.ajax({
85
					type: "GET",
86
					url: "/contact-us/" + methodToCall,
87
					success: function(data)	{
88
						if($.trim(data) == "<option value='-1'>No Orders Found</option>")	{
89
							alert(errMsg);
90
							utils.resetForm();
1580 varun.gupt 91
						}
1745 varun.gupt 92
						else	{
93
							html = '<select name="order_id" id="order_id">\n';
94
							html += data + '\n';
95
							html += '</select>';
96
							$("#orderComponent").append(html);
97
						}
98
					}
99
				});
1580 varun.gupt 100
			},
6176 amit.gupta 101
			addRechargeSelectors : function(){
102
				$('#deviceComponent').find('input').attr('name', 'deviceNumber');
103
				$('#rechargeOrderComponent').find('input').attr('name', 'rechargeOrderNumber');
104
			},
1580 varun.gupt 105
			removeOrderIdSelector: function()	{
1745 varun.gupt 106
				$('#order_id').remove();
6176 amit.gupta 107
			},
108
			removeRechargeSelectors: function()	{
109
				$('#deviceComponent').find('input').attr('name', 'adeviceNumber');
110
				$('#rechargeOrderComponent').find('input').attr('name', 'arechargeOrderNumber');
11943 kshitij.so 111
			},
112
			addBulkOrderSelectors : function() {
113
				$('#bulkOrderComponent').find('input').attr('name', 'contactNumber');
114
				$('#bulkOrderQuantityComponent').find('input').attr('name', 'quantity');
115
			},
116
			removeBulkOrderSelectors : function() {
117
				$('#bulkOrderComponent').find('input').attr('name', 'removedcontactNumber');
118
				$('#bulkOrderQuantityComponent').find('input').attr('name', 'removedquantity');
1471 varun.gupt 119
			}
11943 kshitij.so 120
 
1471 varun.gupt 121
	};
122
 
123
	$('#resetFormButton').click(function() {
124
		utils.resetForm();
125
	});
126
 
1464 varun.gupt 127
	$('#communication_category').change(function(){
1745 varun.gupt 128
		utils.disableAllComponents();
129
		$('label.error').remove();
1464 varun.gupt 130
		$('#frmContactUs input[name="submit"]').removeAttr('disabled');
1471 varun.gupt 131
		utils.resetProductSelector();
1580 varun.gupt 132
		utils.activateResetButton();
1745 varun.gupt 133
		utils.removeSubjectInput();
134
		utils.removeOrderIdSelector();
6176 amit.gupta 135
		utils.removeRechargeSelectors();
11943 kshitij.so 136
		utils.removeBulkOrderSelectors();
1464 varun.gupt 137
 
138
		switch(parseInt($(this).val()))	{
139
 
140
			case 1:
1745 varun.gupt 141
				utils.enableComponents('return-product');
142
				utils.addOrderIdSelector('returnable', 'You do not have any completed orders to return');
143
				utils.addSubjectDropdown(dropdownContent.reasonToReturn);
144
				utils.setLabelSubject('Reason');
145
 
1580 varun.gupt 146
				utils.lastQueryType = 1;
1464 varun.gupt 147
				break;
148
 
149
			case 2:
1745 varun.gupt 150
				utils.enableComponents('cancel-order');
151
				utils.addOrderIdSelector('cancellable', 'You do not have any completed orders to cancel');
152
				utils.addSubjectTextbox();
153
				utils.setLabelSubject('Reason');
1582 varun.gupt 154
 
1580 varun.gupt 155
				utils.lastQueryType = 2;
1464 varun.gupt 156
				break;
157
 
158
			case 3:
1745 varun.gupt 159
				utils.enableComponents('delivery-problem');
160
				utils.addOrderIdSelector('all', 'You do not have any orders');
161
				utils.addSubjectDropdown(dropdownContent.deliveryProblem);
162
				utils.setLabelSubject('Problem Type');
1580 varun.gupt 163
 
164
				utils.lastQueryType = 3;
1464 varun.gupt 165
				break;
166
 
167
			case 4:
1745 varun.gupt 168
				utils.enableComponents('payment-status');
169
				utils.addOrderIdSelector('all', 'You do not have any orders');
1580 varun.gupt 170
 
171
				utils.lastQueryType = 4;
1464 varun.gupt 172
				break;
173
 
174
			case 5:
1745 varun.gupt 175
				utils.enableComponents('order-status');
176
				utils.addOrderIdSelector('all', 'You do not have any orders');
177
 
1580 varun.gupt 178
				utils.lastQueryType = 5;
1464 varun.gupt 179
				break;
180
 
181
			case 6:
1745 varun.gupt 182
				utils.enableComponents('product-request');
183
				utils.addSubjectTextbox();
184
				utils.setLabelSubject('Product Name');
185
 
1580 varun.gupt 186
				utils.lastQueryType = 6;
1464 varun.gupt 187
				break;
6176 amit.gupta 188
 
1464 varun.gupt 189
			case 7:
6176 amit.gupta 190
				utils.enableComponents('recharge-related');
191
				utils.addReasonSelector();
192
				utils.setLabelSubject('Reason');
193
				utils.addRechargeSelectors();
194
				utils.lastQueryType = 7;
195
				break;
196
 
197
			case 8:
1745 varun.gupt 198
				utils.enableComponents('other');
199
				utils.addSubjectTextbox();
200
				utils.setLabelSubject('Subject');
6176 amit.gupta 201
 
202
				utils.lastQueryType = 8;
1464 varun.gupt 203
				break;
11943 kshitij.so 204
 
205
			case 21:
206
				utils.enableComponents('bulk-order');
207
				utils.addSubjectTextbox();
208
				utils.setLabelSubject('Product Name');
209
				utils.addBulkOrderSelectors();
210
				utils.lastQueryType = 21;
211
				break;
6176 amit.gupta 212
 
11943 kshitij.so 213
 
1464 varun.gupt 214
			default:
1471 varun.gupt 215
				utils.resetForm();
1464 varun.gupt 216
				break;
217
		}
218
	});
219
 
1745 varun.gupt 220
	$('#order_id').live('change', function(){
1464 varun.gupt 221
		var orderId = parseInt($(this).val());
222
 
223
		if(isNaN(orderId))	{
224
			alert("Order Id must be an integer");
225
		} else	{
226
			jQuery.ajax({
227
				type: "GET",
228
				url: "/contact-us/" + orderId + "",
229
				success: function(data)	{
1745 varun.gupt 230
					if (! $('#productComponent').is(':hidden'))	{
231
						$("#product").removeAttr('disabled').html(data);
232
					}
1464 varun.gupt 233
				}
234
			});
235
		}
236
	});
237
 
238
	$('form[name="frmContactUs"]').validate({
239
		rules: {
240
			email: {
241
				required: true,
242
				email: true
243
			},
244
			order_id: {
245
				required: true,
246
				digits: true
1582 varun.gupt 247
			},
248
			subject: {
249
				required: true
6176 amit.gupta 250
			},
251
			deviceNumber : {
252
				required: true
253
			},
254
			rechargeOrderNumber: {
255
				rechargeordernumber : true
11943 kshitij.so 256
			},
257
			contactNumber : {
258
				required: true,
259
				digits : true,
260
				minlength : 10
261
 
262
			},
263
			quantity : {
264
				required: true,
265
				digits : true
1464 varun.gupt 266
			}
1580 varun.gupt 267
		},
268
		messages: {
269
			order_id: {
270
				digits: "Order ID must be a valid number"
6176 amit.gupta 271
			},
272
			rechargeOrderNumber : "Please enter valid order number",
273
			deviceNumber : "DHT/Mobile number is required"
1464 varun.gupt 274
		}
275
	});
276
});