/*  
 * Обработчики: 
 *  #hn03 - слайдер ( использует #fn03 )
 *  
 * Функции
 *  #fn01 - закрыть пункт левого меню
 *  #fn02 - изменение состояний стрелок слайдера
 *  #fn03 - инициализация слайдера
 *  #fn04 - инициализация js контента для ajax слоя 
 *  #fn05 - показать popup форму
 *  #fn06 - скрыть popup форму
 *  
 */


// скорость плавных эффектов
var effect_speed = 'normal'; 
var effect_speed_slow = 'slow';
var effect_speed_fast = 'fast';
var disable_animation = $.browser.msie && $.browser.version>=6 && $.browser.version<7; 
var ie6 = $.browser.msie && (parseInt($.browser.version) <= 6);
var block_animation = false;

$(function(){
    // #hn03 - слайдер
    $('.b-slider').slider_init();
})


// #fn02 - изменение состояний стрелок слайдера
$.fn.slider_check_arrows = function(position,element_cnt,on_screen){

    if ( disable_animation ) return this; 
    
    return this.each(function(){
        
        var container = $(this);
        
        // проверка стрелки вправо
        $('.right-btn', container)
            .each(function(){
                if ( position >= element_cnt - on_screen )
                    $(this)
                        .addClass('right-btn__disabled')
                        .removeClass('right-btn__on');
                else
                    $(this).removeClass('right-btn__disabled') 
            })
        
        // проверка стрелки влево
        $('.left-btn', container)
            .each(function(){
                if ( position <= 0 )
                    $(this)
                        .addClass('left-btn__disabled')
                        .removeClass('left-btn__on');
                else
                    $(this).removeClass('left-btn__disabled')
            })

    })

} // fn slider_check_arrows


// #fn03 - инициализация слайдера
$.fn.slider_init = function(){

    return this.each(function(){
    
        var element_label = '.text';

        var container = $(this); 
        var slider = $('.text-box', container);
        var screen = $('.slider', container);
        var elements = $(element_label,slider);
        var element_cnt = elements.size(); 
        
        if ( elements ){

            var local_effect_speed = container.hasClass('js_slow') ? effect_speed_slow : effect_speed;
    
            var element = elements.filter(':first');
            var element_width = 
                    element.width() + 
                    parseInt(element.css('padding-left')) + 
                    parseInt(element.css('margin-left'))*2 + 
                    parseInt(element.css('padding-right'))+
                    parseInt(element.css('margin-right'))*2;
            var screen_width = parseInt( screen.width() );
            var on_screen = Math.round(screen_width/element_width);
            
            var position = 0;
            container.slider_check_arrows(position,element_cnt,on_screen);

            if ( element_cnt > on_screen ) {
            
                if ( slider.width() < (element_width+1)*element_cnt ) slider.width( (element_width+1)*element_cnt );
                
                var is_sliding = false;
                
                // стрелка вправо
                $('.right-btn', container)
                    .hover(function(){
                        if ( !disable_animation && !$(this).hasClass('right-btn__disabled') )
                            $(this).addClass('right-btn__on');
                    },function(){
                        if ( !disable_animation )
                            $(this).removeClass('right-btn__on');
                    })
                    .click(function(){
                        if ( is_sliding ) return false;
                        is_sliding = true;
                        var new_position = position + on_screen;
                        if ( new_position > element_cnt - on_screen ) new_position = element_cnt - on_screen;
                        
                        slider.animate(
                            {marginLeft: -(new_position*element_width)+'px'},
                            local_effect_speed,
                            function(){ 
                                position = new_position; 
                                container.slider_check_arrows(position,element_cnt,on_screen);
                                is_sliding = false; 
                            })
                    })
                
                // стрелка влево
                $('.left-btn', container)
                    .hover(function(){
                        if ( !disable_animation && !$(this).hasClass('left-btn__disabled') )
                            $(this).addClass('left-btn__on');
                    },function(){
                        if ( !disable_animation )
                            $(this).removeClass('left-btn__on');
                    })
                    .click(function(){
                        if ( is_sliding && !$(this).hasClass('left-btn__disabled') ) return false;
                        is_sliding = true;
                        var new_position = position - on_screen;
                        if ( new_position < 0 ) new_position = 0;
                        
                        slider.animate(
                            {marginLeft: -(new_position*element_width)+'px'},
                            local_effect_speed,
                            function(){ 
                                position = new_position; 
                                container.slider_check_arrows(position,element_cnt,on_screen);
                                is_sliding = false; 
                            })
                    })
            }
            
        } else {
            container.hide();
        }
             

    })

} // fn slider_init




