function getUserObject(iIndex, aSelect, aExpand, aSubSelects) {
		var sBestFriend,
			iFriendIndex,
			aFriends,
			oObject = {},
			oUser,
			i;

		oObject = getUserByIndex(iIndex, aSelect);
		if (aExpand) {
			oUser = aUsers[iIndex];
			for (i = 0; i < aExpand.length; i++) {
				switch (aExpand[i]) {
					case "Friends":
						oObject.Friends = [];
						aFriends = oUser.Friends;
						oObject.Friends = createFriendsArray(aFriends, aSubSelects[i]);
						break;
					case "BestFriend":
						sBestFriend = oUser.BestFriend;
						iFriendIndex = findUserIndex(sBestFriend);
						oObject.BestFriend = getUserByIndex(iFriendIndex, aSubSelects[i]);
						break;
					default:
						break;
				}
			}
		}
		return oObject;
	}
Returns the user with iIndex in the aUsers array with all its information
@param  {Number} iIndex index of user in aUsers
@param  {string[]} aSelect properties of user which should be returned
@param  {string[]} aExpand navigation properties of user which should be expanded
@param  {string[]} aSubSelects select parameters according to the expand parameters
@returns {Object} user with all its requested information