public Photos getUntagged(Date minUploadDate, Date maxUploadDate, Date minTakenDate, Date maxTakenDate,
							  JinxConstants.PrivacyFilter privacyFilter,
							  JinxConstants.MediaType mediaType, EnumSet<JinxConstants.PhotoExtras> extras,
							  int perPage, int page) throws JinxException {
		Map<String, String> params = new TreeMap<String, String>();
		params.put("method", "flickr.photos.getUntagged");
		if (minUploadDate != null) {
			params.put("min_upload_date", JinxUtils.formatDateAsUnixTimestamp(minUploadDate));
		}
		if (maxUploadDate != null) {
			params.put("max_upload_date", JinxUtils.formatDateAsUnixTimestamp(maxUploadDate));
		}
		if (minTakenDate != null) {
			params.put("min_taken_date", JinxUtils.formatDateAsUnixTimestamp(minTakenDate));
		}
		if (maxTakenDate != null) {
			params.put("max_taken_date", JinxUtils.formatDateAsUnixTimestamp(maxTakenDate));
		}
		if (privacyFilter != null) {
			params.put("privacy_filter", Integer.toString(JinxUtils.privacyFilterToFlickrPrivacyFilterId(privacyFilter)));
		}
		if (mediaType != null) {
			params.put("media", mediaType.toString());
		}
		if (!JinxUtils.isNullOrEmpty(extras)) {
			params.put("extras", JinxUtils.buildCommaDelimitedList(extras));
		}
		if (perPage > 0) {
			params.put("per_page", Integer.toString(perPage));
		}
		if (page > 0) {
			params.put("page", Integer.toString(page));
		}
		return jinx.flickrGet(params, Photos.class);
	}