/home/coolpkct/www/websites/cake3.cool.rocks/_themes/zero/js/skgalleries.js
/**
* Part of Showkase web site management package
*
* @package Showkase
* @author Jack Hardie {@link http://www.jhardie.com}
* @copyright Copyright (c) 2014, SimpleViewer Inc.
*/
/**
* Setup gallery resize
*
* @param object parameters from template
* pageType string
* pageVersion string
* containerId gallery container id
* offset integer theme setting top of page to top of gallery in px
* external integer user setting
* internal integer user setting
* targetWidth integer optimize for this image width
* targetHeight integer optimize for this image height
*/
function fitGallery(settings) {
if (!validFit(settings)) return;
var jbPadding = 130,
svPadding = 190,
jbLogo = 24,
svLogo = 30,
pro = settings.pageVersion.toLowerCase().indexOf('pro') != -1;
switch (settings.pageType) {
case 'juicebox' :
settings.padding = jbPadding - settings.internal;
if (pro) {
settings.padding -= jbLogo;
}
break;
case 'simpleviewer' :
settings.padding = svPadding - settings.internal;
if (pro) {
settings.padding -= svLogo;
}
break;
default :
return;
}
settings.offset -= settings.external;
settings.containerParent = $('#' + settings.containerId).parent();
if (!settings.containerParent.length) {
return;
}
// closure to cope with .width() sometimes returning zero on leaving full screen mode
var parentWidth = settings.containerParent.width();
if (parentWidth <= 0) {
return;
}
settings.aspectRatio = settings.targetHeight/settings.targetWidth;
$(window).on(
'resize',
settings,
function(event) {
var containerParent = event.data.containerParent,
currentParentWidth = containerParent.width();
if (currentParentWidth > 0) {
parentWidth = currentParentWidth;
}
var winHeight = window.innerHeight ? window.innerHeight : $(window).height(),
availableHeight = parseInt(winHeight)-event.data.offset,
galleryHeight = Math.floor(parentWidth*event.data.aspectRatio) + event.data.padding;
if (galleryHeight <= 0 || availableHeight <= 0) {
return;
}
containerParent.height(Math.min(galleryHeight, availableHeight));
}
);
$(window).triggerHandler('resize');
}
/**
* Check settings for template errors
*
* @param object settings
* @return boolean
*/
function validFit(settings) {
var n = 'number',
s = 'string';
return (
typeof settings.pageType == s
&& typeof settings.pageVersion == s
&& typeof settings.containerId == s
&& typeof settings.offset == n
&& typeof settings.external == n
&& typeof settings.internal == n
&& typeof settings.targetHeight == n
&& typeof settings.targetWidth == n
&& settings.targetHeight >= 0
&& settings.targetWidth >= 0
);
}