var severstal_carousel = { vars : { block_width : 0, block_margin : 0, blocks_in_line : 3, blocks_margin_fix : 0 }, items : { resize : function() { $cells_count = $("[id*='documents_cell_']").length; $cell_width = ($('.klientam_block').width() - 25*2) / 3; $carousel = $("[id*='carousel_severstal_']"); $carousel.each(function() { $carousel = $(this); $carousel_items = $carousel.find("[id*='item_']"); $carousel_items.css('width',$cell_width); $carousel.css('width', ($cell_width * 3) + (severstal_carousel.vars.block_margin * 2)); $carousel.parent().css('width', $carousel.css('width')); $carousel.attr('total_items', $carousel_items.length); $carousel.children('div').css('width', ($carousel.attr('total_items') * ($cell_width + severstal_carousel.vars.block_margin))); }); severstal_carousel.vars.block_width = $cell_width; }, innerinit : function() { $carousel = $("[id*='carousel_severstal_']"); $carousel_width = new String($carousel.width()); $carousel_width = $carousel_width.replace('px',''); if($carousel_width < 890) { severstal_carousel.vars.blocks_in_line = 4; severstal_carousel.vars.blocks_margin_fix = 1.5; } else { severstal_carousel.vars.blocks_in_line = 5; severstal_carousel.vars.blocks_margin_fix = -0.5; } $cell_width = (new Number($carousel_width) - (25 - severstal_carousel.vars.blocks_margin_fix) * (severstal_carousel.vars.blocks_in_line + 1)) / severstal_carousel.vars.blocks_in_line; $carousel.each(function() { $carousel = $(this); $carousel_items = $carousel.find("[id*='item_']"); $carousel_items.each(function() { $(this).css('width',$cell_width); }); $carousel.attr('total_items', $carousel_items.length); $carousel.children('div').css('width', ($carousel.attr('total_items') * ($cell_width + severstal_carousel.vars.block_margin))); }); severstal_carousel.vars.block_width = $cell_width; } }, scroll : { shift : function($carousel, direction) { if($carousel.attr('carousel_locked') != 'locked') { $carousel.attr('carousel_locked','locked'); $scroll_div = $carousel.children('div'); if(direction > 0) { $scroll_left = (new Number($scroll_div.css('left').replace('px','').replace('auto',0)) - (severstal_carousel.vars.block_width + severstal_carousel.vars.block_margin)); $total_items = $carousel.attr('total_items'); $total_items_length = (-1) * (severstal_carousel.vars.block_width + severstal_carousel.vars.block_margin) * ($total_items - severstal_carousel.vars.blocks_in_line); if($scroll_left < $total_items_length) { $scroll_left = $total_items_length; } if($scroll_left > 0) { $scroll_left = 0; } $scroll_div.animate({left: $scroll_left + 'px'},200); } else if(direction < 0) { $scroll_left = (new Number($scroll_div.css('left').replace('px','').replace('auto',0)) + (severstal_carousel.vars.block_width + severstal_carousel.vars.block_margin)); if($scroll_left > 0) { $scroll_left = 0; } $scroll_div.animate({left: $scroll_left + 'px'},200); } $carousel.attr('carousel_locked','unlocked'); } } } }