Project

General

Profile

1 37958 argiro.kok
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 35459 argiro.kok
function addField() {
18 37958 argiro.kok
	this.field.remove.style.display = '';
19 35459 argiro.kok
	var newField = this.field.clone();
20 37958 argiro.kok
	newField.add = newField.getElement('span.addNewFilter');
21
	newField.remove = newField.getElement('span.removeNewFilter');
22 35459 argiro.kok
	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 37958 argiro.kok
			field.remove.style.display = 'none';
40 35459 argiro.kok
		});
41
	}
42
	this.field.destroy();
43
}
44
45
function updateLimits() {
46 38381 argiro.kok
        var filters = $('advanceSearchFilters');
47 35459 argiro.kok
	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 37958 argiro.kok
	noLimits.style.display = '';
56 35459 argiro.kok
	countryLimits.value.set('html', '');
57 37958 argiro.kok
	countryLimits.style.display = 'none';
58
	clearAll.style.display = 'none';
59 38381 argiro.kok
        filters.style.display ='none';
60 35459 argiro.kok
	$$('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 37958 argiro.kok
				countryLimits.style.display = '';
70 35459 argiro.kok
			}
71
		}
72
	});
73
	if (countryLimits.isDisplayed()) {
74 37958 argiro.kok
		noLimits.style.display = 'none';
75
		clearAll.style.display = '';
76 38381 argiro.kok
                filters.style.display ='';
77 35459 argiro.kok
	}
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 37958 argiro.kok
	/*if ($$('div.searchResults').length > 0) { // hide 'In this section' when there are results
98 37088 argiro.kok
		$$('div.tm-main').setStyle('width', $$('div.tm-main').offsetWidth + $$("aside.tm-sidebar-a").offsetWidth);
99
		$$("aside.tm-sidebar-a").destroy();
100 37958 argiro.kok
	}*/
101
        init() ;
102 35459 argiro.kok
	$$('div.srchNavTextAdvancedFilter').each(function (field) { // text fields, add / remove
103 37958 argiro.kok
		field.add = field.getElement('span.addNewFilter');
104
		field.remove = field.getElement('span.removeNewFilter');
105 35459 argiro.kok
		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 37958 argiro.kok
							row.style.display = '';
147 35459 argiro.kok
						});
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 37958 argiro.kok
								row.style.display = 'none';
154 35459 argiro.kok
							} 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 37958 argiro.kok
								row.style.display = '';
157 35459 argiro.kok
							}
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 37958 argiro.kok
	$$('div.addmore').each(function (viewFilters) { // hide filters
210 35459 argiro.kok
		viewFilters.leftFilters = viewFilters.getParent().getElement('div.leftAdvanced');
211 37958 argiro.kok
		viewFilters.leftFilters.style.display = 'none';
212 35459 argiro.kok
		viewFilters.rightFilters = viewFilters.getParent().getElement('div.rightAdvanced');
213 37958 argiro.kok
		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 35459 argiro.kok
		viewFilters.addEvent('click', function () {
219
			if (this.leftFilters.isVisible() || this.rightFilters.isVisible()) {
220 37958 argiro.kok
				this.leftFilters.style.display = 'none';
221
				this.rightFilters.style.display = 'none';
222
                                this.showfilters.style.display = '';
223
                                this.hidefilters.style.display = 'none';
224 35459 argiro.kok
			} else {
225 37958 argiro.kok
				this.leftFilters.style.display = '';
226
				this.rightFilters.style.display = '';
227
                                this.showfilters.style.display = 'none';
228
                                this.hidefilters.style.display = '';
229 35459 argiro.kok
			}
230
		});
231
	});
232
});
233
234 37958 argiro.kok
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
}