1 2if(typeof g_ugFunctions != "undefined") 3 try { g_ugFunctions.registerTheme("grid"); } catch (ex) { console.log(ex.message); } 4else 5 jQuery(document).ready(function () { try { g_ugFunctions.registerTheme("grid") } catch (ex) { console.log(ex.message); } }); 6 7/** 8 * Grid gallery theme 9 */ 10function UGTheme_grid(){ 11 12 var t = this; 13 var g_gallery = new UniteGalleryMain(), g_objGallery, g_objects, g_objWrapper; 14 var g_objSlider; 15 var g_functions = new UGFunctions(); 16 var g_objPanel = new UGGridPanel(); 17 18 19 //theme options 20 var g_options = { 21 theme_load_slider:true, //true, false - load the slider 22 theme_load_panel:true, //true, false - load the thumbs grid panel 23 theme_panel_position: "right", //left, right, top, bottom - thumbs panel position 24 theme_hide_panel_under_width: 480 //hide panel under certain browser width, if null, don't hide 25 }; 26 27 //global defaults (for right side) 28 var g_defaults = { 29 slider_controls_always_on:true, 30 slider_vertical_scroll_ondrag: true 31 }; 32 33 //special defaults for left side panel position 34 var g_defaults_left = { 35 slider_zoompanel_align_hor: "right", 36 slider_fullscreen_button_align_hor: "right", 37 slider_play_button_align_hor: "right", 38 39 slider_zoompanel_offset_vert: 9, 40 slider_zoompanel_offset_hor: 11, 41 slider_play_button_offset_hor: 88, 42 slider_play_button_offset_vert: 8, 43 slider_fullscreen_button_offset_hor: 52, 44 slider_fullscreen_button_offset_vert: 9 45 }; 46 47 var g_defaults_right = { 48 slider_zoompanel_offset_vert: 9, 49 slider_zoompanel_offset_hor: 11, 50 slider_play_button_offset_hor: 88, 51 slider_play_button_offset_vert: 8, 52 slider_fullscreen_button_offset_hor: 52, 53 slider_fullscreen_button_offset_vert: 9 54 } 55 56 var g_defaults_bottom = { 57 slider_enable_text_panel: false, 58 slider_zoompanel_align_hor: "right", 59 slider_zoompanel_offset_vert: 10, 60 61 slider_progress_indicator_align_hor: "left", 62 slider_progress_indicator_offset_vert: 36, 63 slider_progress_indicator_offset_hor: 16 64 } 65 66 var g_defaults_top = { 67 slider_enable_text_panel: false, 68 slider_zoompanel_align_vert: "bottom", 69 slider_zoompanel_offset_vert: 10, 70 71 slider_play_button_align_hor: "right", 72 slider_play_button_align_vert: "bottom", 73 74 slider_fullscreen_button_align_vert: "bottom", 75 slider_fullscreen_button_align_hor: "right", 76 77 slider_progress_indicator_align_vert: "bottom", 78 slider_progress_indicator_offset_vert: 40, 79 gridpanel_padding_border_top: 4, //padding between the top border of the panel 80 gridpanel_padding_border_bottom: 10 //padding between the bottom border of the panel 81 } 82 83 //temp variables 84 var g_temp = { 85 isMobileModeWasEnabled: false, 86 isHorPos: false 87 }; 88 89 90 /** 91 * Init the theme 92 */ 93 function initTheme(gallery, customOptions){ 94 95 g_gallery = gallery; 96 97 g_options = jQuery.extend(g_options, g_defaults); 98 g_options = jQuery.extend(g_options, customOptions); 99 100 switch(g_options.theme_panel_position){ 101 case "left": 102 g_options = jQuery.extend(g_options, g_defaults_left); 103 break; 104 case "right": 105 g_options = jQuery.extend(g_options, g_defaults_right); 106 break; 107 case "top": 108 g_options = jQuery.extend(g_options, g_defaults_top); 109 break; 110 case "bottom": 111 g_options = jQuery.extend(g_options, g_defaults_bottom); 112 break; 113 } 114 115 g_options = jQuery.extend(g_options, customOptions); 116 117 modifyOptions(); 118 119 //set gallery options 120 g_gallery.setOptions(g_options); 121 122 //include gallery elements 123 if(g_options.theme_load_panel == true){ 124 if(g_options.theme_panel_position == "top" || g_options.theme_panel_position == "bottom") 125 g_temp.isHorPos = true; 126 127 g_objPanel.setOrientation(g_options.theme_panel_position); 128 g_objPanel.init(gallery, g_options); 129 }else 130 g_objPanel = null; 131 132 if(g_options.theme_load_slider == true) 133 g_gallery.initSlider(g_options); 134 135 g_objects = gallery.getObjects(); 136 137 //get some objects for local use 138 g_objGallery = jQuery(gallery); 139 g_objWrapper = g_objects.g_objWrapper; 140 141 if(g_options.theme_load_slider == true) 142 g_objSlider = g_objects.g_objSlider; 143 144 } 145 146 147 /** 148 * modify options 149 */ 150 function modifyOptions(){ 151 152 if(g_options.theme_load_panel == true && g_options.theme_panel_position == "left"){ 153 g_options.gridpanel_handle_position = "right"; 154 } 155 } 156 157 /** 158 * init all the theme's elements and set them to their places 159 * according gallery's dimentions. 160 * this function should work on resize too. 161 */ 162 function initAndPlaceElements(){ 163 164 //place objects: 165 if(g_objPanel){
166 initThumbsPanel(); 167 placeThumbsPanel(); 168 } 169 170 if(g_objSlider){ 171 g_objSlider.run(); 172 placeSlider(); 173 } 174 175 } 176 177 178 /** 179 * run the theme 180 */ 181 function runTheme(){ 182 183 setHtml(); 184 185 initAndPlaceElements(); 186 187 initEvents(); 188 } 189 190 191 /** 192 * set gallery html elements 193 */ 194 function setHtml(){ 195 196 //add html elements 197 g_objWrapper.addClass("ug-theme-grid"); 198 199 //set panel html 200 if(g_objPanel) 201 g_objPanel.setHtml(); 202 203 //set slider html 204 if(g_objSlider) 205 g_objSlider.setHtml(); 206 207 } 208 209 210 /** 211 * init size of the thumbs panel 212 */ 213 function initThumbsPanel(){ 214 215 //set size: 216 var objGallerySize = g_gallery.getSize(); 217 if(g_temp.isHorPos == true) 218 g_objPanel.setWidth(objGallerySize.width); 219 else 220 g_objPanel.setHeight(objGallerySize.height); 221 222 g_objPanel.run(); 223 } 224 225 226 /** 227 * place thumbs panel according the settings 228 */ 229 function placeThumbsPanel(){ 230 231 var objPanelElement = g_objPanel.getElement(); 232 233 var isNeedToHide = isPanelNeedToHide(); 234 var isHidden = g_objPanel.isPanelClosed(); 235 236 var showClosed = (isNeedToHide || isHidden); 237 238 var pos = g_options.theme_panel_position; 239 240 //place the panel closed or opened state. 241 if(showClosed){ 242 var hiddenDest = g_objPanel.getClosedPanelDest(); 243 var originalPos = g_functions.getElementRelativePos(objPanelElement, g_options.theme_panel_position); 244 g_objPanel.setClosedState(originalPos); 245 pos = hiddenDest; 246 }else{ 247 g_objPanel.setOpenedState(); 248 } 249 250 if(g_temp.isHorPos == true) 251 g_functions.placeElement(objPanelElement, "left", pos); 252 else 253 g_functions.placeElement(objPanelElement, pos, "top"); 254 255 } 256 257 258 /** 259 * place the slider according the thumbs panel size and position 260 */ 261 function placeSlider(){ 262 263 //g_objPanel 264 var gallerySize = g_functions.getElementSize(g_objWrapper); 265 266 var sliderWidth = gallerySize.width; 267 var sliderHeight = gallerySize.height; 268 var sliderTop = 0; 269 var sliderLeft = 0; 270 271 if(g_objPanel){ 272 273 var panelSize = g_objPanel.getSize(); 274 275 switch(g_options.theme_panel_position){ 276 case "left": 277 sliderLeft = panelSize.right; 278 sliderWidth = gallerySize.width - panelSize.right; 279 break; 280 case "right": 281 sliderWidth = panelSize.left; 282 break; 283 case "top": 284 sliderHeight = gallerySize.height - panelSize.bottom; 285 sliderTop = panelSize.bottom; 286 break; 287 case "bottom": 288 sliderHeight = panelSize.top; 289 break; 290 } 291 292 } 293 294 g_objSlider.setSize(sliderWidth, sliderHeight); 295 g_objSlider.setPosition(sliderLeft, sliderTop); 296 } 297 298 299 /** 300 * check if need to hide the panel according the options. 301 */ 302 function isPanelNeedToHide(){ 303 304 if(!g_options.theme_hide_panel_under_width) 305 return(false); 306 307 var windowWidth = jQuery(window).width(); 308 var hidePanelValue = g_options.theme_hide_panel_under_width; 309 310 if(windowWidth <= hidePanelValue) 311 return(true); 312 313 return(false); 314 } 315 316 /** 317 * check if need to hide or show panel according the theme_hide_panel_under_width option 318 */ 319 function checkHidePanel(){ 320 321 //check hide panel: 322 if(!g_options.theme_hide_panel_under_width) 323 return(false); 324 325 var needToHide = isPanelNeedToHide(); 326 327 if(needToHide == true){ 328 g_objPanel.closePanel(true); 329 g_temp.isMobileModeWasEnabled = true; 330 } 331 else{ 332 if(g_temp.isMobileModeWasEnabled == true){ 333 g_objPanel.openPanel(true); 334 g_temp.isMobileModeWasEnabled = false; 335 } 336 } 337 } 338 339 340 /** 341 * on gallery size change - resize the theme. 342 */ 343 function onSizeChange(){ 344 345 initAndPlaceElements(); 346 347 if(g_objPanel) 348 checkHidePanel(); 349 350 } 351 352 353 /** 354 * on panel move event 355 */ 356 function onPanelMove(){ 357 placeSlider(); 358 } 359 360 361 /** 362 * before items request: hide items, show preloader 363 */ 364 function onBeforeReqestItems(){ 365 366 g_gallery.showDisabledOverlay(); 367 368 } 369 370 371 /** 372 * init buttons functionality and events 373 */ 374 function initEvents(){ 375 376 g_objGallery.on(g_gallery.events.SIZE_CHANGE,onSizeChange); 377 g_objGallery.on(g_gallery.events.GALLERY_BEFORE_REQUEST_ITEMS, onBeforeReqestItems); 378 379 if(g_objPanel){ 380 jQuery(g_objPanel).on(g_objPanel.events.FINISH_MOVE, onPanelMove); 381 } 382 383 } 384 385 386 /** 387 * destroy the theme events 388 */ 389 this.destroy = function(){ 390 391 g_objGallery.off(g_gallery.events.SIZE_CHANGE,onSizeChange); 392 g_objGallery.off(g_gallery.events.GALLERY_BEFORE_REQUEST_ITEMS); 393 394 if(g_objPanel) 395 jQuery(g_objPanel).off(g_objPanel.events.FINISH_MOVE); 396 397 g_objPanel.destroy(); 398 g_objSlider.destroy(); 399 400 } 401 402 403 /** 404 * run the theme setting 405 */ 406 this.run = function(){ 407 408 runTheme(); 409 } 410 411 412 /** 413 * init 414 */ 415 this.init = function(gallery, customOptions){ 416 417 initTheme(gallery, customOptions); 418 } 419 420 421} 422
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.