function Slider (cnt, lCtl, rCtl){
    this.maxOffset  = 0;
    this.minOffset  = 0;
    this.step       = 0;
    this.cnt        = cnt;
    this.lCtl       = lCtl;
    this.rCtl       = rCtl;
    this.lBtn       = lCtl.find('.button');
    this.rBtn       = rCtl.find('.button');
    this.ctlDClass  = 'disabled';
    this.btnDClass  = 'button-disabled';
    this.btnDTrg    = 'mouseout';
    this.animating  = false;

    var slider      = this;

    this.slideLeft  = function (){
        var left =  slider.cnt.position().left + slider.step;
        if (!slider.animating && left <= slider.maxOffset) {
            slider.animating = true;
            left += 'px';
            slider.rCtl.removeClass(slider.ctlDClass);
            slider.rBtn.removeClass(slider.btnDClass);
            slider.cnt.animate({'left': left},1000, function (){
                var left =  slider.cnt.position().left + slider.step;
                if (left > slider.maxOffset ){
                    slider.lCtl.addClass(slider.ctlDClass);
                    slider.lBtn.addClass(slider.btnDClass);
                    slider.lBtn.trigger(slider.btnDTrg);
                }
                slider.animating = false;
            });
        }
    };
   
    slider.slideRight = function (){
        var left =  slider.cnt.position().left - slider.step;
        if (!slider.animating && left >= slider.minOffset) {
            slider.animating = true;
            left += 'px';
            slider.lCtl.removeClass(slider.ctlDClass);
            slider.lBtn.removeClass(slider.btnDClass);
            slider.cnt.animate({'left': left},1000, function (){
                var left =  slider.cnt.position().left - slider.step;
                if (left < slider.minOffset ){
                    slider.rCtl.addClass(slider.ctlDClass);
                    slider.rBtn.addClass(slider.btnDClass);
                    slider.rBtn.trigger(slider.btnDTrg);
                }
                slider.animating = false;
            });
        }
    };


    this.lBtn.click(this.slideLeft);
    this.rBtn.click(this.slideRight);
}


function showGalary (cntId, pos, maxPos){
    var pos_x = parseInt(($(window).width() - 990)/ 2);
    var pos_y = parseInt(($(window).height() - 640)/ 2);
    if (pos_y < 0) {
        pos_y = 50;
    }

    var $cnt = $('#'+cntId);

    $cnt.modal({
        position: [ pos_y+'px', pos_x+'px']
    });

    var $screens = $cnt.find('.scns');
    var maxOffset = $screens.position().left;
    var minOffset = maxOffset - 825 * $screens.find('img').size() + 825;


    $screens.css('left', '0px');

    var slider = new Slider(
        $screens,
        $cnt.find('.btn-l'),
        $cnt.find('.btn-r')
    );
    slider.minOffset    = minOffset;
    slider.maxOffset    = maxOffset;
    slider.step         = 825;

    var offset = maxOffset - pos*825;
    $screens.css('left', offset + 'px');

    if ( pos > 0 ){
        slider.lCtl.removeClass('disabled');
        slider.lBtn.removeClass('button-disabled').trigger('mouseout');
    } else {
        slider.lCtl.addClass('disabled');
        slider.lBtn.addClass('button-disabled').trigger('mouseup');
    }

    if ( pos < maxPos ){
        slider.rCtl.removeClass('disabled');
        slider.rBtn.removeClass('button-disabled').trigger('mouseout');
    } else {
        slider.rCtl.addClass('disabled');
        slider.rBtn.addClass('button-disabled').trigger('mouseout');
    }
}
