1
|
window.addEvent('domready', function () {
|
2
|
if ($('keyword') === null || $('keyword').value === null || $('keyword').value==='') {
|
3
|
browse();
|
4
|
}
|
5
|
|
6
|
|
7
|
});
|
8
|
|
9
|
function browse() {
|
10
|
if (typeof openairePeopleRawUrl !== 'undefined') {
|
11
|
jQuery.ajax({"url": openairePeopleRawUrl}).done(function (data, status, request) {
|
12
|
$('peopleBrowse').innerHTML = data;
|
13
|
init();
|
14
|
});
|
15
|
}
|
16
|
}
|
17
|
function addField() {
|
18
|
this.field.remove.style.display = '';
|
19
|
var newField = this.field.clone();
|
20
|
newField.add = newField.getElement('span.addNewFilter');
|
21
|
newField.remove = newField.getElement('span.removeNewFilter');
|
22
|
newField.keyword = newField.getElement('input[name = "keyword[]"]');
|
23
|
newField.field = newField.getElement('select[name = "field[]"]');
|
24
|
newField.constraint = newField.getElement('select[name = "constraint[]"]');
|
25
|
newField.add.field = newField;
|
26
|
newField.remove.field = newField;
|
27
|
newField.add.addEvent('click', addField);
|
28
|
newField.remove.addEvent('click', removeField);
|
29
|
newField.keyword.value = '';
|
30
|
newField.field.selectedIndex = 0;
|
31
|
newField.constraint.selectedIndex = 0;
|
32
|
newField.inject(this.field, 'after');
|
33
|
}
|
34
|
|
35
|
function removeField() {
|
36
|
var fields = $$('div.srchNavTextAdvancedFilter');
|
37
|
if (fields.length == 2) { // When just two fields are present, only one will remain after removal. In this case hide its remove button because the last remaining field should never be deleted.
|
38
|
fields.each(function (field) {
|
39
|
field.remove.style.display = 'none';
|
40
|
});
|
41
|
}
|
42
|
this.field.destroy();
|
43
|
}
|
44
|
|
45
|
function updateLimits() {
|
46
|
var filters = $('advanceSearchFilters');
|
47
|
var noLimits = $('noLimits');
|
48
|
var countryLimits = $('countryLimits');
|
49
|
var clearAll = $('clearAll');
|
50
|
if ((noLimits == null) || (countryLimits == null))
|
51
|
return;
|
52
|
countryLimits.value = countryLimits.getElement('span');
|
53
|
if (countryLimits.value == null)
|
54
|
return;
|
55
|
noLimits.style.display = '';
|
56
|
countryLimits.value.set('html', '');
|
57
|
countryLimits.style.display = 'none';
|
58
|
clearAll.style.display = 'none';
|
59
|
filters.style.display ='none';
|
60
|
$$('div.filterItem').each(function (field) {
|
61
|
if (field.rows != null) { // checkbox field
|
62
|
var values = new Array();
|
63
|
field.rows.each(function (row) {
|
64
|
if (row.checkbox.checked)
|
65
|
values.push(row.value);
|
66
|
});
|
67
|
if (values.length > 0) {
|
68
|
countryLimits.value.set('html', values.join(', '));
|
69
|
countryLimits.style.display = '';
|
70
|
}
|
71
|
}
|
72
|
});
|
73
|
if (countryLimits.isDisplayed()) {
|
74
|
noLimits.style.display = 'none';
|
75
|
clearAll.style.display = '';
|
76
|
filters.style.display ='';
|
77
|
}
|
78
|
}
|
79
|
|
80
|
function clear(field) {
|
81
|
if (field.rows != null) { // checkbox field
|
82
|
field.rows.each(function (row) {
|
83
|
row.checkbox.checked = false;
|
84
|
});
|
85
|
field.ok.click();
|
86
|
}
|
87
|
}
|
88
|
|
89
|
function clearAll() {
|
90
|
$$('div.filterItem').each(function (field) { // other fields
|
91
|
clear(field);
|
92
|
});
|
93
|
return false;
|
94
|
}
|
95
|
|
96
|
window.addEvent('domready', function () {
|
97
|
/*if ($$('div.searchResults').length > 0) { // hide 'In this section' when there are results
|
98
|
$$('div.tm-main').setStyle('width', $$('div.tm-main').offsetWidth + $$("aside.tm-sidebar-a").offsetWidth);
|
99
|
$$("aside.tm-sidebar-a").destroy();
|
100
|
}*/
|
101
|
init() ;
|
102
|
$$('div.srchNavTextAdvancedFilter').each(function (field) { // text fields, add / remove
|
103
|
field.add = field.getElement('span.addNewFilter');
|
104
|
field.remove = field.getElement('span.removeNewFilter');
|
105
|
field.keyword = field.getElement('input[name = "keyword[]"]');
|
106
|
field.field = field.getElement('select[name = "field[]"]');
|
107
|
field.constraint = field.getElement('select[name = "constraint[]"]');
|
108
|
field.add.field = field;
|
109
|
field.remove.field = field;
|
110
|
field.add.addEvent('click', addField);
|
111
|
field.remove.addEvent('click', removeField);
|
112
|
});
|
113
|
$$('div.filterItem').each(function (field) { // other fields
|
114
|
field.edit = field.getElement('a.editRef');
|
115
|
field.details = field.getElement('div.hiddenAdvancedSearch');
|
116
|
field.ok = field.getElement('input.okElement');
|
117
|
field.cancel = field.getElement('input.cancelElement');
|
118
|
if ((field.edit != null) && (field.details != null) && (field.ok != null) && (field.cancel != null)) {
|
119
|
field.slide = new Fx.Slide(field.details, {resetHeight: true});
|
120
|
field.slide.hide();
|
121
|
field.details.show();
|
122
|
field.edit.addEvent('click', function () {
|
123
|
if (field.slide.open)
|
124
|
field.cancel.click();
|
125
|
else
|
126
|
field.slide.slideIn();
|
127
|
return false;
|
128
|
});
|
129
|
field.filter = field.getElement('input[type = "text"]');
|
130
|
field.selectAll = field.getElement('a.selectAll');
|
131
|
field.deselectAll = field.getElement('a.deselectAll');
|
132
|
field.rows = field.getElements('div[class = "filterListingBlock"] div[class = "filterRow"]');
|
133
|
if ((field.filter != null) && (field.selectAll != null) && (field.deselectAll != null) && (field.rows != null)) { // checkbox field
|
134
|
field.rows.each(function (row) {
|
135
|
row.label = row.getElement('label');
|
136
|
row.checkbox = row.getElement('input[type = "checkbox"]');
|
137
|
row.id = row.checkbox.value;
|
138
|
row.value = row.label.get('html');
|
139
|
row.lowerCaseValue = row.value.toLowerCase();
|
140
|
});
|
141
|
field.filter.addEvent('keyup', function () {
|
142
|
var term = this.value.trim().toLowerCase();
|
143
|
if (term == '') {
|
144
|
field.rows.each(function (row) {
|
145
|
row.label.set('html', row.value);
|
146
|
row.style.display = '';
|
147
|
});
|
148
|
} else {
|
149
|
field.rows.each(function (row) {
|
150
|
var index = row.lowerCaseValue.indexOf(term);
|
151
|
if (index == -1) {
|
152
|
row.label.set('html', row.value);
|
153
|
row.style.display = 'none';
|
154
|
} else {
|
155
|
row.label.set('html', row.value.substr(0, index) + '<span class="filterMatch">' + row.value.substr(index, term.length) + '</span>' + row.value.substr(index + term.length));
|
156
|
row.style.display = '';
|
157
|
}
|
158
|
});
|
159
|
}
|
160
|
});
|
161
|
field.selectAll.addEvent('click', function () {
|
162
|
field.rows.each(function (row) {
|
163
|
if (row.isDisplayed())
|
164
|
row.checkbox.checked = true;
|
165
|
});
|
166
|
return false;
|
167
|
});
|
168
|
field.deselectAll.addEvent('click', function () {
|
169
|
field.rows.each(function (row) {
|
170
|
if (row.isDisplayed())
|
171
|
row.checkbox.checked = false;
|
172
|
});
|
173
|
return false;
|
174
|
});
|
175
|
field.ok.addEvent('click', function () {
|
176
|
field.slide.slideOut();
|
177
|
field.details.getElements('input[type = "hidden"]').each(function (shadow) { // remove all shadows
|
178
|
shadow.destroy();
|
179
|
});
|
180
|
field.rows.each(function (row) { // create a new shadow for each checked checkbox
|
181
|
if (row.checkbox.checked) {
|
182
|
var shadow = new Element('input');
|
183
|
shadow.type = 'hidden';
|
184
|
shadow.name = field.id + '[]';
|
185
|
shadow.value = row.id;
|
186
|
shadow.inject(field.details, 'top');
|
187
|
}
|
188
|
});
|
189
|
updateLimits();
|
190
|
});
|
191
|
field.cancel.addEvent('click', function () {
|
192
|
field.slide.slideOut();
|
193
|
var shadows = field.details.getElements('input[type = "hidden"]');
|
194
|
field.rows.each(function (row) { // uncheck all the checkboxes
|
195
|
row.checkbox.checked = shadows.some(function (shadow) {
|
196
|
return (shadow.name == field.id) && (shadow.value == row.id);
|
197
|
});
|
198
|
});
|
199
|
});
|
200
|
}
|
201
|
}
|
202
|
});
|
203
|
$('countryLimits').addEvent('click', function () {
|
204
|
clear($('country'));
|
205
|
});
|
206
|
$('clearAll').addEvent('click', clearAll);
|
207
|
updateLimits();
|
208
|
updateLimits();
|
209
|
$$('div.addmore').each(function (viewFilters) { // hide filters
|
210
|
viewFilters.leftFilters = viewFilters.getParent().getElement('div.leftAdvanced');
|
211
|
viewFilters.leftFilters.style.display = 'none';
|
212
|
viewFilters.rightFilters = viewFilters.getParent().getElement('div.rightAdvanced');
|
213
|
viewFilters.rightFilters.style.display = 'none';
|
214
|
viewFilters.showfilters = viewFilters.getParent().getElement('span.showfilters');
|
215
|
viewFilters.showfilters.style.display = '';
|
216
|
viewFilters.hidefilters = viewFilters.getParent().getElement('span.hidefilters');
|
217
|
viewFilters.hidefilters.style.display = 'none';
|
218
|
viewFilters.addEvent('click', function () {
|
219
|
if (this.leftFilters.isVisible() || this.rightFilters.isVisible()) {
|
220
|
this.leftFilters.style.display = 'none';
|
221
|
this.rightFilters.style.display = 'none';
|
222
|
this.showfilters.style.display = '';
|
223
|
this.hidefilters.style.display = 'none';
|
224
|
} else {
|
225
|
this.leftFilters.style.display = '';
|
226
|
this.rightFilters.style.display = '';
|
227
|
this.showfilters.style.display = 'none';
|
228
|
this.hidefilters.style.display = '';
|
229
|
}
|
230
|
});
|
231
|
});
|
232
|
});
|
233
|
|
234
|
|
235
|
function init() {
|
236
|
|
237
|
// view more
|
238
|
$$('div.searchCol, div.flowWrapper').each(function (statistic) {
|
239
|
var viewMore = statistic.getElement('span.viewmore');
|
240
|
if (viewMore !== null) {
|
241
|
viewMore.more = statistic.getElement('div.viewallpop');
|
242
|
if (viewMore.more !== null) {
|
243
|
viewMore.addEvent('click', function () {
|
244
|
tooltip.hide();
|
245
|
tooltip.pop(this, this.more.innerHTML, {relativeTo: 'element', position: 1, offsetX: -30, offsetY: 0, effect: 'fade', overlay: true, sticky: true, position: 1, license: tooltipLicense});
|
246
|
return false;
|
247
|
});
|
248
|
}
|
249
|
}
|
250
|
});
|
251
|
}
|