var xaraSwidgets_slideshowTemplates = { entry: '
' +'
' +'' +'
' +'
', image: '
' +'
' +'
' +'
' +'
loading image...
' +'
' +'
' +'' +'
', main: '{imagehtml}' +'' + '
{entryhtml}
' }; function xaraSwidgets_slideshowGetScaledNumber(container, originalWidth, num, min) { var widthRatio = container.width() / originalWidth; var newNum = Math.round(widthRatio * num); if(min==null) { min = 1; } if(newNum<=min) { newNum = min; } return newNum; } function xaraSwidgets_slideshowNavButtonPressed(divID, newDirection) { $('#' + divID).data('CurrentDirection', newDirection); xaraSwidgets_slideshowTriggerTimeout(divID); } function xaraSwidgets_slideshowTriggerTimeout(divID) { if($('#' + divID).data('CurrentThumb')==null) { return; } var nextThumb; if($('#' + divID).data('CurrentDirection')>=0) { nextThumb = $('#' + divID).data('CurrentThumb').next(); } else { nextThumb = $('#' + divID).data('CurrentThumb').prev(); } nextThumb.trigger("click"); $('#' + divID).data('CurrentThumb', nextThumb); xaraSwidgets_slideshowSetupTimeout(divID); } function xaraSwidgets_slideshowClearTimeout(divID) { clearTimeout($('#' + divID).data('CurrentThumbTimeout')); } function xaraSwidgets_slideshowSetupTimeout(divID) { xaraSwidgets_slideshowClearTimeout(divID); var scrollTime = $('#' + divID).data('autoscroll'); if(scrollTime!=null && scrollTime!=0) { var scrollTime = scrollTime; if(!$('#' + divID).data('FirstTimeoutDone')) { scrollTime = 3; $('#' + divID).data('FirstTimeoutDone', true); } $('#' + divID).data('CurrentThumbTimeout', setTimeout("xaraSwidgets_slideshowTriggerTimeout('" + divID + "');", scrollTime * 1000)); } } function xaraSwidgets_slideshowTriggerImageDownloaded(divID, imgIndex) { var stageImage = $('#' + divID).find('.bigImage' + imgIndex); $('#' + divID).data('imagesDownloaded')[imgIndex] = true; //console.log(stageImage.height()); stageImage.animate(null, 1000, null, function() { //$(this).trigger('imageLoaded'); }); } function xaraSwidgets_slideshowTriggerImageDownload(divID, imgIndex) { if(imgIndex<0 || imgIndex>=$('#' + divID).find('.bigImage').length) { return; } if($('#' + divID).data('imagesDownloaded')[imgIndex]) { return; } var stageImage = $('#' + divID).find('.bigImage' + imgIndex); var imageURL = $('#' + divID).data('imageSrcsToDownload')[imgIndex]; var newImg = new Image(); newImg.onload = function() { $('#' + divID).data('imagesDownloaded')[imgIndex] = true; var width = newImg.width; var height = newImg.height; stageImage.data('imageWidth', width); stageImage.data('imageHeight', height); stageImage.attr('src', imageURL); stageImage.trigger('imageLoaded'); } newImg.src = imageURL; if (newImg && (newImg.complete || newImg.readyState === 4)) { newImg.onload(); //console.log('Image loaded already'); } } function xaraSwidgets_slideshowIsVertical(orientation) { return orientation=='left' || orientation=='right'; } function xaraSwidgets_slideshowTemplateConstructor(divID, data, options) { if(!options) { options = {}; } var originalWidth = options.width ? options.originalWidth : 600; var originalHeight = options.height ? options.originalHeight : 470; var originalBigImageWidth = options.bigImageWidth ? options.bigImageWidth : 560; var originalBigImageHeight = (originalBigImageWidth / 3) * 2; var originalThumbnailWidth = options.thumbnailWidth ? options.thumbnailWidth : 90; var originalCarouselHeight = options.carouselHeight ? options.carouselHeight : 70; var originalButtonWidth = options.buttonWidth ? options.buttonWidth : 200; var orientation = options.orientation ? options.orientation : 'bottom'; var vertical = xaraSwidgets_slideshowIsVertical(orientation); var imagePadding = 5; var container = $('#' + divID).parent(); var containerWidth = container.width(); var containerHeight = container.height(); var widthRatio = containerWidth / originalWidth; var heightRatio = containerHeight / originalHeight; var carouselHeight = Math.round(originalCarouselHeight * heightRatio); var thumbnailWidth = Math.round(originalThumbnailWidth * widthRatio); var bigImageWidth = Math.round(originalBigImageWidth * widthRatio); var buttonWidth = Math.round(originalButtonWidth * widthRatio); var scaledImageHeight = Math.round(widthRatio * originalBigImageHeight); var imageHeight = vertical ? containerHeight : containerHeight - carouselHeight; $('#' + divID).width(containerWidth).height(containerHeight); var entryHTML = ''; var imageHTML = ''; $('#' + divID).data('imagesDownloaded', {}); $('#' + divID).data('imageIndexes', {}); $('#' + divID).data('imageSrcsToDownload', {}); $('#' + divID).data('imagesToDownload', {}); var dataLength = data.length-1; var minImages = 12; var sets = Math.ceil(minImages/dataLength); //sets = 1; var allData = []; if(data.length>1) { for(var setIndex=0; setIndex imageHeight) { $(this).attr('height', imageHeight-20); } //$(this).show(); /* $(this).css({ opacity:1 }); */ });//.hide(); ///// the thumbnails $('#' + divID).find('.thumbnailContainer').bind('click', function(e) { if($('#' + divID).data('scrollingCarousel')) { return; } $('#' + divID).find('.slideshowLastButton').show(); var clickIndex = parseInt($(this).attr('data-index')); var currentThumb = $('#' + divID).data('CurrentThumb'); if(currentThumb!=null) { if($(this).prevAll(currentThumb).length !== 0) { $('#' + divID).data('CurrentDirection', 1); } else { $('#' + divID).data('CurrentDirection', -1); } /* var lastCarouselIndex = parseInt(currentThumb.attr('data-index')); if(clickIndex container.height()) { topGap -= ((topGap + imageHeight) - container.height()); } $('#' + divID).find('.bigImageContainer, .slideshowButton').css({ 'margin-top':topGap + 'px' }); } else if(orientation=='left') { $('#' + divID).find('.caroufredsel_wrapper').css({ 'position':'absolute', 'left':'5px', 'top':'0px' }); $('#' + divID).find('.bigImageContainer').css({ 'left':thumbnailWidth + 'px' }); $('#' + divID).find('.slideshowLastButton').css({ 'margin-left':(20 + thumbnailWidth) + 'px' }); } else if(orientation=='right') { $('#' + divID).find('.caroufredsel_wrapper').css({ 'position':'absolute', 'right':'5px', 'top':'0px' }); $('#' + divID).find('.slideshowNextButton').css({ 'margin-right':(20 + thumbnailWidth) + 'px' }); } $('#' + divID).find('.bigImageContainer').hide(); $('#' + divID).find('.bigImageContainer:first').show(); $('#' + divID).data('CurrentDirection', 1); $('#' + divID).data('CurrentThumb', $('#' + divID).find('.thumbnailContainer:first')); var scrollSetting = $('#' + divID).data('autoscroll'); if(scrollSetting!=null && scrollSetting!=0) { xaraSwidgets_slideshowSetupTimeout(divID); } xaraSwidgets_slideshowTriggerImageDownload(divID, 0); xaraSwidgets_slideshowTriggerImageDownload(divID, 1); }