Вход Регистрация
Файл: modules/video1/unitegallery/themes/compact/ug-theme-compact.js
Строк: 417
<?php
if(typeof g_ugFunctions != "undefined")
    
g_ugFunctions.registerTheme("compact");
else 
    
jQuery(document).ready(function(){g_ugFunctions.registerTheme("compact")});


/**
 * Grid gallery theme
 */
function UGTheme_compact(){

    var 
this;
    var 
g_gallery = new UniteGalleryMain(), g_objGalleryg_objectsg_objWrapper
    var 
g_objSlider;
    var 
g_functions = new UGFunctions();
    var 
g_objPanel = new UGStripPanel();
    
    
//theme options
    
var g_options = {
            
theme_load_slider:true,                    //true, false - load the slider
            
theme_load_panel:true,                    //true, false - load the thumbs grid panel
            
theme_panel_position"bottom",            //top, bottom, left, right - thumbs panel position
            
theme_hide_panel_under_width480        //hide panel under certain browser width, if null, don't hide
    
};
    
    
//global defaults
    
var g_defaults = {
            
slider_controls_always_on:true,
            
slider_enable_text_panel:false,
            
slider_vertical_scroll_ondragtrue,
            
strippanel_enable_buttons:false            
    
};
    
    
    
//special defaults for left side panel position
    
var g_defaults_left = {
        
slider_enable_text_panel:true,
        
slider_zoompanel_align_hor"right",
        
slider_fullscreen_button_align_hor"right",
        
slider_play_button_align_hor"right",
        
slider_zoompanel_offset_vert9,
        
slider_zoompanel_offset_hor11,
        
slider_play_button_offset_hor88,
        
slider_play_button_offset_vert8,
        
slider_fullscreen_button_offset_hor52,
        
slider_fullscreen_button_offset_vert9,
        
slider_progress_indicator_align_hor"right",
        
slider_progress_indicator_offset_vert36,    
        
slider_progress_indicator_offset_hor63            
    
}
    
    
//special defaults for right side panel position
    
var g_defaults_right = {
        
slider_enable_text_panel:true,
        
slider_zoompanel_offset_vert9,
        
slider_zoompanel_offset_hor11,
        
slider_play_button_offset_hor88,
        
slider_play_button_offset_vert8,
        
slider_fullscreen_button_offset_hor52,
        
slider_fullscreen_button_offset_vert9,
        
        
slider_progress_indicator_align_hor"left",
        
slider_progress_indicator_offset_vert36,    
        
slider_progress_indicator_offset_hor63    
        
    
}
    
    
//special defaults for bottom panel position
    
var g_defaults_bottom = {
        
        
slider_zoompanel_align_hor"right",
        
slider_zoompanel_offset_vert10,
        
        
slider_progress_indicator_align_hor"left",
        
slider_progress_indicator_offset_vert36,    
        
slider_progress_indicator_offset_hor16    
    
}
    
    
//special defaults for top panel position
    
var g_defaults_top = {
        
slider_zoompanel_align_vert"bottom",
        
slider_zoompanel_offset_vert10,
        
        
slider_play_button_align_hor"right",
        
slider_play_button_align_vert"bottom",
        
        
slider_fullscreen_button_align_vert"bottom",    
        
slider_fullscreen_button_align_hor"right",
        
        
slider_progress_indicator_align_vert"bottom",
        
slider_progress_indicator_offset_vert40
    
}
    
    
    
//temp variables
    
var g_temp = {
        
isVerticalfalse,
        
isMobileModeWasEnabledfalse
    
};
    
    
    
/**
     * Init the theme
     */
    
function initTheme(gallerycustomOptions){
        
        
g_gallery gallery;
        
        
g_options jQuery.extend(g_optionscustomOptions);
                
        
modifyOptions(customOptions);
        
        
//set gallery options
        
g_gallery.setOptions(g_options);
                
        
//include gallery elements
        
if(g_options.theme_load_panel == true){
            
g_objPanel.init(galleryg_options);
            
g_objPanel.setOrientation(g_options.theme_panel_position);
            
        }else
            
g_objPanel null;
        
        if(
g_options.theme_load_slider == true)
            
g_gallery.initSlider(g_options);
        
        
g_objects gallery.getObjects();
        
        
//get some objects for local use
        
g_objGallery jQuery(gallery);        
        
g_objWrapper g_objects.g_objWrapper;
        
        if(
g_options.theme_load_slider == true)
            
g_objSlider g_objects.g_objSlider;
        
    }
    
    
    
/**
     * modify options
     */
    
function modifyOptions(customOptions){
                
        
g_options jQuery.extend(g_optionsg_defaults);
        
        if(
g_options.theme_load_panel == true){
            
            switch(
g_options.theme_panel_position){
                case 
"left":
                case 
"right":
                    
g_temp.isVertical true;
                    
g_options.strippanel_vertical_type true;
                break;
            }
        }
        
        
        switch(
g_options.theme_panel_position){
            case 
"left":
                
g_options jQuery.extend(g_optionsg_defaults_left);                
            break;
            case 
"right":
                
g_options jQuery.extend(g_optionsg_defaults_right);                
            break;
            case 
"top":
                
g_options jQuery.extend(g_optionsg_defaults_top);
            break;
            case 
"bottom":
                
g_options jQuery.extend(g_optionsg_defaults_bottom);
            break;
        }
        
        
g_options jQuery.extend(g_optionscustomOptions);
        
    }
    
    
    
/**
     * init all the theme's elements and set them to their places 
     * according gallery's dimentions.
     * this function should work on resize too.
     */
    
function initAndPlaceElements(){
        
        
//place objects:
        
if(g_objPanel){
            
initThumbsPanel();
            
placeThumbsPanel();
        }
        
        if(
g_objSlider){
            
g_objSlider.run();
            
placeSlider();
        }
        
    }
    
    
    
/**
     * run the theme
     */
    
function runTheme(){
        
        
setHtml();
        
        
initAndPlaceElements();
        
        
initEvents();
    }
    
    
    
/**
     * set gallery html elements
     */
    
function setHtml(){
        
        
//add html elements
        
g_objWrapper.addClass("ug-theme-grid");
        
        
//set panel html
        
if(g_objPanel)
            
g_objPanel.setHtml();
            
        
//set slider html
        
if(g_objSlider)
            
g_objSlider.setHtml();
        
    }
    
    
    
/**
     * 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();
    }
    
    
    
    
/**
     * place thumbs panel according the settings
     */
    
function placeThumbsPanel(){
        
        var 
isNeedToHide isPanelNeedToHide();
        var 
isHidden g_objPanel.isPanelClosed();        
        
        var 
objPanelElement g_objPanel.getElement();
        var 
posVert "bottom";
        var 
posHor "left";
        
        var 
showClosed = (isNeedToHide || isHidden);
            
        if(
showClosed){
            var 
hiddenDest g_objPanel.getClosedPanelDest();
            var 
originalPos =  g_functions.getElementRelativePos(objPanelElementg_options.theme_panel_position);
            
g_objPanel.setClosedState(originalPos);
        }else{
            
g_objPanel.setOpenedState();
        }
        
        switch(
g_options.theme_panel_position){
            case 
"right":
            case 
"left":
                
posHor g_options.theme_panel_position;
                if(
showClosed)
                    
posHor hiddenDest;
                
            break;        
            case 
"top":
            case 
"bottom":                
                
posVert g_options.theme_panel_position;
                if(
showClosed)
                    
posVert hiddenDest;
            break;
            default:
                throw new 
Error("Wrong panel position: " g_options.theme_panel_position);
            break;
        }
        
        
g_functions.placeElement(objPanelElementposHorposVert00);
    } 
    
    
    
    
/**
     * place the slider according the thumbs panel size and position
     */
    
function placeSlider(){
        
        
//g_objPanel
        
var gallerySize g_functions.getElementSize(g_objWrapper);
        
        var 
sliderWidth gallerySize.width;
        var 
sliderHeight gallerySize.height;
        var 
sliderTop 0;
        var 
sliderLeft 0;
        
        if(
g_objPanel){
            
            var 
panelSize g_objPanel.getSize();
            
            switch(
g_options.theme_panel_position){
                case 
"left":
                    
sliderLeft panelSize.right;
                    
sliderWidth gallerySize.width panelSize.right;    
                break;
                case 
"right":
                    
sliderWidth panelSize.left;                    
                break;
                case 
"top":
                    
sliderHeight gallerySize.height panelSize.bottom;
                    
sliderTop panelSize.bottom;
                break;
                case 
"bottom":
                    
sliderHeight panelSize.top;
                break;
            }
            
        }
        
        
g_objSlider.setSize(sliderWidthsliderHeight);
        
g_objSlider.setPosition(sliderLeftsliderTop);
    }

    
/**
     * check if need to hide the panel according the options.
     */
    
function isPanelNeedToHide(){
        
        if(!
g_options.theme_hide_panel_under_width)
            return(
false);
        
        var 
windowWidth jQuery(window).width();
        var 
hidePanelValue g_options.theme_hide_panel_under_width;
        
        if(
windowWidth <= hidePanelValue)
            return(
true);
            
        return(
false);
    }

    
    
/**
     * check if need to hide or show panel according the theme_hide_panel_under_width option
     */
    
function checkHidePanel(){
        
        
//check hide panel:
        
if(!g_options.theme_hide_panel_under_width)
            return(
false);
        
            var 
needToHide isPanelNeedToHide();
            
            if(
needToHide == true){
                
g_objPanel.closePanel(true);
                
g_temp.isMobileModeWasEnabled true;
            }
            else{
                if(
g_temp.isMobileModeWasEnabled == true){
                    
g_objPanel.openPanel(true);
                    
g_temp.isMobileModeWasEnabled false;
                }
            }
    }
    
    
    
/**
     * on gallery size change - resize the theme.
     */
    
function onSizeChange(){
        
        
initAndPlaceElements();
                
        if(
g_objPanel)
            
checkHidePanel();
        
    }
    
    
    
/**
     * on panel move event
     */
    
function onPanelMove(){
        
        
placeSlider();
    }

    
    
/**
     * before items request: hide items, show preloader
     */
    
function onBeforeReqestItems(){
    
        
g_gallery.showDisabledOverlay();
    
    }
        
    
    
/**
     * init buttons functionality and events
     */
    
function initEvents(){
                        
        
g_objGallery.on(g_gallery.events.SIZE_CHANGE,onSizeChange);
        
g_objGallery.on(g_gallery.events.GALLERY_BEFORE_REQUEST_ITEMSonBeforeReqestItems);
        
        if(
g_objPanel){
            
jQuery(g_objPanel).on(g_objPanel.events.FINISH_MOVEonPanelMove);
        }
        
    }
    
    
    
/**
     * destroy the theme
     */
    
this.destroy = function(){
        
        
g_objGallery.off(g_gallery.events.SIZE_CHANGE);
        
g_objGallery.off(g_gallery.events.GALLERY_BEFORE_REQUEST_ITEMS);
        
        if(
g_objPanel)
            
jQuery(g_objPanel).off(g_objPanel.events.FINISH_MOVE);
        
        
g_objPanel.destroy();
        
g_objSlider.destroy();
        
    }
    
    
    
/**
     * run the theme setting
     */
    
this.run = function(){
        
        
runTheme();
    }
    
    
    
/**
     * init 
     */
    
this.init = function(gallerycustomOptions){
                
        
initTheme(gallerycustomOptions);
    }
    
    
}
?>
Онлайн: 1
Реклама