Вход Регистрация
Файл: plugins/pcgallery/static/script.js
Строк: 97
<?php
PCGALLERY 
= (function() {
    var 
MAX_PHOTOS = 4, CHANGE_SPEED = 3000;
    var 
_container, _settings, _photos = [], _changeOrder = 1, _photoIndex = MAX_PHOTOS;
    var 
delayChange, changeNextImage, getNextPhoto, isPhotoVisible, loadImage, showPhoto;

    
isPhotoVisible = function( photoId ) {
        return $(
'.pcg-image', _container).filter(function() {
            return $(
this).data("pid") == photoId;
        }).
length > 0;
    };

    
getNextPhoto = function() {
        var 
photo = _photos[_photoIndex];

        
_photoIndex++;
        
_photoIndex = _photoIndex >= _photos.length ? 0 : _photoIndex;

        if ( 
photo && isPhotoVisible(photo.id) ) {
            return 
getNextPhoto();
        }

        return 
photo;
    };

    
delayChange = function() {
        
window.setTimeout(changeNextImage, _settings.changeInterval);
    };

    
loadImage = function( src, callBack ) {
        $(
'<img>').attr("src", src).load(function() {
            
callBack(src);
        });
    };

    
changeNextImage = function() {
        var 
image, newImage,photo = getNextPhoto();
        if ( !
photo ) return;

        
image = $('.pcg-image[data-order=' + _changeOrder + ']', _container);

        
loadImage(photo.src, function() {
            
newImage = image.clone();

            
newImage.css("background-image", 'url(' + photo.src + ')');
            
newImage.css("opacity", 0);
            
newImage.data("pid", photo.id);

            
image.after(newImage);

            
newImage.animate({opacity: 1}, CHANGE_SPEED, delayChange);

            
image.animate({opacity: 0}, CHANGE_SPEED, function() {
                
image.remove();
            });
        });

        
_changeOrder = _changeOrder >= MAX_PHOTOS ? 1 : _changeOrder + 1;
    };

    
showPhoto = function( photoId ) {
        
window.photoView.setId(photoId, _settings.listType);
    };
    
    function 
showSettings()
    {
        var 
scope = {};
        
        
PEEP.ajaxFloatBox("PCGALLERY_CMP_GallerySettings", [_settings.userId], {
            
title: PEEP.getLanguageText("pcgallery", "setting_fb_title"),
            
scope: scope
        
});
    }

    return {
        
init: function( uniqId, settings, photos ) {
            
_container = $('#' + uniqId);
            
_settings = settings;
            
_photos = photos;

            
delayChange();

            $(
document).on("click", ".pcg-image", function() {
                
showPhoto($(this).data("pid"));
            });
                        
            $(
"#pcgallery-settings-btn").click(showSettings);
        }
    };
})();
?>
Онлайн: 0
Реклама