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("
"); //add preloader if(g_temp.showPreloader == true){ g_objWrapper.append("
"); 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){ g_gallery.onEvent(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); g_gallery.destroyEvent(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(); } /** * add items */ this.addItems = function(){ g_tiles.runNewItems(); } /** * init */ this.init = function(gallery, customOptions){ initTheme(gallery, customOptions); } }