Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
7272 amit.gupta 1
 
2
 
3
$(document).ready(function(){
4
 
5
	tempLogEmail = ""; 	// Store email id of login page for reg user via shop2020 and via facebook
6
	emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
7
 
8
	blnFieldChanged 	= false;
9
	blnCancelClicked 	= false;
10
 
11
	/**
12
		Personal Details page 
13
	*/
14
	if($("#personalDetails").length){
15
 
16
		arrPersonalDetail = new Array(7); // Store Personal Detail page field change status and initial data
17
 
18
		/*
19
		perName		 = "Tanuj Shah";
20
		perMonth 	 = "June";
21
		perDay 		 = "4";
22
		perYear 	 = "1984";
23
		perSex 		 = "male";
24
		perCommEmail = "tanuj@tanujshah.com";
25
		perSubscribe = true;
26
		*/
27
		// Personal Details page field name 
28
		frmPersonal  	  = "#frmPersonalDetails";
29
		perFieldName 	  = frmPersonal + " #txtName";
30
		perFieldDateOfBirth	  = frmPersonal + " #txtDateOfBirth";
31
		perFieldSex		  = frmPersonal + " input[name='sex']";
32
		perFieldCommEmail = frmPersonal + " #txtCommEmail";
33
		perFieldSubscribe = frmPersonal + " input[name='subscribe']";
34
		perFieldPhone 	  = frmPersonal + " #txtPhone";
35
 
36
		personalDetailSetup();
37
	}
38
 
39
	/**
40
		Login Detail page for reg user via shop2020 
41
	*/
42
	if($("#registeredUserShop2020:visible").length > 0){			
43
		/*
44
		logRegEmail = "tanuj@tanujshah.com";
45
		*/
46
		// Login Details page Registered User field name
47
		frmLogReg 		= "#frmRegisUser";
48
		regFieldEmail	= frmLogReg + " #txtLoginID";
49
		regFieldOldPass	= frmLogReg + " #txtOldPassword";
50
		regFieldNewPass	= frmLogReg + " #txtNewPassword";
51
		regFieldConPass	= frmLogReg + " #txtConfirmPassword";
52
 
53
		registeredUserSetup();
54
	}
55
 
56
	/**
57
		Login Detail page for reg user via facebook 
58
	*/
59
	if($("#registeredUserFacebook:visible").length > 0){
60
		/*
61
		logRegFBEmail = "tanuj@tanujshah.com";
62
		*/
63
 
64
		// Login Details page Registered User via Facebook field name
65
		frmLogRegFB  		= "#frmFacebookUser";
66
		regFieldFBEmail 	= frmLogRegFB + " #txtFacebookLogin";
67
		regFieldFBPass		= frmLogRegFB + " #txtPassword";
68
 
69
		registeredUserFBSetup();
70
	}
71
 
72
	/**
73
		Shipping Address page 
74
	*/
75
	if($("#shippingAddress").length){
76
 
77
		arrOtherAddID 	= [];	// 1D Array
78
		arrBackupAdd	= [];	// 1D Array
79
 
80
		shippingAddressSetup();
81
	}
82
 
83
	$('div#changeAddresses').hide();
84
	$('div#changeAddressSave').hide();
85
	$('div#changeAddressCancel').hide();
86
 
87
	$('div#changeAddress').live('click', function() {
88
		$('div#changeAddressSave').show();
89
		$('div#changeAddressCancel').show();
90
		$('div#changeAddresses').show();
91
		$('div#changeAddress').hide();
92
		scrollWindow('changeAddressSave', 1000);
93
    });
94
 
95
	$('div#changeAddressCancel').live('click', function() {
96
        $('div#changeAddressSave').hide();
97
        $('div#changeAddressCancel').hide();
98
        $('div#changeAddresses').hide();
99
        $('div#changeAddress').show();
100
	});
101
 
102
	$('#changeAddresses #addresses .button-address-select').live('click', function() {
103
	    $('#addresses tr').removeClass('default-address');
104
	    $('#addresses tr td img').addClass('button-address-select');
105
	    $('#addresses tr td img').attr('src', '/images/RadioButton_Unselected.png');
106
 
107
	    $(this).attr('src', '/images/RadioButton_Selected.png');
108
	    $(this).closest('tr').addClass('default-address');
109
	    $(this).removeClass('button-address-select');
110
    });
111
 
112
	$('button#addAddress').live('click', function() {
113
        $('div.saveCancelDiv').hide();
114
        scrollWindow('frmShippingAddress', 1000);
115
    });
116
 
117
    $('a#closeAddAddressForm').live('click', function() {
118
        $('div.saveCancelDiv').show();
119
    });
120
 
121
    $('#myAccount #frmShippingAddress').live('submit', function() {
122
        $.ajax({
123
            type : 'POST',
124
            url  : '/address',
125
            data : $(this).serialize(),
126
            success : function(response) {
127
                          $('#addresses').html($(response).find('#addresses'));
128
                          $('#closeAddAddressForm').click();
129
                          scrollWindow('tr_' + $('.default-address').attr('addressId'), 1000);
130
                      }
131
        });
132
 
133
        return false;
134
    });
135
 
136
	$('div#changeAddressSave').live('click', function() {
137
	    var orderId   = $('.default-address').attr('orderid');
138
	    var pincode   = $('.default-address').attr('pincode');
139
	    var itemId    = $('.default-address').attr('itemid');
140
	    var addressId = $('.default-address').attr('addressid');
141
 
142
	    jQuery.ajax({
143
			type    : 'GET',
144
			url     : '/estimate/' + pincode + '_' + itemId,
145
			success : function(response) {
146
			    response = JSON.parse(response);
147
			    var days = response.delivery_estimate;
148
				if (days == -1 || response.is_cod_available_for_location == "false") {
149
					alert('This location is not serviceable.');
150
				}
151
				else {
152
					if (confirm('Delivery can take upto ' + days + ' business days after changing this address. Do you wish to continue ?')) {
153
					    $.ajax({
154
					        type    : 'POST',
155
					        url     : '/order!modifyAddress',
156
					        data    : 'orderId=' + orderId + "&addressId=" + addressId + "&days=" + days,
157
					        success : function() {
158
					            document.location.href = "/order/" + orderId;
159
                            }
160
					    });
161
					}
162
				}
163
			}
164
		});
165
	});
166
 
167
	$('#order_cancel').live('click', function() {
168
        $(this).hide();
169
        $('#frmCancelOrder').show();
170
    });
171
 
172
	$('#frmCancelOrder').validate({
173
		rules: {
174
			email: {
175
				required: true,
176
				email: true
177
			},
178
			order_id: {
179
				required: true,
180
				digits: true
181
			},
182
			subject: {
183
				required: true
184
			}
185
		},
186
		messages: {
187
			order_id: {
188
				digits: "Order ID must be a valid number"
189
			}
190
		}
191
	});
192
 
193
	$('#frmCancelOrder').live('submit', function() {
194
        $.ajax({
195
            type : 'POST',
196
            url  : '/contact-us',
197
            data : $(this).serialize(),
198
            success : function(response) {
199
                          $('#frmCancelOrder').hide();
200
                          $('#orderStatus').html('Cancellation Requested');
201
                          $('#orderStatus').css({'color': 'red'});
202
                      }
203
        });
204
 
205
        return false;
206
    });
207
 
208
	$('div#CancelButton').live('click', function() {
209
		$('label.error').remove();
210
        $('#frmCancelOrder').hide();
211
        $('#order_cancel').show();
212
	});
213
 
214
	$('.refund-recharge-button').click(function() {
215
		var orderId = $(this).attr('orderId');
216
		$('.refund-recharge-button').remove();
217
		$('#refundButtonDiv-' + orderId).html("Please Wait...");
218
		$('#refundRechargeForm-' + orderId).submit();
219
	});
220
 
221
});
222
 
223
/**
224
	Primary Address output for Shipping Address page
225
*/
226
function printPriAddress(str) {
227
 
228
	if(str == "default"){
229
		priName 	= "Ankur Jain";
230
		priAdd1 	= "Bldg. No.90890,";
231
		priAdd2 	= "East Anjenya Temple Street, Basavangudi";
232
		priCity 	= "Raipur";
233
		priPinCode 	= "566786";
234
		priState 	= "Madhya Pradesh";
235
		priMobile 	= "9657598799";
236
		priLandline	= "080 - 56745687";
237
	}else if(str == "makePrimary"){
238
		// backup of primary address
239
		if($(".noAddress1:visible").length != 1){
240
			arrBackupAdd.push($("#primaryAddress .address").html());
241
		}else{
242
			$("#primaryAddress .addressButton").show();
243
			$(".noAddress1").hide();
244
		}
245
 
246
		// Adding new entry as primary address
247
		priName 	= $("#shippingAddress #txtName").val();
248
		priAdd1 	= $("#shippingAddress #txtAddress").val();
249
		priAdd2 	= $("#shippingAddress #txtAddress2").val();
250
		priCity 	= $("#shippingAddress #city option:selected").val();
251
		priPinCode 	= $("#shippingAddress #txtPinCode").val();
252
		priState 	= $("#shippingAddress #state option:selected").val();
253
		priMobile 	= $("#shippingAddress #txtMobile").val();
254
		priLandline	= $("#shippingAddress #txtAreaCode").val() + ' - ' + $("#shippingAddress #txtLandline").val();
255
	}
256
 
257
	tempPri = priName + "<br />" + priAdd1 + "<br />" + priAdd2 + "<br />" + priCity + "<br />" + priPinCode + "<br />" + priState + "<br /> Mobile: " + priMobile + "<br /> Landline: " + priLandline;
258
 
259
	if(str == "default"){
260
		primaryAddress = '<div class="address">';
261
		primaryAddress += tempPri;
262
		primaryAddress += "</div>";
263
 
264
		primaryAddress += '<div class="addressButton">';
265
		primaryAddress += '	 <div class="imgDeleteButton deleteWidth">';
266
		primaryAddress += '		<div class="left">';
267
		primaryAddress += '		<div class="right">';
268
		primaryAddress += '			 <input type="button" onclick="delAddress(\'primaryAddress\');" value="Delete" class="button" />';
269
		primaryAddress += '		</div>';
270
		primaryAddress += '		</div>';
271
		primaryAddress += '	</div>';
272
		primaryAddress += '</div>';
273
 
274
		$("#primaryAddress").html(primaryAddress);
275
	}else if(str == "makePrimary"){
276
		$("#primaryAddress .address").html(tempPri);
277
	}
278
}
279
 
280
/**
281
	Other Address output for Shipping Address page
282
*/
283
function printOtherAddress(str){
284
 
285
	var otherAddress = "";
286
	var addressID 	 = "";
287
 
288
	var tempAdd;
289
 
290
	// No. of addresses to print
291
	if(str == "default"){
292
		len = 2; 
293
	}else{
294
 
295
		// backup of other addresses
296
		for(var i=0; i<arrOtherAddID.length; i++){
297
			var temp = $("#" + arrOtherAddID[i] + " .address").html();
298
			arrBackupAdd.push(temp);
299
		}
300
 
301
		// Add new id for new entry
302
		arrOtherAddID.push('address' + (arrOtherAddID.length + 1));
303
 
304
		len = arrOtherAddID.length;	
305
 
306
		// Reset address id container
307
		for(var i=0; i<len; i++){
308
			arrOtherAddID.pop();
309
		}
310
 
311
		// If no address is visible, make it hidden
312
		if($(".noAddress2:visible").length > 0){
313
			$(".noAddress2").hide();
314
		}
315
	}
316
 
317
	// Print the addresses
318
 
319
	if(len > 0){
320
		for(var i=0; i<len; i++){
321
			if(str == "default"){
322
				otherName 	  = "Ankur Jain " + (i+1);
323
				otherAdd1 	  = "Bldg. No.90890,";
324
				otherAdd2 	  = "East Anjenya Temple Street, Basavangudi";
325
				otherCity 	  = "Raipur";
326
				otherPinCode  = "566786";
327
				otherState 	  = "Madhya Pradesh";
328
				otherMobile   = "9657598799";
329
				otherLandline = "080 - 56745687";
330
 
331
				tempAdd = otherName + "<br />" + otherAdd1 + "<br />" + otherAdd2 + "<br />" + otherCity + "<br />" + otherPinCode + "<br />" + otherState + "<br /> Mobile: " + otherMobile + "<br /> Landline: " + otherLandline;
332
			}else {
333
				// Add new entry as first in other address when save button is clicked
334
				if((i == 0) && (str != "makePrimary")){ 
335
					otherName		= $("#shippingAddress #txtName").val();
336
					otherAdd1 		= $("#shippingAddress #txtAddress").val();
337
					otherAdd2 		= $("#shippingAddress #txtAddress2").val();
338
					otherCity 		= $("#shippingAddress #city option:selected").val();
339
					otherPinCode 	= $("#shippingAddress #txtPinCode").val();
340
					otherState 		= $("#shippingAddress #state option:selected").val();
341
					otherMobile 	= $("#shippingAddress #txtMobile").val();
342
					otherLandline	= $("#shippingAddress #txtAreaCode").val() + ' - ' + $("#shippingAddress #txtLandline").val();
343
 
344
					tempAdd = otherName + "<br />" + otherAdd1 + "<br />" + otherAdd2 + "<br />" + otherCity + "<br />" + otherPinCode + "<br />" + otherState + "<br /> Mobile: " + otherMobile + "<br /> Landline: " + otherLandline;
345
				}else{
346
					if(str != "makePrimary"){
347
						tempAdd = arrBackupAdd[i-1];
348
					}else{
349
						tempAdd = arrBackupAdd[i];
350
					}
351
				}
352
			}
353
 
354
			addressID = 'address' + (i+1);
355
			arrOtherAddID.push(addressID);
356
 
357
			otherAddress += '<div id="' + addressID + '">';
358
 
359
				// Address
360
				otherAddress += '<div class="address">';
361
				otherAddress += tempAdd;
362
				otherAddress += '</div>';
363
 
364
				// Buttons
365
				otherAddress += '<div class="addressButton">';
366
 
367
					// Delete button
368
					otherAddress += '<div class="imgDeleteButton deleteWidth">';
369
					otherAddress += '	<div class="left">';
370
					otherAddress += '	<div class="right">';
371
					otherAddress += '		<input type="button" onclick="delAddress(\'' + addressID + '\');" value="Delete" class="button" />';
372
					otherAddress += '	</div>';
373
					otherAddress += '	</div>';
374
					otherAddress += '</div>';
375
 
376
					// Make primary address button
377
					otherAddress += '<div class="imgEnableButton priAddressWidth">';
378
					otherAddress += '		<div class="left">';
379
					otherAddress += '		<div class="right">';
380
					otherAddress += '			 <input type="button" onclick="makePriAddress(\'' + addressID + '\');" value="Make Primary Address" class="button" />';
381
					otherAddress += '		</div>';
382
					otherAddress += '		</div>';
383
					otherAddress += '</div>';
384
					otherAddress += '<div class="clearBoth"></div>';
385
 
386
				otherAddress += '</div>';
387
 
388
				if(i < len-1){	otherAddress += '<br /><br />';	 }
389
 
390
			otherAddress += '</div>';
391
		}
392
 
393
		$("#addressContainer").html(otherAddress);
394
 
395
		// Reset backup array
396
		len = arrBackupAdd.length;
397
 
398
		for(var i=0; i<len; i++){
399
			arrBackupAdd.pop();
400
		}
401
	}else{
402
		$(".noAddress2").show();
403
	}
404
}
405
 
406
/**
407
	Reset Shiping address for Shipping Address page
408
*/
409
function resetShipingAddress(){
410
	$("#shippingAddress #txtName").val("");
411
	$("#shippingAddress #txtAddress").val("");
412
	$("#shippingAddress #txtAddress2").val("");
413
	$("#shippingAddress #city option[value='0']").attr('selected', 'selected');
414
	$("#shippingAddress #state option[value='0']").attr('selected', 'selected');
415
	$("#shippingAddress #txtPinCode").val("");
416
	$("#shippingAddress #txtMobile").val("");
417
	$("#shippingAddress #txtAreaCode").val("Area Code");
418
	$("#shippingAddress #txtLandline").val("");
419
}
420
 
421
/**
422
	Save address for Shipping Address page
423
*/
424
function saveAddress(str){
425
 
426
	if(str != "cancel"){
427
		// form validation
428
		var nameVal 	= jQuery.trim($("#shippingAddress #txtName").val());
429
		var add1Val 	= jQuery.trim($("#shippingAddress #txtAddress").val());
430
		var stateVal 	= $("#shippingAddress #state option:selected").val();
431
		var cityVal 	= $("#shippingAddress #city option:selected").val();
432
		var pinCodeVal  = jQuery.trim($("#shippingAddress #txtPinCode").val());
433
		var mobileVal	= jQuery.trim($("#shippingAddress #txtMobile").val());
434
		var areaCodeVal = jQuery.trim($("#shippingAddress #txtAreaCode").val());
435
		var landLineVal	= jQuery.trim($("#shippingAddress #txtLandline").val());
436
 
437
		if(nameVal.length == 0){
438
			alert("Please enter name.");
439
 
440
			$("#shippingAddress #txtName").focus();
441
			return false;	
442
		}else if(add1Val.length == 0){
443
			alert("Please enter address.");
444
 
445
			$("#shippingAddress #txtAddress").focus();
446
			return false;	
447
		}else if(stateVal == "0"){
448
			alert("Please select state.");
449
 
450
			$("#shippingAddress #state").focus();
451
			return false;	
452
		}else if(cityVal == "0"){
453
			alert("Please select city.");
454
 
455
			$("#shippingAddress #city").focus();
456
			return false;	
457
		}else if(pinCodeVal.length == 0){
458
			alert("Please enter pin code.");
459
 
460
			$("#shippingAddress #txtPinCode").focus();
461
			return false;	
462
		}else if(mobileVal.length == 0){
463
			alert("Please enter mobile no.");
464
 
465
			$("#shippingAddress #txtMobile").focus();
466
			return false;	
467
		}else if(areaCodeVal.length == 0 || areaCodeVal == "Area Code"){
468
			alert("Please enter area code.");
469
 
470
			$("#shippingAddress #txtAreaCode").focus();
471
			return false;	
472
		}else if(landLineVal.length == 0){
473
			alert("Please enter landline no.");
474
 
475
			$("#shippingAddress #txtLandline").focus();
476
			return false;	
477
		}else{
478
			if(str == "makePrimary"){
479
				printPriAddress(str);
480
 
481
				if(arrBackupAdd.length > 0){
482
					printOtherAddress(str);
483
				}
484
			}else if(str == "save"){
485
				printOtherAddress(str);
486
			}
487
		}
488
	}
489
 
490
	// Enable first addAddress button
491
	$("#addAddress1").removeClass('imgDisableButton').addClass('imgEnableButton');
492
	$("#addAddress1 input[disabled='']").removeAttr('disabled');
493
 
494
	// Show second addAddress button
495
	$("#addAddress2").show();
496
 
497
	// Hide add new address form
498
	$("#addNewAddress").hide();
499
	scrollWindow("shippingAddress", 1000);
500
 
501
	// Reset Form
502
	resetShipingAddress();
503
}
504
 
505
/**
506
	Add address for Shipping Address page
507
*/
508
function addNewAddress(){
509
	// Disable first addAddress button
510
	$("#addAddress1").removeClass('imgEnableButton').addClass('imgDisableButton');
511
	$("#addAddress1 input[name='addAddress1']").attr('disabled','disabled');
512
 
513
	// Hide second addAddress button
514
	$("#addAddress2").hide();
515
 
516
	// Show add new address form
517
	$("#addNewAddress").show();
518
	scrollWindow("addNewAddress", 2000);
519
 
520
	$("#addNewAddress #txtName").focus();
521
}
522
 
523
/**
524
	Make Primary address for Shipping Address page
525
*/
526
function makePriAddress(containerID){
527
	var arrTempAdd = new Array();
528
	var oldAddress = $("#primaryAddress .address").html(newAddress);
529
 
530
	// Make clicked other address as primary address
531
	var newAddress = $("#" + containerID + " .address").html();
532
	$("#primaryAddress .address").html(newAddress);
533
 
534
	// If primary address delete button is hidden, make it visible
535
	if($(".noAddress1:visible").length > 0){
536
		$("#primaryAddress .addressButton").show();
537
		$(".noAddress1").hide();
538
	}
539
 
540
	if(oldAddress != ""){
541
		arrTempAdd.push(oldAddress);
542
 
543
		// Shift Other addresses
544
		for(var i=0; i<arrOtherAddID.length; i++){
545
			if(containerID != arrOtherAddID[i]){
546
				var temp = $("#" + arrOtherAddID[i] + " .address").html();
547
				arrTempAdd.push(temp);
548
			}
549
		}
550
 
551
		// Display arranged other addresses
552
		for(var i=0; i<arrTempAdd.length; i++){
553
			$("#" + arrOtherAddID[i] + " .address").html(arrTempAdd[i]);
554
		}
555
	}else{
556
		// Remove the clicked container because empty address cann't be swapped with this
557
		$("#" + containerID).remove();
558
 
559
		for(var i=0; i<arrOtherAddID.length; i++){
560
			if(containerID == arrOtherAddID[i]){
561
				arrOtherAddID.splice(i, 1);	
562
			}
563
		}
564
 
565
		if(arrOtherAddID.length == 0){
566
			$(".noAddress2").show();
567
		}
568
	}
569
 
570
	scrollWindow('shippingAddress', 1000);	
571
}
572
 
573
/**
574
	Delete address for Shipping Address page
575
*/
576
function delAddress(containerID){
577
 
578
	if(containerID == "primaryAddress"){
579
		if(arrOtherAddID.length > 0){
580
			// insert 1st other address value to primary address container
581
			var newAddress =  $("#" + arrOtherAddID[0] + " .address").html();
582
			$("#" + containerID + " .address").html(newAddress);
583
 
584
			// remove 1st other address
585
			$("#" + arrOtherAddID[0]).slideUp('slow', function(){
586
				$(this).remove();
587
			});
588
 
589
			arrOtherAddID.shift(); // remove top element
590
 
591
			if(arrOtherAddID.length == 0){
592
				$(".noAddress2").show();
593
			}
594
		}else{
595
			$("#" + containerID).slideUp('slow', function(){				
596
				$(".address", this).html("");
597
				$(".addressButton", this).hide();
598
				$(this).show();
599
			});
600
 
601
			$(".noAddress1").show();
602
		}
603
	}else{
604
		$("#" + containerID).slideUp('slow', function(){
605
			$(this).remove();
606
		});
607
 
608
		// remove deleted element from array
609
		for(var i=0; i<arrOtherAddID.length; i++){
610
			if(containerID == arrOtherAddID[i]){
611
				arrOtherAddID.splice(i, 1);
612
			}
613
		}
614
 
615
		if(arrOtherAddID.length == 0){	
616
			$(".noAddress2").show();	
617
		}
618
	}
619
 
620
}
621
 
622
/**
623
	Shipping Address page setup
624
*/
625
function shippingAddressSetup(){
626
 
627
	// Print Primary address
628
 
629
	// printPriAddress('default');
630
 
631
	// Print Other Address
632
	// printOtherAddress('default');
633
 
634
	// Add Address button
635
	$("#shippingAddress input[name=addAddress1]").click(function(){
636
		addNewAddress();
637
	});
638
 
639
	$("#shippingAddress input[name=addAddress2]").click(function(){
640
		addNewAddress();
641
	});
642
 
643
	// AreaCode default value hide
644
	$("#txtAreaCode").focus(function(){
645
		if($(this).val() == "Area Code"){
646
			$(this).val("");
647
		}
648
	});
649
 
650
	// AreaCode default value show
651
	$("#txtAreaCode").blur(function(){
652
		if($(this).val() == ""){
653
			$(this).val("Area Code");
654
		}
655
	});
656
 
657
	// Save and make primary address button
658
	$("#shippingAddress input[name=saveMakePriAddress]").click(function(){
659
		saveAddress('makePrimary');
660
	});
661
 
662
	// Save address button
663
	$("#shippingAddress input[name=saveAddress]").click(function(){
664
		saveAddress('save');
665
	});
666
 
667
	// cancel address button
668
	$("#shippingAddress input[name=cancelAddress]").click(function(){
669
		saveAddress('cancel');
670
	});
671
}
672
 
673
/**
674
	Personal Login Details page setup
675
*/
676
function personalDetailSetup(){
677
 
678
	preFilledValues(frmPersonal);
679
 
680
	// initialize arr
681
	for(var i=0; i<arrPersonalDetail.length; i++){
682
		arrPersonalDetail[i] = new Array(2);
683
 
684
		arrPersonalDetail[i][0] = false;	// This col specify whether its field value is changed or not
685
 
686
		// Following col will hold initial form data
687
		if(i == 0){ arrPersonalDetail[i][1] = perName; }
688
		else if(i == 1){ arrPersonalDetail[i][1] = perDateOfBirth; }
689
		else if(i == 2){ arrPersonalDetail[i][1] = perSex; }
690
		else if(i == 3){ arrPersonalDetail[i][1] = perCommEmail; }
691
		else if(i == 4){ arrPersonalDetail[i][1] = perSubscribe; }
692
		else if(i == 5){ arrPersonalDetail[i][1] = perPhone; }
693
	}
694
 
695
	// change status for name
696
	$(perFieldName).change(function(){			
697
		if($(this).val() != arrPersonalDetail[0][1]){
698
			perName = $(this).val();
699
			arrPersonalDetail[0][0] = true;
700
		}else{
701
			perName = arrPersonalDetail[0][1];
702
			arrPersonalDetail[0][0] = false;
703
		}
704
 
705
		checkFieldChange(frmPersonal);
706
	});
707
 
708
	// change status for date  of birth
709
	$(perFieldDateOfBirth).change(function(){
710
		if($(this).val() != arrPersonalDetail[1][1]){
711
			perDateOfBirth = $(this).val();
712
			arrPersonalDetail[1][0] = true;
713
		}else{
714
			perDateOfBirth = arrPersonalDetail[1][1];
715
			arrPersonalDetail[1][0] = false;
716
		}
717
		checkFieldChange(frmPersonal);
718
	});
719
 
720
 
721
 
722
 
723
	// change status for sex
724
	$(perFieldSex).change(function(){
725
		if($(this).val() != arrPersonalDetail[2][1]){
726
			perSex = $(this).val();
727
			arrPersonalDetail[2][0] = true;
728
		}else{
729
			perSex = arrPersonalDetail[2][1];
730
			arrPersonalDetail[2][0] = false;
731
		}
732
 
733
		checkFieldChange(frmPersonal);
734
	});
735
 
736
	// change status for communication email
737
	$(perFieldCommEmail).change(function(){			
738
		if($(this).val() != arrPersonalDetail[3][1]){
739
			perCommEmail = $(this).val();
740
			arrPersonalDetail[3][0] = true;
741
		}else{
742
			perCommEmail = arrPersonalDetail[3][1];
743
			arrPersonalDetail[3][0] = false;
744
		}
745
 
746
		checkFieldChange(frmPersonal);
747
	});
748
 
749
	// change status for subscribe
750
	$(perFieldSubscribe).change(function(){
751
		if($(this).attr('checked') != arrPersonalDetail[4][1]){
752
			perSubscribe = $(this).attr('checked');
753
			arrPersonalDetail[4][0] = true;
754
		}else{
755
			perSubscribe = arrPersonalDetail[4][1];
756
			arrPersonalDetail[4][0] = false;
757
		}
758
 
759
		checkFieldChange(frmPersonal);
760
	});
761
 
762
 
763
	// change status for phone
764
	$(perFieldPhone).change(function(){			
765
		if($(this).val() != arrPersonalDetail[5][1]){
766
			perPhone = $(this).val();
767
			arrPersonalDetail[5][0] = true;
768
		}else{
769
			perPhone = arrPersonalDetail[5][1];
770
			arrPersonalDetail[5][0] = false;
771
		}
772
 
773
		checkFieldChange(frmPersonal);
774
	});
775
 
776
	// on click of save button
777
	$(frmPersonal).submit(function(){
778
 
779
		var nameVal 	 = jQuery.trim($(perFieldName).val());
780
		var commEmailVal = jQuery.trim($(perFieldCommEmail).val());
781
 
782
		if(nameVal.length == 0){
783
			alert("Please enter name.");
784
 
785
			$(perFieldName).focus();
786
			return false;	
787
		}else if(commEmailVal.length == 0){
788
			alert("Please enter communication email.");
789
 
790
			$(perFieldCommEmail).focus();
791
			return false;	
792
		}else if(!commEmailVal.match(emailExp)){
793
			alert("Please enter valid communication email.");
794
 
795
			$(perFieldCommEmail).focus();
796
			return false;	
797
		}else{
798
			str = "Name : " + perName + "\n";
799
			str += "Date Of Birth : " + perDateOfBirth + "\n";
800
			str += "Sex : " + perSex + "\n";
801
			str += "Communication Email : " + perCommEmail + "\n";
802
			str += "Subscribe : " + perSubscribe + "\n";
803
			str += "Phone : " + perPhone + "\n";
804
		}
805
	});
806
 
807
	// on click of cancel button
808
	$(frmPersonal + " input[name='cancel']").click(function(){
809
		blnCancelClicked = true;
810
		preFilledValues(frmPersonal); // reset values
811
	});
812
}
813
 
814
/**
815
	Login Detail page for registered user via shop2020 setup
816
*/
817
function registeredUserSetup(){
818
	preFilledValues(frmLogReg);
819
 
820
	tempLogEmail = logRegEmail;
821
 
822
	// change status for login email
823
	$(regFieldEmail).change(function(){			
824
		if($(this).val() != tempLogEmail){
825
			logRegEmail = $(this).val();
826
			blnFieldChanged = true;
827
		}else{
828
			logRegEmail = tempLogEmail;
829
			blnFieldChanged = false;
830
		}
831
 
832
		checkFieldChange(frmLogReg);
833
	});
834
 
835
	// change status for old password
836
	$(regFieldOldPass).change(function(){	
837
		blnFieldChanged = true;
838
		checkFieldChange(frmLogReg);
839
	});
840
 
841
	// change status for new password
842
	$(regFieldNewPass).change(function(){	
843
		blnFieldChanged = true;
844
		checkFieldChange(frmLogReg);
845
	});
846
 
847
	// change status for confirm password
848
	$(regFieldConPass).change(function(){	
849
		blnFieldChanged = true;
850
		checkFieldChange(frmLogReg);
851
	});
852
 
853
	// on click of save button
854
	$(frmLogReg).submit(function(){
855
		var emailVal 	 = jQuery.trim($(regFieldEmail).val());
856
		var oldPassVal 	 = jQuery.trim($(regFieldOldPass).val());
857
		var newPassVal 	 = jQuery.trim($(regFieldNewPass).val());
858
		var conPassVal 	 = jQuery.trim($(regFieldConPass).val());
859
 
860
		if(emailVal.length == 0){
861
			alert("Please enter Login ID.");
862
 
863
			$(regFieldEmail).focus();
864
			return false;	
865
		}else if(!emailVal.match(emailExp)){
866
			alert("Please enter valid Login ID.");
867
 
868
			$(regFieldEmail).focus();
869
			return false;	
870
		}else if(oldPassVal.length == 0){
871
			alert("Please enter old password.");
872
 
873
			$(regFieldOldPass).focus();
874
			return false;	
875
		}else if(newPassVal.length == 0){
876
			alert("Please enter new password.");
877
 
878
			$(regFieldNewPass).focus();
879
			return false;	
880
		}else if(newPassVal.length < 6){
881
			alert("Password length should be minimum 6 characters long!");
882
 
883
			$(regFieldNewPass).focus();
884
			return false;	
885
		}else if(conPassVal.length == 0){
886
			alert("Please enter confirm password.");
887
 
888
			$(regFieldConPass).focus();
889
			return false;	
890
		}else if(conPassVal.length < 6){
891
			alert("Password length should be minimum 6 characters long!");
892
 
893
			$(regFieldConPass).focus();
894
			return false;	
895
		}else if(newPassVal != conPassVal){
896
			alert("Confirm password doesn't match with new password!");
897
 
898
			$(regFieldConPass).focus();
899
			return false;	
900
 
901
		}else{
902
			str = "Login ID : " + logRegEmail + "\n";
903
			str += "Old Password : " + oldPassVal + "\n";
904
			str += "New Password : " + newPassVal + "\n";
905
		}
906
 
907
	});
908
 
909
	// on click of cancel button
910
	$(frmLogReg + " input[name='cancel']").click(function(){
911
		blnCancelClicked = true;
912
		preFilledValues(frmLogReg);	// reset values
913
	});
914
}
915
 
916
/**
917
	Login Detail page for registered user via facebook setup
918
*/
919
function registeredUserFBSetup(){
920
	preFilledValues(frmLogRegFB);
921
 
922
	tempLogEmail = logRegFBEmail;
923
 
924
	// change status for login email
925
	$(regFieldFBEmail).change(function(){			
926
		if($(this).val() != tempLogEmail){
927
			logRegFBEmail = $(this).val();
928
			blnFieldChanged = true;
929
		}else{
930
			logRegFBEmail = tempLogEmail;
931
			blnFieldChanged = false;
932
		}
933
 
934
		checkFieldChange(frmLogRegFB);
935
	});
936
 
937
	// change status for old password
938
	$(regFieldFBPass).change(function(){	
939
		blnFieldChanged = true;
940
		checkFieldChange(frmLogRegFB);
941
	});
942
 
943
	// on click of save button
944
	$(frmLogRegFB).submit(function(){
945
		var emailVal 	 = jQuery.trim($(regFieldFBEmail).val());
946
		var passVal 	 = jQuery.trim($(regFieldFBPass).val());
947
 
948
		if(emailVal.length == 0){
949
			alert("Please enter Login ID.");
950
 
951
			$(regFieldFBEmail).focus();
952
			return false;	
953
		}else if(!emailVal.match(emailExp)){
954
			alert("Please enter valid Login ID.");
955
 
956
			$(regFieldFBEmail).focus();
957
			return false;	
958
		}else if(passVal.length == 0){
959
			alert("Please enter password.");
960
 
961
			$(regFieldFBPass).focus();
962
			return false;	
963
		}else{
964
			str = "Facbook Login : " + logRegFBEmail + "\n";
965
			str += "Old Password : " + passVal + "\n";
966
		}
967
 
968
	});
969
 
970
	// on click of cancel button
971
	$(frmLogRegFB + " input[name='cancel']").click(function(){
972
		blnCancelClicked = true;
973
		preFilledValues(frmLogRegFB);	// reset values
974
	});
975
}
976
 
977
/**
978
	Pre-filled values of Personal & Login Details page
979
*/
980
function preFilledValues(frm){
981
 
982
	if(frm == "#frmPersonalDetails"){
983
 
984
		if(blnCancelClicked){
985
			perName 	 = arrPersonalDetail[0][1];
986
			perDateOfBirth 	 = arrPersonalDetail[1][1];
987
			perSex 		 = arrPersonalDetail[2][1];
988
			perCommEmail = arrPersonalDetail[3][1];
989
			perSubscribe = arrPersonalDetail[4][1];
990
			perPhone = arrPersonalDetail[5][1];
991
 
992
			blnCancelClicked = false;
993
		}
994
 
995
		$(perFieldName).val(perName);
996
 
997
		$(perFieldDateOfBirth).val(perDateOfBirth);
998
 
999
		$(perFieldPhone).val(perPhone);
1000
 
1001
		$(frmPersonal + " input[value='" + perSex + "']").attr("checked", "checked");
1002
 
1003
		$(perFieldCommEmail).val(perCommEmail);
1004
 
1005
		if(perSubscribe){ $(perFieldSubscribe).attr("checked", "checked");	}
1006
 
1007
		disableSaveCancel(frm);
1008
 
1009
	}else if(frm == "#frmRegisUser"){
1010
 
1011
		if(blnCancelClicked){ 
1012
			logRegEmail	= tempLogEmail;	
1013
 
1014
			$(regFieldCaptcha).val("");
1015
			$(regFieldOldPass).val("");
1016
			$(regFieldNewPass).val("");
1017
			$(regFieldConPass).val("");
1018
 
1019
			blnCancelClicked = false;
1020
		}
1021
 
1022
		$(regFieldEmail).val(logRegEmail);
1023
 
1024
		disableSaveCancel(frm);
1025
 
1026
	}else if(frm == "#frmFacebookUser"){
1027
 
1028
		if(blnCancelClicked){ 
1029
			logRegFBEmail	= tempLogEmail;	
1030
 
1031
			$(regFieldFBEmail).val("");
1032
			$(regFieldFBPass).val("");
1033
 
1034
			blnCancelClicked = false;
1035
		}
1036
 
1037
		$(regFieldFBEmail).val(logRegFBEmail);
1038
 
1039
		disableSaveCancel(frm);
1040
	}
1041
 
1042
}
1043
 
1044
/**
1045
	Check if any field is changed for Personal & Login Details page, if yes then enable save & cancel buttons
1046
*/
1047
function checkFieldChange(frm){
1048
 
1049
	if(frm == "#frmPersonalDetails"){
1050
		for(var i=0; i<arrPersonalDetail.length; i++){
1051
			if(arrPersonalDetail[i][0]){
1052
				blnFieldChanged = true;
1053
			}
1054
		}
1055
	}
1056
 
1057
	// if field changed enable buttons or else disable them
1058
	if(blnFieldChanged){
1059
		enableSaveCancel(frm);
1060
	}else{
1061
		disableSaveCancel(frm);
1062
	}
1063
 
1064
	blnFieldChanged = false;
1065
}
1066
 
1067
/**
1068
	Enable save & cancel button for Personal & Login Details page
1069
*/
1070
function enableSaveCancel(frm){
1071
 
1072
	var frmButtonID;
1073
 
1074
	if(frm == "#frmPersonalDetails"){
1075
		frmButtonID = "#formButtons";
1076
	}else if(frm == "#frmRegisUser"){
1077
		frmButtonID = "#formButtons1";
1078
	}else if(frm == "#frmFacebookUser"){
1079
		frmButtonID = "#formButtons2";
1080
	}
1081
 
1082
	$(frm + " " + frmButtonID + " .imgDisableButton").removeClass('imgDisableButton').addClass('imgEnableButton');
1083
	$(frm + " " + frmButtonID + " input[disabled='']").removeAttr('disabled');
1084
}
1085
 
1086
/**
1087
	Disable save & cancel button for Personal & Login Details page
1088
*/
1089
function disableSaveCancel(frm){
1090
 
1091
	var frmButtonID;
1092
 
1093
	if(frm == "#frmPersonalDetails"){
1094
		frmButtonID = "#formButtons";
1095
	}else if(frm == "#frmRegisUser"){
1096
		frmButtonID = "#formButtons1";
1097
	}else if(frm == "#frmFacebookUser"){
1098
		frmButtonID = "#formButtons2";
1099
	}
1100
 
1101
	$(frm + " " + frmButtonID + " .imgEnableButton").removeClass('imgEnableButton').addClass('imgDisableButton');
1102
	$(frm + " " + frmButtonID + " input").attr("disabled", "disabled");
1103
}
1104
 
1105
/** 
1106
	Scroll window either to top or bottom
1107
*/
1108
function scrollWindow(id, delay){
1109
	$('html, body').animate({
1110
		scrollTop: $("#" + id).offset().top
1111
	}, delay);
1112
}
1113
 
1114
/** 
1115
	Show Shipment details on click of AWBNo. link
1116
*/
1117
function showShipmentDetails(value, providerName)	{
1118
	jQuery.ajax({
1119
		type: "GET",
1120
		url: "/" + providerName.toLowerCase() + "-updates/" + value,
1121
		success: function(msg)	{
1122
			$("#orderShippingStatus").html(msg);
1123
			$("#shipmentDetails").show();
1124
			$("#shipmentDetails .awbNo").text(value);
1125
 
1126
			scrollWindow('shipmentDetails', 2000);
1127
		}
1128
	});
1129
}
1130
 
1131
/** 
1132
	Close Shipment details on click of close button
1133
*/
1134
function closeShipmentDetails(){
1135
	$("#shipmentDetails").hide();
1136
 
1137
	scrollWindow('myAccount', 1000);
1138
}