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