Subversion Repositories SmartDukaan

Rev

Rev 1745 | 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(){
1745 varun.gupt 2
	var dropdownContent = {
3
		reasonToReturn: ['Wrong product delivered', 'Product received in damaged condition'],
4
 
5
		deliveryProblem:[
6
		      'Packet received in damaged condition',
7
		      'Seal tampered', 
8
		      'Delivery not received', 
9
		      'Delivery person asking for Extra shipping/Octroi Charges'
10
		]
11
	};
12
 
1471 varun.gupt 13
	var utils = {
1580 varun.gupt 14
			lastQueryType: -1,
15
 
1745 varun.gupt 16
			removeSubjectInput: function()	{
17
				$('#lblSubject').siblings('input, select').each(function(){
18
					$(this).remove();
19
				});
20
			},
1582 varun.gupt 21
 
1745 varun.gupt 22
			addSubjectDropdown: function(listOptions)	{
23
				html = '<select name="subject">\n';
24
 
25
				for(index in listOptions)	{
26
					html += '<option value="' + listOptions[index] + '">' + listOptions[index] + '</option>\n';
27
				}
28
				html += '</select>';
29
				$('#lblSubject').after(html);
30
			},
31
 
32
			addSubjectTextbox: function()	{
33
				$('#lblSubject').after('<input type="text" name="subject" />');
34
			},
35
 
36
			disableAllComponents: function(){
37
				$('div.contact-form-component').hide().find("input, select, textarea").attr("disable", "disable");
38
			},
1580 varun.gupt 39
 
1745 varun.gupt 40
            enableComponents: function(className){
41
				$('div.' + className).show().find("input, select, textarea").removeAttr('disable');
42
            },
43
 
44
            setLabelSubject:function(label)	{
45
            	$('#lblSubject').text(label);
46
            },
47
 
1471 varun.gupt 48
			resetProductSelector: function()	{
49
				$('#product').html('<option value="-1">Select Product</option>').attr('disabled', 'true');
50
			},
51
			resetForm: function()	{
52
				$('#communication_category').val("-1");
53
				this.resetProductSelector();
1745 varun.gupt 54
				this.disableAllComponents();
1639 varun.gupt 55
				$('label.error').remove();
1745 varun.gupt 56
				$('#submit, #resetFormButton').attr('disabled', 'disabled');
1471 varun.gupt 57
			},
58
			activateResetButton: function() {
59
				$('#resetFormButton').removeAttr('disabled');
1580 varun.gupt 60
			},
1745 varun.gupt 61
			addOrderIdSelector: function(selectorType, errMsg)	{
62
				var methodToCall = 'all_orders';
63
 
64
				if (selectorType == 'returnable')	{
65
					methodToCall = 'to_return';
66
				}
67
				else if (selectorType == 'cancellable')	{
68
					methodToCall = 'to_cancel';
69
				}
70
 
71
				jQuery.ajax({
72
					type: "GET",
73
					url: "/contact-us/" + methodToCall,
74
					success: function(data)	{
75
						if($.trim(data) == "<option value='-1'>No Orders Found</option>")	{
76
							alert(errMsg);
77
							utils.resetForm();
1580 varun.gupt 78
						}
1745 varun.gupt 79
						else	{
80
							html = '<select name="order_id" id="order_id">\n';
81
							html += data + '\n';
82
							html += '</select>';
83
							$("#orderComponent").append(html);
84
						}
85
					}
86
				});
1580 varun.gupt 87
			},
88
			removeOrderIdSelector: function()	{
1745 varun.gupt 89
				$('#order_id').remove();
1471 varun.gupt 90
			}
91
	};
92
 
93
	$('#resetFormButton').click(function() {
94
		utils.resetForm();
95
	});
96
 
1464 varun.gupt 97
	$('#communication_category').change(function(){
1745 varun.gupt 98
		utils.disableAllComponents();
99
		$('label.error').remove();
1464 varun.gupt 100
		$('#frmContactUs input[name="submit"]').removeAttr('disabled');
1471 varun.gupt 101
		utils.resetProductSelector();
1580 varun.gupt 102
		utils.activateResetButton();
1745 varun.gupt 103
		utils.removeSubjectInput();
104
		utils.removeOrderIdSelector();
1464 varun.gupt 105
 
106
		switch(parseInt($(this).val()))	{
107
 
108
			case 1:
1745 varun.gupt 109
				utils.enableComponents('return-product');
110
				utils.addOrderIdSelector('returnable', 'You do not have any completed orders to return');
111
				utils.addSubjectDropdown(dropdownContent.reasonToReturn);
112
				utils.setLabelSubject('Reason');
113
 
1580 varun.gupt 114
				utils.lastQueryType = 1;
1464 varun.gupt 115
				break;
116
 
117
			case 2:
1745 varun.gupt 118
				utils.enableComponents('cancel-order');
119
				utils.addOrderIdSelector('cancellable', 'You do not have any completed orders to cancel');
120
				utils.addSubjectTextbox();
121
				utils.setLabelSubject('Reason');
1582 varun.gupt 122
 
1580 varun.gupt 123
				utils.lastQueryType = 2;
1464 varun.gupt 124
				break;
125
 
126
			case 3:
1745 varun.gupt 127
				utils.enableComponents('delivery-problem');
128
				utils.addOrderIdSelector('all', 'You do not have any orders');
129
				utils.addSubjectDropdown(dropdownContent.deliveryProblem);
130
				utils.setLabelSubject('Problem Type');
1580 varun.gupt 131
 
132
				utils.lastQueryType = 3;
1464 varun.gupt 133
				break;
134
 
135
			case 4:
1745 varun.gupt 136
				utils.enableComponents('payment-status');
137
				utils.addOrderIdSelector('all', 'You do not have any orders');
1580 varun.gupt 138
 
139
				utils.lastQueryType = 4;
1464 varun.gupt 140
				break;
141
 
142
			case 5:
1745 varun.gupt 143
				utils.enableComponents('order-status');
144
				utils.addOrderIdSelector('all', 'You do not have any orders');
145
 
1580 varun.gupt 146
				utils.lastQueryType = 5;
1464 varun.gupt 147
				break;
148
 
149
			case 6:
1745 varun.gupt 150
				utils.enableComponents('product-request');
151
				utils.addSubjectTextbox();
152
				utils.setLabelSubject('Product Name');
153
 
1580 varun.gupt 154
				utils.lastQueryType = 6;
1464 varun.gupt 155
				break;
156
 
157
			case 7:
1745 varun.gupt 158
				utils.enableComponents('other');
159
				utils.addSubjectTextbox();
160
				utils.setLabelSubject('Subject');
161
 
1580 varun.gupt 162
				utils.lastQueryType = 7;
1464 varun.gupt 163
				break;
164
 
165
			default:
1471 varun.gupt 166
				utils.resetForm();
1464 varun.gupt 167
				break;
168
		}
169
	});
170
 
1745 varun.gupt 171
	$('#order_id').live('change', function(){
1464 varun.gupt 172
		var orderId = parseInt($(this).val());
173
 
174
		if(isNaN(orderId))	{
175
			alert("Order Id must be an integer");
176
		} else	{
177
			jQuery.ajax({
178
				type: "GET",
179
				url: "/contact-us/" + orderId + "",
180
				success: function(data)	{
1745 varun.gupt 181
					if (! $('#productComponent').is(':hidden'))	{
182
						$("#product").removeAttr('disabled').html(data);
183
					}
1464 varun.gupt 184
				}
185
			});
186
		}
187
	});
188
 
189
	$('form[name="frmContactUs"]').validate({
190
		rules: {
191
			email: {
192
				required: true,
193
				email: true
194
			},
195
			order_id: {
196
				required: true,
197
				digits: true
1582 varun.gupt 198
			},
199
			subject: {
200
				required: true
1464 varun.gupt 201
			}
1580 varun.gupt 202
		},
203
		messages: {
204
			order_id: {
205
				digits: "Order ID must be a valid number"
206
			}
1464 varun.gupt 207
		}
208
	});
209
});