Current File : /home/pacjaorg/public_html/km/modules/mod_djclassifieds_items/assets/js/djslider.js |
/**
* @package DJ-Classifieds
* @copyright Copyright (C) DJ-Extensions.com, All rights reserved.
* @license http://www.gnu.org/licenses GNU/GPL
* @author url: http://dj-extensions.com
* @author email: contact@dj-extensions.com
*/
function djslider(mod_id, cols, items_count, dir, autoslide)
{
var asllider_c = 0;
var asllider_cols = cols;
var asllider_all = items_count;
var asllider_l = asllider_all-cols;
if(asllider_l < 0){
asllider_l = 0;
}
var main_wrapper = jQuery('#mod_djclassifieds_items'+mod_id);
var items_outer = main_wrapper.find('.items');
var slider_box = main_wrapper.find('.items-content');
var items_list = slider_box.find('.item-box');
slider_box.css('width','').css('margin','0');
items_list.each(function(){
jQuery(this).css('width','').css('position','static');
});
if(!items_list.length){
main_wrapper.find('.djcf_slider_loader').hide();
return true;
}
var slide_width = items_list.first().outerWidth();
if(slide_width < 80 && cols > 1){
var new_cols = cols-1;
items_outer.first().removeClass('items-cols'+cols);
items_outer.first().addClass('items-cols'+new_cols);
djslider(mod_id, new_cols, items_count, dir, autoslide);
return true;
}else{
var old_cols = cols-1;
items_outer.first().removeClass('items-cols'+old_cols);
items_outer.addClass('items-cols'+cols);
}
slider_box.css('width',slide_width*asllider_all);
items_list.each(function(){
jQuery(this).css('width',slide_width);
});
var slide_height = slider_box.outerHeight();
items_list.each(function(){
jQuery(this).css('height',slide_height);
});
slider_box.css('height','auto');
slider_box.stop().animate({
opacity: 1
});
main_wrapper.find('.djcf_slider_loader').hide();
var arrow_left = main_wrapper.find('.djcf_slider_left');
var arrow_right = main_wrapper.find('.djcf_slider_right');
arrow_left.addClass('blocked').show();
arrow_right.removeClass('blocked').show();
if(asllider_all > asllider_cols){
arrow_left.off('click').on('click',function(){
if(asllider_c > 0){
asllider_c--;
if(dir == 'ltr'){
slider_box.stop().animate({'margin-left': asllider_c*-slide_width});
}else{
slider_box.stop().animate({'margin-right': asllider_c*-slide_width});
}
if(asllider_c == 0){
arrow_left.addClass('blocked');
arrow_right.removeClass('blocked');
}else{
arrow_left.removeClass('blocked');
arrow_right.removeClass('blocked');
}
}
});
arrow_right.off('click').on('click',function(){
if(asllider_c < asllider_l){
asllider_c++;
if(dir == 'ltr'){
slider_box.stop().animate({'margin-left': asllider_c*-slide_width});
}else{
slider_box.stop().animate({'margin-right': asllider_c*-slide_width});
}
if(asllider_c == asllider_l){
arrow_right.addClass('blocked');
arrow_left.removeClass('blocked');
}else{
arrow_left.removeClass('blocked');
arrow_right.removeClass('blocked');
}
}
});
if(autoslide > 0){
var prev_time = null;
function nextSlide()
{
if(prev_time && (Date.now() - prev_time) > autoslide + 100){ // re-init slider to avoid fast scrolling after idle time
djslider(mod_id, cols, items_count, dir, autoslide);
return;
}
if(!jQuery('#mod_djclassifieds_items'+mod_id+':hover').length){ // if mouse not over the slider
if(arrow_right.hasClass('blocked')){
asllider_c = 0;
slider_box.stop().animate({
margin: 0
});
arrow_right.removeClass('blocked');
arrow_left.addClass('blocked');
}else{
arrow_right.trigger('click');
}
}
prev_time = Date.now();
window['djSliderTimout'+mod_id] = setTimeout(function(){
nextSlide();
}, autoslide);
}
window['djSliderTimout'+mod_id] = setTimeout(function(){
nextSlide();
}, autoslide);
}
}else{
arrow_left.addClass('blocked');
arrow_right.addClass('blocked');
}
}