/**
 * @author gharbusch
 */
jQuery(document).ready(function($){
	
	if ( $('div#PE_galleriffic').length > 0)
	{
		
    // We only want these styles applied when javascript is enabled
    $('div.content').css('display', 'block');
    
    // Initially set opacity on thumbs and add
    // additional styling for hover effect on thumbs
    var onMouseOutOpacity = 0.67;
    $('#thumbs ul.thumbs li, div.navigation a.pageLink').opacityrollover({
        mouseOutOpacity: onMouseOutOpacity,
        mouseOverOpacity: 1.0,
        fadeSpeed: 'fast',
        exemptionSelector: '.selected'
    });
    
    // Initialize Advanced Galleriffic Gallery
    var gallery = $('#thumbs').galleriffic({
        delay: 2500,
        numThumbs: 8,
        preloadAhead: 10,
        enableTopPager: false,
        enableBottomPager: false,
        imageContainerSel: '#slideshow',
        controlsContainerSel: '#controls',
        captionContainerSel: '#caption',
        loadingContainerSel: '#loading',
        renderSSControls: true,
        renderNavControls: true,
        playLinkText: js_localization['gal_slideshow_start'],
        pauseLinkText: js_localization['gal_slideshow_stop'],
        prevLinkText: '&laquo; ' + js_localization['gal_prev_image'],
        nextLinkText: js_localization['gal_next_image'] + ' &raquo;',
        nextPageLinkText: js_localization['gal_next_page'],
        prevPageLinkText: js_localization['gal_prev_page'],
        enableHistory: true,
        autoStart: false,
        syncTransitions: true,
        defaultTransitionDuration: 900,
        onSlideChange: function(prevIndex, nextIndex){
            // 'this' refers to the gallery, which is an extension of $('#thumbs')
            this.find('ul.thumbs').children().eq(prevIndex).fadeTo('fast', onMouseOutOpacity).end().eq(nextIndex).fadeTo('fast', 1.0);
            
            // Update the photo index display
            this.$captionContainer.find('div.photo-index').html(js_localization['gal_image'] + ' ' + (nextIndex + 1) + ' ' + js_localization['gal_of'] + ' ' + this.data.length);
        },
        onPageTransitionOut: function(callback){
            this.fadeTo('fast', 0.0, callback);
        },
        onPageTransitionIn: function(){
            var prevPageLink = this.find('a.prev').css('visibility', 'hidden');
            var nextPageLink = this.find('a.next').css('visibility', 'hidden');
            
            // Show appropriate next / prev page links
            if (this.displayedPage > 0) 
                prevPageLink.css('visibility', 'visible');
            
            var lastPage = this.getNumPages() - 1;
            if (this.displayedPage < lastPage) 
                nextPageLink.css('visibility', 'visible');
            
            this.fadeTo('fast', 1.0);
        }
    });
    
    /**************** Event handlers for custom next / prev page links **********************/
    
    gallery.find('a.prev').click(function(e){
        gallery.previousPage();
        e.preventDefault();
    });
    
    gallery.find('a.next').click(function(e){
        gallery.nextPage();
        e.preventDefault();
    });
    
    /****************************************************************************************/
	}
    
});
