Вход Регистрация
Файл: public/js/ips.gallery_slider.js
Строк: 112
<?php
/************************************************/
/* IPB3 Javascript                                */
/* -------------------------------------------- */
/* ips.gallery_slider.js - Gallery image slider    */
/* (c) IPS, Inc 2009                            */
/* -------------------------------------------- */
/* Author: Brandon Farber                        */
/************************************************/

var ipb_gallery = { };

ipb_gallery.carousel = Class.create({
    
    
hLeft            false,
    
hRight            false,
    
wrapper            null,
    
items            null,
    
active            null,
    
autoProgress    null,
    
    
initialize: function( wrapperoptions )
    {
        
this.wrapper = $(wrapper);
        
this.options Object.extend({
            
handle'feature',
            
duration5
        
}, options || {});

        if( $( 
this.options.handle '_left' ) ){
            
this.hLeft    = $( this.options.handle '_left' );
        }

        if( $( 
this.options.handle '_right' ) ){
            
this.hRight    = $( this.options.handle '_right' );
        }

        
this.items    this.wrapper.select(".carousel_img");

        
this.items.each( function(elemindex){
            if( 
index )
            {
                $(
elem).hide();
            }
        });

        
this.active    this.items.detect(function(n){ return $(n).visible(); });
        
        $(
this.wrapper).on'mouseenter'this.mouseEnter.bindAsEventListener(this) );
        $(
this.wrapper).on'mouseleave'this.mouseLeave.bindAsEventListener(this) );
        $(
this.wrapper).on'click''a.carousel_nav'this.mouseClick.bind(this) );
        
        if( 
this.hLeft && this.hRight )
        {
            
this.hLeft.show().setStyle('opacity: 0.12');
            
this.hRight.show().setStyle('opacity: 0.12');
        }
        
        
this.startAutoProgress();
    },
    
    
mouseEnter: function(e)
    {
        if( 
this.hLeft && this.hRight )
        {
            new 
Effect.Morphthis.hLeft, { 'style':'opacity: 1;'duration0.3 } );
            new 
Effect.Morphthis.hRight, { 'style':'opacity: 1;'duration0.3 } );
        }
        
        
clearTimeoutthis.autoProgress );
    },
    
    
mouseLeave: function(e)
    {
        if( 
this.hLeft && this.hRight )
        {
            new 
Effect.Morphthis.hLeft, { 'style':'opacity: 0.12;'duration0.3 } );
            new 
Effect.Morphthis.hRight, { 'style':'opacity: 0.12;'duration0.3 } );
        }
        
        
this.startAutoProgress();
    },
    
    
mouseClick: function(eelement)
    {
        
Event.stop(e);

        if( $(
element).hasClassName('carousel_right') )
        {
            
this.updatePanethis.getNextthis.active ) );
        }
        else if( $(
element).hasClassName('carousel_left') )
        {
            
this.updatePanethis.getPrevthis.active ) );
        }
    },
    
    
startAutoProgress: function()
    {
        
this.autoProgress setTimeout( function(){ 
            
this.updatePanethis.getNextthis.active ) );
            
this.startAutoProgress();
        }.
bind(this), this.options.duration 1000 );        
    },
    
    
updatePane: function( newPane )
    {
        new 
Effect.Fade( $( this.active ), { duration0.5 } );
        new 
Effect.Appear( $( newPane ), { duration0.5 } );
        
        
this.active newPane;
    },
    
    
getNext: function( cur )
    {
        
// If no ID or currentImage is specified, return first image
        
if( Object.isUndefinedcur ) ){
            return 
this.items.first();
        }
        
        var 
pos this.items.indexOfcur );
        
        
// Last item?
        
if( pos == ( this.items.length ) )
        {
            return 
this.items.first();
        }
        else
        {
            return 
this.itemspos ];
        }
    },
    
    
getPrev: function( cur )
    {
        
// If no ID or currentImage is specified, return first image
        
if( Object.isUndefinedcur ) ){
            return 
this.items.first();
        }

        var 
pos this.items.indexOfcur );

        
// Last item?
        
if( pos === )
        {
            return 
this.items.last();
        }
        else
        {
            return 
this.itemspos ];
        }
    }
});
?>
Онлайн: 0
Реклама