Subversion Repositories SmartDukaan

Rev

Rev 1642 | Rev 5145 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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