Project

General

Profile

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
}
(5-5/32)