");
}
}
$scPhotos.append($scPhotosDesc);
}
// SlimBox only supports images, so it cannot show the iframe containing the slideshow
if ((settings.showSlideshow) && (typeof (settings.popupExt) === "function")) {
var $isIE6 = !$.support.opacity && !window.XMLHttpRequest;
var $slideShow = $("");
if (($isIE6) || (navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)/i) != null)) {
for (var i = 0; i < j.feed.link.length; i++) {
if ((j.feed.link[i].type == "text/html") && (j.feed.link[i].rel == "alternate")) {
$slideShow.append("" + settings.labels.slideshow + " ");
break;
}
}
} else {
for (var i = 0; i < j.feed.link.length; i++) {
if (j.feed.link[i].type == "application/x-shockwave-flash") {
$slideShow.append("" + settings.labels.slideshow + " ");
break;
}
}
}
$scPhotos.append($slideShow);
$scPhotos.append("");
}
if ($np > settings.maxResults) {
$pageCount = ($np / settings.maxResults);
var $ppage = $("").text(settings.labels.prev),
$npage = $("").text(settings.labels.next);
$navRow = $("");
if (settings.page > 1) {
$ppage.addClass('link').bind('click.pwi', function (e) {
e.stopPropagation();
settings.page = (parseInt(settings.page, 10) - 1);
getAlbum();
return false;
});
}
$navRow.append($ppage);
for (var p = 1; p < $pageCount + 1; p++) {
if (p == settings.page) {
tmp = "
" + p + "
";
} else {
tmp = $("
" + p + "
").bind('click.pwi', p, function (e) {
e.stopPropagation();
settings.page = e.data;
getAlbum();
return false;
});
}
$navRow.append(tmp);
}
if (settings.page < $pageCount) {
$npage.addClass('link').bind('click.pwi', function (e) {
e.stopPropagation();
settings.page = (parseInt(settings.page,10) + 1);
getAlbum();
return false;
});
}
$navRow.append($npage);
$navRow.append("");
}
if ($navRow.length > 0 && (settings.showPager === 'both' || settings.showPager === 'top')) {
$scPhotos.append($navRow);
}
var startShow = ((settings.page - 1) * settings.maxResults);
var endShow = settings.maxResults * settings.page;
var $tmpUsername = settings.username.replace(/\./g, "_");
for (var i = 0; i < $np; i++)
{
var $scPhoto = photo(j.feed.entry[i], !((i >= startShow) && (i < endShow)), $tmpUsername);
$scPhotos.append($scPhoto);
}
if ($navRow.length > 0 && (settings.showPager === 'both' || settings.showPager === 'bottom')) {
$scPhotos.append($navRow.clone(true));
}
if (settings.showPermaLink) {
$scPhotos.append("");
var $permaLinkEnable = $("").text(settings.labels.showPermaLink).bind('click.pwi', p, function (e) {
e.stopPropagation();
var ele = document.getElementById("permalinkbox");
if (ele) {ele.style.display = "block";}
ele = document.getElementById("permalinkenable");
if (ele) {ele.style.display = "none";}
return false;
});
;
var $url=document.URL.split("?", 2);
var $permalinkUrl = $url[0] + "?pwi_album_selected=" + j.feed.gphoto$name.$t + "&pwi_albumpage=" + settings.page;
var redirect = "/galeria/?pwi_album_selected=" + j.feed.gphoto$name.$t + "&pwi_albumpage=" + settings.page;
$scPhotos.append($permaLinkEnable);
var $permaShowBox = $("");
var $permaShowBoxForm = $("");
var $permalinkInputBox = $("").val($permalinkUrl);
$permaShowBoxForm.append($permalinkInputBox);
$permaShowBox.append($permaShowBoxForm);
$scPhotos.append($permaShowBox);
if(settings.link2Permalink){
document.getElementById('container').style.display='none';
window.location=redirect;
}
//http://forojudio.com/?pwi_album_selected=100AnosDeLaComunidadJudiaEnMexicoSorteoConmemorativoDeLaLoteriaNacional&pwi_albumpage=1
}
settings.photostore[settings.album] = j;
var $s = $(".pwi_photo", $scPhotos).css(settings.thumbCss);
if (typeof (settings.popupExt) === "function") {
settings.popupExt($s.find("a[rel='lb-" + $tmpUsername + "']"));
settings.popupExt($s.find("a[rel='sl-" + $tmpUsername + "']"));
} else if (typeof (settings.onclickThumb) != "function" && $.slimbox) {
$s.find("a[rel='lb-" + $tmpUsername + "']").slimbox(settings.slimbox_config,
function(el) {
var $newTitle = el.title;
if (el.parentNode.childElementCount > 1) {
var $links = el.parentNode.getElementsByClassName('downloadlink');
if ($links.length > 0) {
var downloadLink = 'Download';
$newTitle = el.title + " " + downloadLink;
}
}
return [el.href, $newTitle];
}
);
}
$scPhotos.append("");
show(false, $scPhotos);
}
function latest(j) {
var $scPhotos = $(""),
$len = j.feed ? j.feed.entry.length : 0,
i = 0;
var $tmpUsername = settings.username.replace(/\./g, "_");
while (i < settings.maxResults && i < $len) {
var $scPhoto = photo(j.feed.entry[i], false, $tmpUsername);
$scPhotos.append($scPhoto);
i++;
}
$scPhotos.append("
");
var $s = $("div.pwi_photo", $scPhotos).css(settings.thumbCss);
if (typeof (settings.popupExt) === "function") {
settings.popupExt($s.find("a[rel='lb-" + $tmpUsername + "']"));
} else if (typeof (settings.onclickThumb) != "function" && $.slimbox) {
$s.find("a[rel='lb-" + $tmpUsername + "']").slimbox(settings.slimbox_config,
function(el) {
var $newTitle = el.title;
if (el.parentNode.childElementCount > 1) {
var $links = el.parentNode.getElementsByClassName('downloadlink');
if ($links.length > 0) {
var downloadLink = 'Download';
$newTitle = el.title + " " + downloadLink;
}
}
return [el.href, $newTitle];
}
);
}
show(false, $scPhotos);
}
function clickAlbumThumb(event) {
event.stopPropagation();
event.preventDefault();
settings.onclickAlbumThumb(event);
}
function clickThumb(event) {
event.stopPropagation();
event.preventDefault();
settings.onclickThumb(event);
}
function getAlbums() {
if (settings.albumstore.feed) {
albums(settings.albumstore);
} else {
show(true, '');
var $u = 'http://picasaweb.google.com/data/feed/api/user/' + settings.username + '?kind=album&access=' + settings.albumTypes + '&alt=json&thumbsize=' + settings.albumThumbSize + ((settings.albumCrop == 1) ? "c" : "u");
$.getJSON($u, 'callback=?', albums);
}
return $self;
}
function getAlbum() {
if (settings.photostore[settings.album]) {
album(settings.photostore[settings.album]);
} else {
var $u = 'http://picasaweb.google.com/data/feed/api/user/' + settings.username + ((settings.album !== "") ? '/album/' + settings.album : "") + '?kind=photo&alt=json' + ((settings.authKey !== "") ? "&authkey=" + settings.authKey : "") + ((settings.keyword !== "") ? "&tag=" + settings.keyword : "") + '&imgmax=d&thumbsize=' + settings.thumbSize + ((settings.thumbCrop == 1) ? "c" : "u") + "," + settings.photoSize;
show(true, '');
$.getJSON($u, 'callback=?', album);
}
return $self;
}
function getLatest() {
show(true, '');
var $u = 'http://picasaweb.google.com/data/feed/api/user/' + settings.username + (settings.album !== "" ? '/album/' + settings.album : '') + '?kind=photo&max-results=' + settings.maxResults + '&alt=json&q=' + ((settings.authKey !== "") ? "&authkey=" + settings.authKey : "") + ((settings.keyword !== "") ? "&tag=" + settings.keyword : "") + '&imgmax=d&thumbsize=' + settings.thumbSize + ((settings.thumbCrop == 1) ? "c" : "u") + "," + settings.photoSize;
$.getJSON($u, 'callback=?', latest);
return $self;
}
function show(loading, data) {
if (loading) {
if (settings.loadingImage.length > 0) {
var ele = document.getElementById(settings.loadingImage);
if (ele) {ele.style.display = "block";}
}
document.body.style.cursor = "wait";
if ($.blockUI){ $self.block(settings.blockUIConfig);}
} else {
if (settings.loadingImage.length > 0) {
var ele = document.getElementById(settings.loadingImage);
if (ele) {ele.style.display = "none";}
}
document.body.style.cursor = "default";
if ($.blockUI){ $self.unblock(); }
$self.html(data);
}
}
_initialize();
};
$.fn.pwi.defaults = {
mode: 'albums', //-- can be: album, albums, latest (keyword = obsolete but backwards compatible, now just fill in a keyword in the settings to enable keyword-photos)
username: '', //-- Must be explicitly set!!!
album: "", //-- For loading a single album
authKey: "", //-- for loading a single album that is private (use in 'album' mode only)
albums: [], //-- use to load specific albums only: ["MyAlbum", "TheSecondAlbumName", "OtherAlbum"]
keyword: "",
albumKeywords: [], //-- Only show albums containing one of these keywords in the description. Use [keywords: "kw1", "kw2"] within the description
albumStartDateTime: "", //-- Albums on or after this date will be shown. Format: YYYY-MM-DDTHH:MM:SS or YYYY-MM-DD for date only
albumEndDateTime: "", //-- Albums before or on this date will be shown
albumCrop: 1, //-- crop thumbs on albumpage to have all albums in square thumbs (see albumThumbSize for supported sizes)
albumTitle: "", //-- overrule album title in 'album' mode
albumThumbSize: 160, //-- specify thumbnail size of albumthumbs (default: 72, cropped not supported, supported cropped/uncropped: 32, 48, 64, 160 and uncropped only: 72, 144, 200, 288, 320, 400, 512, 576, 640, 720, 800)
albumThumbAlign: 1, //-- Allign thumbs vertically between rows
albumMaxResults: 999, //-- load only the first X albums
albumsPerPage: 999, //-- show X albums per page (activates paging on albums when this amount is less then the available albums)
albumPage: 1, //-- force load on specific album
albumTypes: "public", //-- load public albums, not used for now
page: 1, //-- initial page for an photo page
photoSize: 800, //-- size of large photo loaded in slimbox, fancybox or other
maxResults: 50, //-- photos per page
showPager: 'bottom', //'top', 'bottom', 'both' (for both albums and album paging)
thumbSize: 72, //-- specify thumbnail size of photos (default: 72, cropped not supported, supported cropped/uncropped: 32, 48, 64, 160 and uncropped only: 72, 144, 200, 288, 320, 400, 512, 576, 640, 720, 800)
thumbCrop: 0, //-- force crop on photo thumbnails (see thumbSize for supported sized)
thumbAlign: 0, //-- Allign thumbs vertically between rows
thumbCss: {
'margin': '5px'
},
onclickThumb: "", //-- overload the function when clicked on a photo thumbnail
onclickAlbumThumb: "", //-- overload the function when clicked on a album thumbnail
popupExt: "", //-- extend the photos by connecting them to for example Fancybox (see demos for example)
removeAlbumTypes: [], //-- Albums with this type in the gphoto$albumType will not be shown. Known types are Blogger, ScrapBook, ProfilePhotos, Buzz, CameraSync
showAlbumTitles: true, //--following settings should be self-explanatory
showAlbumTitlesLength: 9999,
showAlbumThumbs: true,
showAlbumdate: true,
showAlbumPhotoCount: true,
showAlbumDescription: true,
showAlbumLocation: true,
showSlideshow: true, //-- Set to true to show slideshow in popup
showSlideshowLink: false,
showPhotoCaption: false,
showPhotoCaptionDate: false,
showCaptionLength: 9999,
showPhotoDownload: false,
showPhotoDownloadPopup: false,
showPhotoDate: true,
showPermaLink: false,
link2Permalink:false,
useQueryParameters: false,
loadingImage: "",
labels: {
photo: "foto",
photos: "fotos",
downloadphotos: "Descagar fotos",
albums: "Regresar a álbumes",
allalbums: "Ver todos los álbumes",
slideshow: "Ver Presentación",
noalbums: "No hay álbumes disponibles",
loading: "Recabando Datos...",
page: "Página",
prev: "Anterior",
next: "Siguiente",
showPermaLink: "Mostrar PermaLink",
downloadphotos: "Descargar Fotos",
devider: "|"
}, //-- translate if needed
months: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
slimbox_config: {
loop: false,
overlayOpacity: 0.6,
overlayFadeDuration: 400,
resizeDuration: 400,
resizeEasing: "swing",
initialWidth: 250,
initlaHeight: 250,
imageFadeDuration: 400,
captionAnimationDuration: 400,
counterText: "{x}/{y}",
closeKeys: [27, 88, 67, 70],
prevKeys: [37, 80],
nextKeys: [39, 83]
}, //-- overrule defaults is needed
blockUIConfig: {
message: "
loading...
",
css: "pwi_loader"
}, //-- overrule defaults if needed
albumstore: {}, //-- don't touch
photostore: {}, //-- don't touch
token: ""
};
})(jQuery);
// This function is called by FancyBox to format the title of a picture
function formatTitle(title, currentArray, currentIndex, currentOpts) {
var newTitle = '
' + title + '
';
if (currentOpts.orig.context.parentNode.childElementCount > 1) {
var $links = currentOpts.orig.context.parentNode.getElementsByClassName('downloadlink');
if ($links.length > 0) {
var downloadLink = 'Download';
newTitle = '