/* $This file is distributed under the terms of the license in /doc/license.txt$ */
$(document).ready(function(){
$.extend(this, urlsBase);
$.extend(this, facultyMemberCount);
$.extend(this, i18nStrings);
var retryCount = 0;
// this will ensure that the hidden classgroup input is cleared if the back button is used
// to return to th ehome page from the search results
$('input[name="classgroup"]').val("");
getFacultyMembers();
buildAcademicDepartments();
if ( $('section#home-geo-focus').length == 0 ) {
$('section#home-stats').css("display","inline-block").css("margin-top","20px");
}
function getFacultyMembers() {
var individualList = "";
if ( facultyMemberCount > 0 ) {
// determine the row at which to start the search query
var rowStart = Math.floor((Math.random()*facultyMemberCount));
var diff;
var pageSize = 4; // the number of faculty to display on the home page
// could have fewer than 4 in a test or dev environment
if ( facultyMemberCount < pageSize ) {
pageSize = facultyMemberCount;
}
// in case the random number is equal to or within 3 of the facultyMemberCount
// subtract 1 from the facultyMemberCount because the search rows begin at 0, not 1
if ( (rowStart + (pageSize-1)) > (facultyMemberCount-1) ) {
diff = (rowStart + (pageSize-1)) - (facultyMemberCount-1);
if ( diff == 0 ) {
rowStart = rowStart - (pageSize-1);
}
else {
rowStart = rowStart - diff;
}
}
if ( rowStart < 0 ) {
rowStart = 0;
}
var dataServiceUrl = urlsBase + "/dataservice?getRandomSearchIndividualsByVClass=1&vclassId=";
var url = dataServiceUrl + encodeURIComponent("http://vivoweb.org/ontology/core#FacultyMember");
url += "&page=" + rowStart + "&pageSize=" + pageSize;
$.getJSON(url, function(results) {
if ( results == null || results.individuals.length == 0 ) {
if ( retryCount < 5 ) {
retryCount = retryCount + 1;
getFacultyMembers();
}
else {
individualList = "
" + i18nStrings.noFacultyFound + "";
$('div#tempSpacing').hide();
$('div#research-faculty-mbrs ul#facultyThumbs').append(individualList);
}
}
else {
var vclassName = results.vclass.name;
$.each(results.individuals, function(i, item) {
var individual = results.individuals[i];
individualList += individual.shortViewHtml;
});
$('div#tempSpacing').hide();
$('div#research-faculty-mbrs ul#facultyThumbs').append(individualList);
$.each($('div#research-faculty-mbrs ul#facultyThumbs li.individual'), function() {
if ( $(this).children('img').length == 0 ) {
var imgHtml = "
";
$(this).prepend(imgHtml);
}
else {
$(this).children('img').load( function() {
adjustImageHeight($(this));
});
}
});
var viewMore = "- "
+ i18nStrings.viewAllString + "
";
$('div#research-faculty-mbrs').append(viewMore);
}
});
}
else {
individualList = "- " + i18nStrings.noFacultyFound + "
";
$('div#tempSpacing').hide();
$('div#research-faculty-mbrs ul#facultyThumbs').append(individualList);
$('div#research-faculty-mbrs ul#facultyThumbs').css("padding", "1.0em 0 0.825em 0.75em");
}
}
function adjustImageHeight(theImg) {
$img = theImg;
var hgt = $img.attr("height");
if ( hgt > 70 ) {
var liHtml = $img.parent('li').html();
liHtml = liHtml.replace("![]()
![]()
";
}
else if ( deptNbr > 6 ) {
//if there are more than 6 departments, we want to choose a random subset and display
//and also to make sure the same department is not repeated twice
var indicesUsed = {};//utilizing a hash since easier
var indicesCount = 0;
while(indicesCount < 6) {
index = Math.floor((Math.random()*deptNbr)+1)-1;
//if the index has already been used, this will be true
var indexFound = (index in indicesUsed);
//Check to see if this index hasn't already been employed
if(!indexFound) {
//if this index hasn't already been employed then utilize it
html += ""
+ academicDepartments[index].name + "";
//add this index to the set of already used indices
indicesUsed[index] = true;
//keep count
indicesCount++;
}
}
}
else {
for ( var i=0;i"
+ academicDepartments[i].name + "";
}
}
if ( deptNbr > 0 ) {
html += "";
}
$('div#academic-depts').html(html);
}
});