Файл: modules/video1/unitegallery/themes/tiles/ug-theme-tiles.js
Строк: 209
<?php
if(typeof g_ugFunctions != "undefined")
g_ugFunctions.registerTheme("tiles");
else
jQuery(document).ready(function(){g_ugFunctions.registerTheme("tiles")});
/**
* Grid gallery theme
*/
function UGTheme_tiles(){
var t = this;
var g_gallery = new UniteGalleryMain(), g_objGallery, g_objects, g_objWrapper;
var g_tiles = new UGTiles(), g_lightbox = new UGLightbox(), g_objPreloader, g_objTilesWrapper;
var g_functions = new UGFunctions(), g_objTileDesign = new UGTileDesign();
var g_options = {
theme_enable_preloader: true, //enable preloader circle
theme_preloading_height: 200, //the height of the preloading div, it show before the gallery
theme_preloader_vertpos: 100, //the vertical position of the preloader
theme_gallery_padding: 0, //the horizontal padding of the gallery from the sides
theme_appearance_order: "normal", //normal, shuffle, keep - the appearance order of the tiles. applying only to columns type
theme_auto_open:null //auto open lightbox at start
};
var g_defaults = {
gallery_width: "100%"
};
//temp variables
var g_temp = {
showPreloader: false
};
/**
* Init the theme
*/
function initTheme(gallery, customOptions){
g_gallery = gallery;
//set default options
g_options = jQuery.extend(g_options, g_defaults);
//set custom options
g_options = jQuery.extend(g_options, customOptions);
modifyOptions();
//set gallery options
g_gallery.setOptions(g_options);
g_gallery.setFreestyleMode();
g_objects = gallery.getObjects();
//get some objects for local use
g_objGallery = jQuery(gallery);
g_objWrapper = g_objects.g_objWrapper;
//init objects
g_tiles.init(gallery, g_options);
g_lightbox.init(gallery, g_options);
g_objTileDesign = g_tiles.getObjTileDesign();
}
/**
* modift options
*/
function modifyOptions(){
if(g_options.theme_enable_preloader == true)
g_temp.showPreloader = true;
switch(g_options.theme_appearance_order){
default:
case "normal":
break;
case "shuffle":
g_gallery.shuffleItems();
break;
case "keep":
g_options.tiles_keep_order = true;
break;
}
}
/**
* set gallery html elements
*/
function setHtml(){
//add html elements
g_objWrapper.addClass("ug-theme-tiles");
g_objWrapper.append("<div class='ug-tiles-wrapper' style='position:relative'></div>");
//add preloader
if(g_temp.showPreloader == true){
g_objWrapper.append("<div class='ug-tiles-preloader ug-preloader-trans'></div>");
g_objPreloader = g_objWrapper.children(".ug-tiles-preloader");
g_objPreloader.fadeTo(0,0);
}
g_objTilesWrapper = g_objWrapper.children(".ug-tiles-wrapper");
//set padding
if(g_options.theme_gallery_padding)
g_objWrapper.css({
"padding-left":g_options.theme_gallery_padding+"px",
"padding-right":g_options.theme_gallery_padding+"px"
});
g_tiles.setHtml(g_objTilesWrapper);
g_lightbox.putHtml();
}
/**
* actually run the theme
*/
function actualRun(){
//set preloader mode
if(g_objPreloader){
g_objPreloader.fadeTo(0,1);
g_objWrapper.height(g_options.theme_preloading_height);
g_functions.placeElement(g_objPreloader, "center", g_options.theme_preloader_vertpos);
}
initEvents();
g_tiles.run();
g_lightbox.run();
}
/**
* run the theme
*/
function runTheme(){
setHtml();
actualRun();
}
/**
* init size of the thumbs panel
*/
function initThumbsPanel(){
//set size:
var objGallerySize = g_gallery.getSize();
if(g_temp.isVertical == false)
g_objPanel.setWidth(objGallerySize.width);
else
g_objPanel.setHeight(objGallerySize.height);
g_objPanel.run();
}
/**
* on tile click - open lightbox
*/
function onTileClick(data, objTile){
objTile = jQuery(objTile);
var objItem = g_objTileDesign.getItemByTile(objTile);
var index = objItem.index;
g_lightbox.open(index);
}
/**
* before items request: hide items, show preloader
*/
function onBeforeReqestItems(){
g_objTilesWrapper.hide();
if(g_objPreloader){
g_objPreloader.show();
var preloaderSize = g_functions.getElementSize(g_objPreloader);
var galleryHeight = preloaderSize.bottom + 30;
g_objWrapper.height(galleryHeight);
}
}
/**
* open lightbox at start if needed
*/
function onLightboxInit(){
if(g_options.theme_auto_open !== null){
g_lightbox.open(g_options.theme_auto_open);
g_options.theme_auto_open = null;
}
}
/**
* init buttons functionality and events
*/
function initEvents(){
//remove preloader on tiles first placed
if(g_objPreloader){
jQuery(g_tiles).on(g_tiles.events.TILES_FIRST_PLACED, function(){
g_objWrapper.height("auto");
g_objPreloader.hide();
});
}
jQuery(g_objTileDesign).on(g_objTileDesign.events.TILE_CLICK, onTileClick);
g_objGallery.on(g_gallery.events.GALLERY_BEFORE_REQUEST_ITEMS, onBeforeReqestItems);
jQuery(g_lightbox).on(g_lightbox.events.LIGHTBOX_INIT, onLightboxInit);
}
/**
* destroy the theme
*/
this.destroy = function(){
jQuery(g_objTileDesign).off(g_objTileDesign.events.TILE_CLICK);
jQuery(g_tiles).off(g_tiles.events.TILES_FIRST_PLACED);
g_objGallery.off(g_gallery.events.GALLERY_BEFORE_REQUEST_ITEMS);
jQuery(g_lightbox).off(g_lightbox.events.LIGHTBOX_INIT);
g_tiles.destroy();
g_lightbox.destroy();
}
/**
* run the theme setting
*/
this.run = function(){
runTheme();
}
/**
* init
*/
this.init = function(gallery, customOptions){
initTheme(gallery, customOptions);
}
}
?>