Subversion Repositories SmartDukaan

Rev

Rev 11943 | 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
 
12859 kshitij.so 127
	$('#submit').click(function() {
128
	var formName = "frmContactUs";
129
	var captcha_response_input = jQuery("form[name='" + formName + "'] :input[name='captcha_response_field']");
130
	var entered_text =  jQuery.trim(captcha_response_input.val());
131
    	if(entered_text == '' || entered_text == 'Enter the characters shown'){
132
    		alert("Please enter the characters shown.");
133
    		captcha_response_input.blur();
134
			return false;
135
    	}
136
    });
137
 
138
 
1464 varun.gupt 139
	$('#communication_category').change(function(){
1745 varun.gupt 140
		utils.disableAllComponents();
141
		$('label.error').remove();
1464 varun.gupt 142
		$('#frmContactUs input[name="submit"]').removeAttr('disabled');
1471 varun.gupt 143
		utils.resetProductSelector();
1580 varun.gupt 144
		utils.activateResetButton();
1745 varun.gupt 145
		utils.removeSubjectInput();
146
		utils.removeOrderIdSelector();
6176 amit.gupta 147
		utils.removeRechargeSelectors();
11943 kshitij.so 148
		utils.removeBulkOrderSelectors();
1464 varun.gupt 149
 
150
		switch(parseInt($(this).val()))	{
151
 
152
			case 1:
1745 varun.gupt 153
				utils.enableComponents('return-product');
154
				utils.addOrderIdSelector('returnable', 'You do not have any completed orders to return');
155
				utils.addSubjectDropdown(dropdownContent.reasonToReturn);
156
				utils.setLabelSubject('Reason');
157
 
1580 varun.gupt 158
				utils.lastQueryType = 1;
1464 varun.gupt 159
				break;
160
 
161
			case 2:
1745 varun.gupt 162
				utils.enableComponents('cancel-order');
163
				utils.addOrderIdSelector('cancellable', 'You do not have any completed orders to cancel');
164
				utils.addSubjectTextbox();
165
				utils.setLabelSubject('Reason');
1582 varun.gupt 166
 
1580 varun.gupt 167
				utils.lastQueryType = 2;
1464 varun.gupt 168
				break;
169
 
170
			case 3:
1745 varun.gupt 171
				utils.enableComponents('delivery-problem');
172
				utils.addOrderIdSelector('all', 'You do not have any orders');
173
				utils.addSubjectDropdown(dropdownContent.deliveryProblem);
174
				utils.setLabelSubject('Problem Type');
1580 varun.gupt 175
 
176
				utils.lastQueryType = 3;
1464 varun.gupt 177
				break;
178
 
179
			case 4:
1745 varun.gupt 180
				utils.enableComponents('payment-status');
181
				utils.addOrderIdSelector('all', 'You do not have any orders');
1580 varun.gupt 182
 
183
				utils.lastQueryType = 4;
1464 varun.gupt 184
				break;
185
 
186
			case 5:
1745 varun.gupt 187
				utils.enableComponents('order-status');
188
				utils.addOrderIdSelector('all', 'You do not have any orders');
189
 
1580 varun.gupt 190
				utils.lastQueryType = 5;
1464 varun.gupt 191
				break;
192
 
193
			case 6:
1745 varun.gupt 194
				utils.enableComponents('product-request');
195
				utils.addSubjectTextbox();
196
				utils.setLabelSubject('Product Name');
197
 
1580 varun.gupt 198
				utils.lastQueryType = 6;
1464 varun.gupt 199
				break;
6176 amit.gupta 200
 
1464 varun.gupt 201
			case 7:
6176 amit.gupta 202
				utils.enableComponents('recharge-related');
203
				utils.addReasonSelector();
204
				utils.setLabelSubject('Reason');
205
				utils.addRechargeSelectors();
206
				utils.lastQueryType = 7;
207
				break;
208
 
209
			case 8:
1745 varun.gupt 210
				utils.enableComponents('other');
211
				utils.addSubjectTextbox();
212
				utils.setLabelSubject('Subject');
6176 amit.gupta 213
 
214
				utils.lastQueryType = 8;
1464 varun.gupt 215
				break;
11943 kshitij.so 216
 
217
			case 21:
218
				utils.enableComponents('bulk-order');
219
				utils.addSubjectTextbox();
220
				utils.setLabelSubject('Product Name');
221
				utils.addBulkOrderSelectors();
222
				utils.lastQueryType = 21;
223
				break;
6176 amit.gupta 224
 
11943 kshitij.so 225
 
1464 varun.gupt 226
			default:
1471 varun.gupt 227
				utils.resetForm();
1464 varun.gupt 228
				break;
229
		}
230
	});
231
 
1745 varun.gupt 232
	$('#order_id').live('change', function(){
1464 varun.gupt 233
		var orderId = parseInt($(this).val());
234
 
235
		if(isNaN(orderId))	{
236
			alert("Order Id must be an integer");
237
		} else	{
238
			jQuery.ajax({
239
				type: "GET",
240
				url: "/contact-us/" + orderId + "",
241
				success: function(data)	{
1745 varun.gupt 242
					if (! $('#productComponent').is(':hidden'))	{
243
						$("#product").removeAttr('disabled').html(data);
244
					}
1464 varun.gupt 245
				}
246
			});
247
		}
248
	});
249
 
250
	$('form[name="frmContactUs"]').validate({
251
		rules: {
252
			email: {
253
				required: true,
254
				email: true
255
			},
256
			order_id: {
257
				required: true,
258
				digits: true
1582 varun.gupt 259
			},
260
			subject: {
261
				required: true
6176 amit.gupta 262
			},
263
			deviceNumber : {
264
				required: true
265
			},
266
			rechargeOrderNumber: {
267
				rechargeordernumber : true
11943 kshitij.so 268
			},
269
			contactNumber : {
270
				required: true,
271
				digits : true,
272
				minlength : 10
273
 
274
			},
275
			quantity : {
276
				required: true,
277
				digits : true
1464 varun.gupt 278
			}
1580 varun.gupt 279
		},
280
		messages: {
281
			order_id: {
282
				digits: "Order ID must be a valid number"
6176 amit.gupta 283
			},
284
			rechargeOrderNumber : "Please enter valid order number",
285
			deviceNumber : "DHT/Mobile number is required"
1464 varun.gupt 286
		}
287
	});
288
});