/* * Copyright © 2018 Regular Labs - All Rights Reserved * License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL */ var RegularLabsModals=null;var RLModals=null;(function($){"use strict";RegularLabsModals={active_modal:null,resize_timer:null,modal_delay:null,window_width:$(window).width(),init:function(options){options=options?options:this.getOptions();if(!options){return;} $(window).resize(RegularLabsModals.resizeOnBrowserResize);window.addEventListener("orientationchange",RegularLabsModals.resizeOnBrowserResize,false);$.colorbox.settings.createImg=function(){var img=new Image();var data_title=$(this).attr('data-modal-title')?$(this).attr('data-modal-title').replace(/(.)
/,'$1 - ').replace(/<[a-z\/].*?>/g,' '):'';var title=data_title?data_title:$(this).attr('data-modal-img-title')?$(this).attr('data-modal-img-title'):'';var alt=$(this).attr('data-modal-alt')?$(this).attr('data-modal-alt'):$(this).attr('data-modal-img-alt')?$(this).attr('data-modal-img-alt'):title;img.title=title;img.alt=alt;return img;};$("#cboxContent > button").each(function(){$(this).attr('aria-label',this.id.replace('cbox',''));});$.each($('.'+options.class),function(i,el){RegularLabsModals.initModal(el);});$(document).bind('cbox_open',function(){RegularLabsModals.window_width=$(window).width();$("#cboxContent > button").each(function(){$(this).attr('aria-label',this.id.replace('cbox',''));});$("#colorbox").swipe({swipeLeft:function(event,direction,distance,duration,fingerCount){$.colorbox.next();},swipeRight:function(event,direction,distance,duration,fingerCount){$.colorbox.prev();},fallbackToMouseEvents:false});});},getOptions:function(){if(typeof rl_modals_options!=='undefined'){return rl_modals_options;} if(typeof Joomla==='undefined'||typeof Joomla.getOptions==='undefined'){console.error('Joomla.getOptions not found!\nThe Joomla core.js file is not being loaded.');return false;} return Joomla.getOptions('rl_modals');},initModal:function(el){var $el=$(el);if($el.attr('data-modal-done')){return;} var options=this.getOptions();var defaults=$.extend({},options.defaults);$.each(el.attributes,function(index,attr){if(attr.name.indexOf("data-modal-")===0){var key=$.camelCase(attr.name.substring(11));defaults[key]=attr.value;}});$el.attr('data-modal-done','1');if(defaults['innerWidth']!=undefined){delete defaults['width'];} if(defaults['innerHeight']!=undefined){delete defaults['height'];}for(var key in defaults){if(defaults[key]=='true'){defaults[key]=true;}else if(defaults[key]=='false'){defaults[key]=false;}else if(!isNaN(defaults[key])){defaults[key]=parseFloat(defaults[key]);}}defaults['onComplete']=function(){RegularLabsModals.active_modal=$el;$('.modal_active').removeClass('modal_active');$el.addClass('modal_active');$('.cboxIframe').attr({webkitAllowFullScreen:true,mozallowfullscreen:true,allowFullScreen:true});RegularLabsModals.resize();RegularLabsModals.checkScrollBar();$('#colorbox').addClass('complete');};defaults['onClosed']=function(){$('#colorbox').removeClass('complete');$('.modal_active').removeClass('modal_active');};$el.data('modals_settings',defaults);if(!isNaN(defaults.maxWidth)&&defaults.maxWidth>($(window).width()*.95)){defaults.maxWidth='95%';} $el.colorbox(defaults);},resizeOnBrowserResize:function(){if(RegularLabsModals.resize_timer){clearTimeout(RegularLabsModals.resize_timer);} RegularLabsModals.resize_timer=setTimeout(function(){var $modal_wrapper=$("#cboxWrapper");if(!$modal_wrapper.is(':visible')){return;} RegularLabsModals.resize();RegularLabsModals.checkScrollBar();},100);},checkScrollBar:function(){var $colorbox=$('#colorbox');var $content=$('#cboxLoadedContent');$colorbox.removeClass('has_scrollbar');if($content.prop('scrollHeight')>$content.innerHeight()){$colorbox.addClass('has_scrollbar');}},resize:function(){var self=this;var options=this.getOptions();if(!options.auto_correct_size){return;} setTimeout(function(){self.resizeContent();self.resizeTitle();},options.auto_correct_size_delay);},resizeContent:function(){var $modal=RegularLabsModals.active_modal;if(!$modal){return;} if($modal.attr('data-modal-video')||$modal.attr('data-modal-image')){return;} var modals_settings=$modal.data('modals_settings');var $content=$('#cboxLoadedContent');var $container=$('#cboxContent');var original_container_width=this.getWidth($container);var original_width=this.getWidth($content);var original_height=this.getHeight($content);var container_extra_width=original_container_width-original_width;var max_width=this.getMaxWidth();var min_width=this.getMinWidth();var max_height=this.getMaxHeight();var min_height=this.getMinHeight();var new_width=typeof modals_settings.width!=='undefined'?this.convertWidth(modals_settings.width):original_width;var new_height=typeof modals_settings.height!=='undefined'?this.convertHeight(modals_settings.height):original_height;new_width=this.limitValue(new_width,min_width,max_width);new_height=this.limitValue(new_height,min_height,max_height);var new_container_width=new_width+container_extra_width;if(modals_settings.iframe){$container.width(new_container_width);this.resizeModal(new_width,new_height);return;} new_container_width=new_width+container_extra_width;var $content_copy=$content.clone();$content.after($content_copy);$content.hide();$container.width(new_container_width);$content_copy.css({'width':'auto','height':'auto','display':modals_settings.iframe?'block':'inline-block'});var resized_width=this.getWidth($content_copy);var resized_height=this.getHeight($content_copy);$container.width(original_container_width);$content.show();$content_copy.remove();new_width=this.limitValue(resized_width,min_width,max_width);new_height=this.limitValue(resized_height,min_height,max_height);new_container_width=new_width+container_extra_width;$container.width(new_container_width);this.resizeModal(new_width,new_height);},resizeTitle:function(){var $title=$('#cboxTitle');if(!this.getHeight($title)){return;} var $content=$('#cboxLoadedContent');var original_height=this.getHeight($content);var title_attr=this.getTitleHeightAndPos();var title_height=title_attr.height;var title_position=title_attr.position;var margin=parseInt($content.css('margin-'+title_position));var diff_height=title_height-margin;if(diff_height<1){return;} var new_height=original_height+diff_height;var max_height=RegularLabsModals.getMaxHeight();new_height=Math.min(new_height,max_height);var new_content_height=new_height-diff_height;$content.css('margin-'+title_position,title_height);this.resizeModal(0,new_height);$content.height(new_content_height);},getTitleHeightAndPos:function(){var $title=$('#cboxTitle');var height_inner=this.getHeight($title);if(!height_inner){return{'height':0,'position':'top'};} var height_outer=$title.outerHeight()+1;var top=parseInt($title.css('top'));var bottom=parseInt($title.css('bottom'));var position=top?'bottom':'top';$title.height(height_inner*2);if(top===parseInt($title.css('top'))){position='top';height_outer+=top;}else if(bottom===parseInt($title.css('bottom'))){position='bottom';height_outer+=bottom;} $title.height('auto');return{'height':height_outer,'position':position};},resizeModal:function(width,height){var $modal=RegularLabsModals.active_modal;var modals_settings=$modal.data('modals_settings');if(width){modals_settings.innerWidth=width;} if(height){modals_settings.innerHeight=height;} $modal.colorbox.resize(modals_settings);},reload:function(){var $colorbox=$('#colorbox');var $content=$('#cboxLoadedContent');var $modal=RegularLabsModals.active_modal;var modals_settings=$modal.data('modals_settings');var original_fadeOut=$modal.colorbox.settings.fadeOut;var original_initialWidth=$modal.colorbox.settings.initialWidth;var original_initialHeight=$modal.colorbox.settings.initialHeight;var original_scrollHeight=$content.scrollTop();$modal.colorbox(modals_settings);$modal.colorbox.settings.fadeOut=0;$modal.colorbox.settings.initialWidth=this.getWidth($colorbox);$modal.colorbox.settings.initialHeight=this.getHeight($colorbox);$modal.click();$modal.colorbox.settings.fadeOut=original_fadeOut;$modal.colorbox.settings.initialWidth=original_initialWidth;$modal.colorbox.settings.initialHeight=original_initialHeight;$content.scrollTop(original_scrollHeight);},limitValue:function(value,min,max){min=min?min:0;max=max?max:100000;value=Math.max(value,min);value=Math.min(value,max);return value;},getWidth:function($el){return Math.ceil($el[0].getBoundingClientRect().width) -parseInt($el.css('padding-left'))-parseInt($el.css('padding-right'));},getHeight:function($el){return Math.ceil($el[0].getBoundingClientRect().height) -parseInt($el.css('padding-top'))-parseInt($el.css('padding-bottom'));},getMaxWidth:function(){var $modal=RegularLabsModals.active_modal;var modals_settings=$modal.data('modals_settings');if($modal.attr('data-modal-inner-width')){return this.convertWidth($modal.attr('data-modal-inner-width'),true);} return this.convertWidth(modals_settings.maxWidth);},getMaxHeight:function(){var $modal=RegularLabsModals.active_modal;var modals_settings=$modal.data('modals_settings');if($modal.attr('data-modal-inner-height')){return this.convertHeight($modal.attr('data-modal-inner-height'),true);} return this.convertHeight(modals_settings.maxHeight);},getMinWidth:function(){var $modal=RegularLabsModals.active_modal;var modals_settings=$modal.data('modals_settings');if($modal.attr('data-modal-inner-width')){return this.convertWidth($modal.attr('data-modal-inner-width'),true);} return typeof modals_settings.minWidth!=='undefined'?this.convertWidth(modals_settings.minWidth):0;},getMinHeight:function(){var $modal=RegularLabsModals.active_modal;var modals_settings=$modal.data('modals_settings');if($modal.attr('data-modal-inner-height')){return this.convertHeight($modal.attr('data-modal-inner-height'),true);} return typeof modals_settings.minHeight!=='undefined'?this.convertHeight(modals_settings.minHeight):0;},convertWidth:function(width,inner){var inner=inner?true:false;if(!width){return this.getWidthByPercentage(95);} if(isNaN(width)&&width.indexOf('%')>-1){return this.getWidthByPercentage(width);} width=parseInt(width);var inner_width=inner?width:this.getInnerWidth(width);var outer_width=inner?this.getOuterWidth(width):width;if(outer_width>($(window).width()*.95)){return this.getWidthByPercentage(95);} return inner_width;},convertHeight:function(height,inner){var inner=inner?true:false;if(!height){return this.getHeigthByPercentage(95);} if(isNaN(height)&&height.indexOf('%')>-1){return this.getHeigthByPercentage(height);} height=parseInt(height);var inner_height=inner?height:this.getInnerHeight(height);var outer_height=inner?this.getOuterHeight(height):height;if(outer_height>($(window).height()*.95)){return this.getHeigthByPercentage(95);} return inner_height;},getWidthByPercentage:function(percentage){var width=parseInt(percentage)*$(window).width()/100;return this.getInnerWidth(width);},getHeigthByPercentage:function(percentage){var height=parseInt(percentage)*$(window).height()/100;return this.getInnerHeight(height);},getInnerWidth:function(width){return parseInt(width-this.getOuterWidthPadding());},getOuterWidth:function(width){return parseInt(width+this.getOuterWidthPadding());},getInnerHeight:function(height){return parseInt(height-this.getOuterHeightPadding());},getOuterHeight:function(height){return parseInt(height+this.getOuterHeightPadding());},getOuterWidthPadding:function(){return parseInt($('#cboxMiddleLeft').outerWidth()+$('#cboxMiddleRight').outerWidth()+parseInt($('#cboxLoadedContent').css('margin-left'))+parseInt($('#cboxLoadedContent').css('margin-right'))+parseInt($('#cboxLoadedContent').css('padding-left'))+parseInt($('#cboxLoadedContent').css('padding-right')));},getOuterHeightPadding:function(){return parseInt($('#cboxTopCenter').outerHeight()+$('#cboxBottomCenter').outerHeight()+parseInt($('#cboxLoadedContent').css('margin-top'))+parseInt($('#cboxLoadedContent').css('margin-bottom'))+parseInt($('#cboxLoadedContent').css('padding-top'))+parseInt($('#cboxLoadedContent').css('padding-bottom')));}};$(document).ready(function(){RegularLabsModals.init();RLModals=RegularLabsModals;});})(jQuery);