Repository navigation
Expand file tree
/
Copy pathscript.js
More file actions
103 lines (91 loc) · 2.69 KB
/
Copy pathscript.js
File metadata and controls
103 lines (91 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
var newCodes = [], countryCode = [];
function predicate() {
var fields = [],
n_fields = arguments.length,
field, name, reverse, cmp;
var default_cmp = function (a, b) {
if (a === b) return 0;
return a < b ? -1 : 1;
},
getCmpFunc = function (primer, reverse) {
var dfc = default_cmp,
// closer in scope
cmp = default_cmp;
if (primer) {
cmp = function (a, b) {
return dfc(primer(a), primer(b));
};
}
if (reverse) {
return function (a, b) {
return -1 * cmp(a, b);
};
}
return cmp;
};
// preprocess sorting options
for (var i = 0; i < n_fields; i++) {
field = arguments[i];
if (typeof field === 'string') {
name = field;
cmp = default_cmp;
} else {
name = field.name;
cmp = getCmpFunc(field.primer, field.reverse);
}
fields.push({
name: name,
cmp: cmp
});
}
// final comparison function
return function (A, B) {
var a, b, name, result;
for (var i = 0; i < n_fields; i++) {
result = 0;
field = fields[i];
name = field.name;
result = field.cmp(A[name], B[name]);
if (result !== 0) break;
}
return result;
};
}
$.ajax({
url: "countryCode.json",
dataType: "json",
success: function(data) {
for(var i in data){
if(data[i].active == 1){
newCodes.push(data[i]);
}
}
// codes(newCodes);
sortByDisplayFirst(newCodes);
sortByDialCode(newCodes);
return newCodes;
}
});
function codes(){
return newCodes;
}
function sortByDisplayFirst(){
var codes = newCodes.sort(predicate({
name:'displayFirst',
reverse: false},'name'));
populateSelect(codes)
return codes;
}
function sortByDialCode(){
var codes = newCodes.sort(function(a,b){return b.dialCode - a.dialCode});
// console.log(codes);
return codes;
}
function populateSelect(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].dialCode + '">' + j[i].name + '</option>';
}
$("select#countryCodes").html(options);
// console.log(options);
}