(function($) {
"use strict";
/**
*
* RoyalSlider tabs module
* @version 1.0.2:
*
* 1.0.1:
* - Dynamic adding/removing tabs.
*
* 1.0.2
* - jQuery 1.9.0 compability
*/
$.extend($.rsProto, {
_initTabs: function() {
var self = this;
if(self.st.controlNavigation === 'tabs') {
self.ev.on('rsBeforeParseNode', function(e, content, obj) {
content = $(content);
obj.thumbnail = content.find('.rsTmb').remove();
if(!obj.thumbnail.length) {
obj.thumbnail = content.attr('data-rsTmb');
if(!obj.thumbnail) {
obj.thumbnail = content.find('.rsImg').attr('data-rsTmb');
}
if(!obj.thumbnail) {
obj.thumbnail = '';
} else {
obj.thumbnail = '';
}
} else {
obj.thumbnail = $(document.createElement('div')).append(obj.thumbnail).html();
}
});
self.ev.one('rsAfterPropsSetup', function() {
self._createTabs();
});
self.ev.on('rsOnAppendSlide', function(e, parsedSlide, index) {
if(index >= self.numSlides) {
self._controlNav.append('
' + parsedSlide.thumbnail + '
');
} else {
self._controlNavItems.eq(index).before('' + item.thumbnail + '
');
}
self._controlNavItems = self._controlNav.children();
});
self.ev.on('rsOnRemoveSlide', function(e, index) {
var itemToRemove = self._controlNavItems.eq(index);
if(itemToRemove) {
itemToRemove.remove();
self._controlNavItems = self._controlNav.children();
}
});
self.ev.on('rsOnUpdateNav', function() {
var id = self.currSlideId,
currItem,
prevItem;
if(self._prevNavItem) {
self._prevNavItem.removeClass('rsNavSelected');
}
currItem = self._controlNavItems.eq(id);
currItem.addClass('rsNavSelected');
self._prevNavItem = currItem;
});
}
},
_createTabs: function() {
var self = this,
out = '',
item;
self._controlNavEnabled = true;
out += '';
for(var i = 0; i < self.numSlides; i++) {
out += '
'+self.slides[i].thumbnail+'
';
}
out += '
';
out = $(out);
self._controlNav = out;
self._controlNavItems = out.children('.rsNavItem');
self.slider.append(out);
self._controlNav.click(function(e) {
var item = $(e.target).closest('.rsNavItem');
if(item.length) {
self.goTo(item.index());
}
});
}
});
$.rsModules.tabs = $.rsProto._initTabs;
})(jQuery);