Файл: modules/video1/unitegallery/themes/video/ug-theme-video.js
Строк: 355
<?php
if(typeof g_ugFunctions != "undefined")
g_ugFunctions.registerTheme("video");
else
jQuery(document).ready(function(){g_ugFunctions.registerTheme("video")});
/**
* Grid gallery theme
*/
function UGTheme_video(){
var t = this;
var g_gallery = new UniteGalleryMain(), g_objGallery, g_objects, g_objWrapper;
var g_objPlayer = new UGVideoPlayer(), g_objButtonsPanel, g_buttonPrev, g_buttonNext;
var g_functions = new UGFunctions();
var g_objPanel = new UGStripPanel();
//theme options
var g_options = {
theme_skin: "right-thumb", //right-thumb | right-title-only | right-no-thumb
theme_autoplay: false, //autoplay videos at start. true / false. Don't working on mobiles.
theme_disable_panel_timeout: 2500 //How much time the right panel will be disabled. in ms
};
//global defaults
var g_defaults = {
gallery_width:1100,
slider_controls_always_on:true,
strippanel_enable_handle:false,
strippanel_enable_buttons: false,
strip_space_between_thumbs: 0,
strippanel_padding_top: 0,
strippanel_padding_bottom: 0,
strippanel_padding_left: 0,
strippanel_padding_right: 0
};
//temp variables
var g_temp = {
panel_position:"right",
putButtonsPanel: false
};
/**
* Init the theme
*/
function initTheme(gallery, customOptions){
g_gallery = gallery;
g_options = jQuery.extend(g_options, g_defaults);
g_options = jQuery.extend(g_options, customOptions);
g_options.strippanel_vertical_type = true;
//set gallery options
g_gallery.setOptions(g_options);
//set panel options
g_objPanel.init(gallery, g_options);
g_objPanel.setOrientation(g_temp.panel_position);
g_objPanel.setCustomThumbs(setHtmlThumb);
g_objPanel.setDisabledAtStart(g_options.theme_disable_panel_timeout);
var galleryID = g_gallery.getGalleryID();
//set player options
g_objPlayer.init(g_options, true, galleryID);
g_objects = gallery.getObjects();
g_objGallery = jQuery(gallery);
g_objWrapper = g_objects.g_objWrapper;
switch(g_options.theme_skin){
case "right-no-thumb":
case "right-title-only":
g_temp.putButtonsPanel = true;
break;
}
}
/**
* 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:
initThumbsPanel();
placeThumbsPanel();
placePlayer();
if(g_objButtonsPanel)
resizeAndPlaceButtonsPanel();
}
/**
* run the theme
*/
function runTheme(){
setHtml();
initAndPlaceElements();
initEvents();
g_objPlayer.show();
}
/**
* set gallery html elements
*/
function setHtml(){
//add html elements
g_objWrapper.addClass("ug-theme-video ug-videoskin-"+g_options.theme_skin);
g_objPanel.setHtml();
g_objPlayer.setHtml(g_objWrapper);
//add buttons panel
if(g_temp.putButtonsPanel == true){
var html = "<div class='ug-video-buttons-panel'>";
html += "<div href='javascript:void(0)' class='ug-button-prev-video'></div>"
html += "<div href='javascript:void(0)' class='ug-button-next-video'></div>"
html += "</div>"
g_objWrapper.append(html);
g_objButtonsPanel = g_objWrapper.children(".ug-video-buttons-panel");
g_buttonPrev = g_objButtonsPanel.children(".ug-button-prev-video");
g_buttonNext = g_objButtonsPanel.children(".ug-button-next-video");
}
}
/**
* custom function foe drawing thumb
*/
function setHtmlThumb(objThumbWrapper, objItem){
var showDesc = true;
var showIcon = false;
switch(g_options.theme_skin){
case "right-title-only":
showDesc = false;
break;
case "right-thumb":
showIcon = true;
break;
}
var html = "<div class='ug-thumb-inner'>";
if(showIcon == true){
html += "<div class='ug-thumb-icon' style='background-image:url(""+objItem.urlThumb+"")'></div>";
html += "<div class='ug-thumb-right'>";
}
html += "<div class='ug-thumb-title'>" + objItem.title + "</div>";
if(showDesc == true)
html += "<div class='ug-thumb-desc'>" + objItem.description + "</div>";
if(showIcon == true)
html += "</div>"; //thumb right end
html += "</div>";
objThumbWrapper.html(html);
}
/**
* init size of the thumbs panel
*/
function initThumbsPanel(){
//set size:
var objGallerySize = g_gallery.getSize();
g_objPanel.setHeight(objGallerySize.height);
g_objPanel.run();
}
/**
* place thumbs panel according the settings
*/
function placeThumbsPanel(){
var objPanelElement = g_objPanel.getElement();
g_functions.placeElement(objPanelElement, "right", 0);
}
/**
* place the player according the thumbs panel size and position
*/
function placePlayer(){
var gallerySize = g_functions.getElementSize(g_objWrapper);
var panelSize = g_objPanel.getSize();
var playerWidth = playerWidth = panelSize.left;
var playerHeight = gallerySize.height;
var playerTop = 0;
var playerLeft = 0;
if(g_objButtonsPanel && g_objButtonsPanel.is(":visible")){
var buttonsPanelSize = g_functions.getElementSize(g_objButtonsPanel);
var buttonsHeight = buttonsPanelSize.height;
playerHeight -= buttonsHeight;
}
//set size
g_objPlayer.setSize(playerWidth, playerHeight);
//place
var objPlayer = g_objPlayer.getObject();
g_functions.placeElement(objPlayer, playerLeft, playerTop);
}
/**
* resize and place buttons panel
*/
function resizeAndPlaceButtonsPanel(){
if(!g_objButtonsPanel)
return(false);
if(g_objButtonsPanel.is(":visible") == false)
return(false);
var playerObj = g_objPlayer.getObject();
var playerSize = g_functions.getElementSize(playerObj);
g_objButtonsPanel.width(playerSize.width);
//position to the bottom of the gallery
g_functions.placeElement(g_objButtonsPanel, 0, "bottom");
}
/**
* on gallery size change - resize the theme.
*/
function onSizeChange(){
initAndPlaceElements();
}
/**
* on item change function
*/
function onItemChange(){
var selectedItem = g_gallery.getSelectedItem();
switch(selectedItem.type){
case "youtube":
g_objPlayer.playYoutube(selectedItem.videoid, g_options.theme_autoplay);
break;
case "vimeo":
g_objPlayer.playVimeo(selectedItem.videoid, g_options.theme_autoplay);
break;
case "html5video":
g_objPlayer.playHtml5Video(selectedItem.videoogv, selectedItem.videowebm, selectedItem.videomp4, selectedItem.urlImage, g_options.theme_autoplay);
break;
case "wistia":
g_objPlayer.playWistia(selectedItem.videoid, g_options.theme_autoplay);
break;
case "soundcloud":
g_objPlayer.playSoundCloud(selectedItem.trackid, g_options.theme_autoplay);
break;
}
}
/**
* init buttons functionality and events
*/
function initEvents(){
g_objGallery.on(g_gallery.events.SIZE_CHANGE,onSizeChange);
g_objGallery.on(g_gallery.events.ITEM_CHANGE,onItemChange);
g_objPlayer.initEvents();
//init buttons panel events:
if(g_objButtonsPanel){
g_functions.setButtonMobileReady(g_buttonPrev);
g_gallery.setPrevButton(g_buttonPrev);
g_functions.setButtonMobileReady(g_buttonNext);
g_gallery.setNextButton(g_buttonNext);
}
}
/**
* destroy the theme
*/
this.destroy = function(){
g_objGallery.off(g_gallery.events.SIZE_CHANGE);
g_objGallery.off(g_gallery.events.ITEM_CHANGE);
g_objPlayer.destroy();
if(g_objButtonsPanel){
g_functions.destroyButton(g_buttonPrev);
g_functions.destroyButton(g_buttonNext);
}
if(g_objPanel)
g_objPanel.destroy();
}
/**
* run the theme setting
*/
this.run = function(){
runTheme();
}
/**
* init
*/
this.init = function(gallery, customOptions){
initTheme(gallery, customOptions);
}
}
?>