(function($){
"use strict";
$.fn.avia_hor_gallery=function(options){
var defaults =
{
slide_container:'.av-horizontal-gallery-inner',
slide_element:'.av-horizontal-gallery-slider',
slide_content:'.av-horizontal-gallery-wrap',
slide_arrows:'.avia-slideshow-arrows',
slide_dots:'.avia-slideshow-dots',
active:'av-active-gal-item',
slide_controls:'.avia-slideshow-controls',
prev:'.av-horizontal-gallery-prev',
next:'.av-horizontal-gallery-next'
};
var options=$.extend(defaults, options);
var win=$(window),
browserPrefix=$.avia_utilities.supports('transition'),
cssActive=this.browserPrefix!==false ? true:false,
isMobile=$.avia_utilities.isMobile,
isTouchDevice=$.avia_utilities.isTouchDevice,
transform3d=document.documentElement.className.indexOf('avia_transform3d')!==-1 ? true:false,
transition={};
return this.each(function(){
var container=$(this),
slide_container=container.find(options.slide_container),
slide_element=container.find(options.slide_element),
slide_content=container.find(options.slide_content),
slide_controls=container.find(options.slide_controls),
slide_arrows=container.find(options.slide_arrows),
slide_dots_wrap=container.find(options.slide_dots),
slide_dots=slide_dots_wrap.find('a'),
prev=container.find(options.prev),
next=container.find(options.next),
imgs=container.find('img'),
all_elements_width=0,
currentIndex=false,
slideshowOptions={
animation: 'av-tab-slide-transition',
autoplay: false,
loop_autoplay: 'once',			//	'endless' | 'once'
interval: 5,
loop_manual: 'manual-endless',	//	'manual-endless' | 'manual-once'
autoplay_stopper: false,
noNavigation: false,
initial: null,
enlarge: 1
},
slideshowData=container.data('slideshow-data'),
timeoutIDAutoplay=null;
if('undefined'!=typeof slideshowData){
slideshowOptions=$.extend({}, slideshowOptions, slideshowData);
}
var	set_up=function(){
var sl_height=(slide_container.width() / 100) * slide_container.data('av-height');
slide_container.css({'padding':0}).height(sl_height);
imgs.css('display','inline-block');
setTimeout(function(){ imgs.css('display', 'block'); }, 10);
all_elements_width=0;
slide_content.each(function(){
all_elements_width +=$(this).outerWidth(true);
});
slide_element.css('min-width' , all_elements_width);
if(currentIndex!==false){
change_active(currentIndex);
}},
change_active=function(index){
var current=slide_element.find(options.slide_content).eq(index),
viewport=slide_container.width(),
modifier=slideshowOptions.enlarge > 1&&currentIndex==index ? slideshowOptions.enlarge:1,
outerWidth=current.outerWidth(true) * modifier,
margin_right=parseInt(current.css('margin-right'), 10) / 2,
left_pos=viewport < all_elements_width ?(current.position().left * - 1) -(outerWidth / 2) +(viewport / 2): 0;
left_pos=left_pos + margin_right;
if(left_pos + all_elements_width < viewport){
left_pos=(all_elements_width - viewport - parseInt(current.css('margin-right'), 10) ) * -1;
}
if(left_pos > 0){
left_pos=0;
}
if(cssActive){
transition['transform']=transform3d ? "translate3d(" + left_pos  + "px, 0, 0)":"translate(" + left_pos + "px, 0)";
transition['left']="0px";
slide_element.css(transition);
}else{
slide_element.css('left', left_pos);
}
slide_container.find('.' + options.active).removeClass(options.active);
current.addClass(options.active);
currentIndex=index;
set_slide_arrows_visibility();
set_slide_dots_visibility();
},
clearTimeoutAutoplay=function(){
if(typeof timeoutIDAutoplay==='number'){
clearTimeout(timeoutIDAutoplay);
}
timeoutIDAutoplay=null;
},
init_autoplay=function(){
if(true!==slideshowOptions.autoplay){
container.removeClass('av-slideshow-autoplay').addClass('av-slideshow-manual');
}
if('undefined'==typeof slideshowOptions.loop_autoplay||'endless'!=slideshowOptions.loop_autoplay){
slideshowOptions.loop_autoplay='once';
}
if('undefined'==typeof slideshowOptions.interval){
slideshowOptions.interval=5;
}
if('undefined'==typeof slideshowOptions.autoplay||true!==slideshowOptions.autoplay){
slideshowOptions.autoplay=false;
container.removeClass('av-slideshow-autoplay').addClass('av-slideshow-manual');
return;
}
clearTimeoutAutoplay();
timeoutIDAutoplay=setTimeout(function(){
rotate_next_image();
}, slideshowOptions.interval * 1000);
},
rotate_next_image=function(){
timeoutIDAutoplay=null;
if('endless'!=slideshowOptions.loop_autoplay){
var stop=false;
if(currentIndex===false){
if(slide_content.length==0){
stop=true;
}}else{
stop=currentIndex + 1 >=slide_content.length;
}
if(stop){
slideshowOptions.autoplay=false;
slideshowOptions.loop_autoplay='manual';
container.removeClass('av-slideshow-autoplay').addClass('av-slideshow-manual');
container.removeClass('av-loop-endless').addClass('av-loop-once');
return;
}}
next.trigger('click');
},
set_slide_arrows_visibility=function(){
if('endless'==slideshowOptions.loop_autoplay||'manual-endless'==slideshowOptions.loop_manual||false===currentIndex){
slide_arrows.addClass('av-visible-prev');
slide_arrows.addClass('av-visible-next');
}
else if(0==currentIndex){
slide_arrows.removeClass('av-visible-prev');
slide_arrows.addClass('av-visible-next');
}
else if(currentIndex + 1 >=slide_content.length){
slide_arrows.addClass('av-visible-prev');
slide_arrows.removeClass('av-visible-next');
}else{
slide_arrows.addClass('av-visible-prev');
slide_arrows.addClass('av-visible-next');
}},
set_slide_dots_visibility=function(){
slide_dots_wrap.find('a').removeClass('active');
var tmpIndex=false!==currentIndex ? currentIndex:0;
slide_dots_wrap.find('a').eq(tmpIndex).addClass('active');
};
slide_content.on('click', function(e){
var current=$(this);
var index=slide_content.index(current);
if(currentIndex===index){
return;
}
clearTimeoutAutoplay();
change_active(index);
init_autoplay();
});
prev.on('click', function(e){
var nextID=currentIndex!==false ? currentIndex - 1:0;
if(nextID < 0){
if('endless'!=slideshowOptions.loop_autoplay&&'manual-endless'!=slideshowOptions.loop_manual){
return;
}
nextID=slide_content.length - 1;
}
clearTimeoutAutoplay();
change_active(nextID);
init_autoplay();
});
next.on('click', function(e){
var nextID=currentIndex!==false ? currentIndex + 1:0;
if(nextID >=slide_content.length){
if('endless'!=slideshowOptions.loop_autoplay&&'manual-endless'!=slideshowOptions.loop_manual){
return;
}
nextID=0;
}
clearTimeoutAutoplay();
change_active(nextID);
init_autoplay();
});
slide_dots.on('click', function(e){
var current=$(this);
var index=slide_dots.index(current);
clearTimeoutAutoplay();
change_active(index);
init_autoplay();
});
$.avia_utilities.preload({
container: container,
global_callback: function(){
set_up();
if(slideshowOptions.initial){
var first=parseInt(slideshowOptions.initial, 10);
if(isNaN(first)||first < 1){
first=1;
}
else if(first > slide_content.length){
first=slide_content.length;
}
change_active(first - 1);
}
set_slide_arrows_visibility();
set_slide_dots_visibility();
init_autoplay();
setTimeout(function(){
container.addClass('av-horizontal-gallery-animated');
}, 10);
win.on('debouncedresize', set_up);
}});
if(! container.hasClass('av-control-hidden') ){
if(! isMobile){
container.avia_keyboard_controls({ 37: options.prev, 39: options.next });
}
if(isMobile||isTouchDevice){
container.avia_swipe_trigger({ prev: options.prev, next: options.next });
}}
});
};}(jQuery));