svn commit: r1787742 [31/49] - in /ofbiz/branches/ofbiz-new-website: ./ bootstrap/ bootstrap/css/ bootstrap/img/ bootstrap/js/ bootstrap/js/with carousel/ css/ documentation/ documentation/assets/ documentation/assets/css/ documentation/assets/css/img/...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1787742 [31/49] - in /ofbiz/branches/ofbiz-new-website: ./ bootstrap/ bootstrap/css/ bootstrap/img/ bootstrap/js/ bootstrap/js/with carousel/ css/ documentation/ documentation/assets/ documentation/assets/css/ documentation/assets/css/img/...

Sharan Foga
Added: ofbiz/branches/ofbiz-new-website/js-plugin/camera/camera.js
URL: http://svn.apache.org/viewvc/ofbiz/branches/ofbiz-new-website/js-plugin/camera/camera.js?rev=1787742&view=auto
==============================================================================
--- ofbiz/branches/ofbiz-new-website/js-plugin/camera/camera.js (added)
+++ ofbiz/branches/ofbiz-new-website/js-plugin/camera/camera.js Mon Mar 20 12:28:40 2017
@@ -0,0 +1,2549 @@
+// Camera slideshow v1.3.3 - a jQuery slideshow with many effects, transitions, easy to customize, using canvas and mobile ready, based on jQuery 1.4+
+// Copyright (c) 2012 by Manuel Masia - www.pixedelic.com
+// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+;
+(function($){
+    $.fn.camera = function(opts, callback) {
+
+        var defaults = {
+            alignment : 'center', //topLeft, topCenter, topRight, centerLeft, center, centerRight, bottomLeft, bottomCenter, bottomRight
+
+            autoAdvance : true, //true, false
+
+            mobileAutoAdvance : true, //true, false. Auto-advancing for mobile devices
+
+            barDirection : 'leftToRight', //'leftToRight', 'rightToLeft', 'topToBottom', 'bottomToTop'
+
+            barPosition : 'bottom', //'bottom', 'left', 'top', 'right'
+
+            cols : 6,
+
+            easing : 'easeInOutExpo', //for the complete list http://jqueryui.com/demos/effect/easing.html
+
+            mobileEasing : '', //leave empty if you want to display the same easing on mobile devices and on desktop etc.
+
+            fx : 'random', //'random','simpleFade', 'curtainTopLeft', 'curtainTopRight', 'curtainBottomLeft', 'curtainBottomRight', 'curtainSliceLeft', 'curtainSliceRight', 'blindCurtainTopLeft', 'blindCurtainTopRight', 'blindCurtainBottomLeft', 'blindCurtainBottomRight', 'blindCurtainSliceBottom', 'blindCurtainSliceTop', 'stampede', 'mosaic', 'mosaicReverse', 'mosaicRandom', 'mosaicSpiral', 'mosaicSpiralReverse', 'topLeftBottomRight', 'bottomRightTopLeft', 'bottomLeftTopRight', 'bottomLeftTopRight'
+            //you can also use more than one effect, just separate them with commas: 'simpleFade, scrollRight, scrollBottom'
+
+            mobileFx : '', //leave empty if you want to display the same effect on mobile devices and on desktop etc.
+
+            gridDifference : 250, //to make the grid blocks slower than the slices, this value must be smaller than transPeriod
+
+            height : '50%', //here you can type pixels (for instance '300px'), a percentage (relative to the width of the slideshow, for instance '50%') or 'auto'
+
+            imagePath : 'images/', //he path to the image folder (it serves for the blank.gif, when you want to display videos)
+
+            hover : true, //true, false. Puase on state hover. Not available for mobile devices
+
+            loader : 'pie', //pie, bar, none (even if you choose "pie", old browsers like IE8- can't display it... they will display always a loading bar)
+
+            loaderColor : '#eeeeee',
+
+            loaderBgColor : '#222222',
+
+            loaderOpacity : .8, //0, .1, .2, .3, .4, .5, .6, .7, .8, .9, 1
+
+            loaderPadding : 2, //how many empty pixels you want to display between the loader and its background
+
+            loaderStroke : 7, //the thickness both of the pie loader and of the bar loader. Remember: for the pie, the loader thickness must be less than a half of the pie diameter
+
+            minHeight : '200px', //you can also leave it blank
+
+            navigation : true, //true or false, to display or not the navigation buttons
+
+            navigationHover : true, //if true the navigation button (prev, next and play/stop buttons) will be visible on hover state only, if false they will be visible always
+
+            mobileNavHover : true, //same as above, but only for mobile devices
+
+            opacityOnGrid : false, //true, false. Decide to apply a fade effect to blocks and slices: if your slideshow is fullscreen or simply big, I recommend to set it false to have a smoother effect
+
+            overlayer : true, //a layer on the images to prevent the users grab them simply by clicking the right button of their mouse (.camera_overlayer)
+
+            pagination : true,
+
+            playPause : true, //true or false, to display or not the play/pause buttons
+
+            pauseOnClick : true, //true, false. It stops the slideshow when you click the sliders.
+
+            pieDiameter : 38,
+
+            piePosition : 'rightTop', //'rightTop', 'leftTop', 'leftBottom', 'rightBottom'
+
+            portrait : false, //true, false. Select true if you don't want that your images are cropped
+
+            rows : 4,
+
+            slicedCols : 12, //if 0 the same value of cols
+
+            slicedRows : 8, //if 0 the same value of rows
+
+            slideOn : 'random', //next, prev, random: decide if the transition effect will be applied to the current (prev) or the next slide
+
+            thumbnails : false,
+
+            time : 7000, //milliseconds between the end of the sliding effect and the start of the nex one
+
+            transPeriod : 1500, //lenght of the sliding effect in milliseconds
+
+            ////////callbacks
+
+            onEndTransition : function() {  }, //this callback is invoked when the transition effect ends
+
+            onLoaded : function() {  }, //this callback is invoked when the image on a slide has completely loaded
+
+            onStartLoading : function() {  }, //this callback is invoked when the image on a slide start loading
+
+            onStartTransition : function() {  } //this callback is invoked when the transition effect starts
+
+        };
+
+
+        function isMobile() {
+            if( navigator.userAgent.match(/Android/i) ||
+                navigator.userAgent.match(/webOS/i) ||
+                navigator.userAgent.match(/iPad/i) ||
+                navigator.userAgent.match(/iPhone/i) ||
+                navigator.userAgent.match(/iPod/i)
+                ){
+                return true;
+            }
+        }
+
+        var opts = $.extend({}, defaults, opts);
+
+        var wrap = $(this).addClass('camera_wrap');
+
+        wrap.wrapInner(
+            '<div class="camera_src" />'
+            ).wrapInner(
+            '<div class="camera_fakehover" />'
+            );
+
+        var fakeHover = $('.camera_fakehover',wrap);
+
+        fakeHover.append(
+            '<div class="camera_target"></div>'
+            );
+        if(opts.overlayer == true){
+            fakeHover.append(
+                '<div class="camera_overlayer"></div>'
+                )
+        }
+        fakeHover.append(
+            '<div class="camera_target_content"></div>'
+            );
+
+        var loader;
+
+        if(opts.loader=='pie' && $.browser.msie && $.browser.version < 9){
+            loader = 'bar';
+        } else {
+            loader = opts.loader;
+        }
+
+        if(loader == 'pie'){
+            fakeHover.append(
+                '<div class="camera_pie"></div>'
+                )
+        } else if (loader == 'bar') {
+            fakeHover.append(
+                '<div class="camera_bar"></div>'
+                )
+        } else {
+            fakeHover.append(
+                '<div class="camera_bar" style="display:none"></div>'
+                )
+        }
+
+        if(opts.playPause==true){
+            fakeHover.append(
+                '<div class="camera_commands"></div>'
+                )
+        }
+
+        if(opts.navigation==true){
+            fakeHover.append(
+                '<div class="camera_prev"><span></span></div>'
+                ).append(
+                '<div class="camera_next"><span></span></div>'
+                );
+        }
+
+        if(opts.thumbnails==true){
+            wrap.append(
+                '<div class="camera_thumbs_cont" />'
+                );
+        }
+
+        if(opts.thumbnails==true && opts.pagination!=true){
+            $('.camera_thumbs_cont',wrap).wrap(
+                '<div />'
+                ).wrap(
+                '<div class="camera_thumbs" />'
+                ).wrap(
+                '<div />'
+                ).wrap(
+                '<div class="camera_command_wrap" />'
+                );
+        }
+
+        if(opts.pagination==true){
+            wrap.append(
+                '<div class="camera_pag"></div>'
+                );
+        }
+
+        wrap.append(
+            '<div class="camera_loader"></div>'
+            );
+
+        $('.camera_caption',wrap).each(function(){
+            $(this).wrapInner('<div />');
+        });
+
+                
+        var pieID = 'pie_'+wrap.index(),
+        elem = $('.camera_src',wrap),
+        target = $('.camera_target',wrap),
+        content = $('.camera_target_content',wrap),
+        pieContainer = $('.camera_pie',wrap),
+        barContainer = $('.camera_bar',wrap),
+        prevNav = $('.camera_prev',wrap),
+        nextNav = $('.camera_next',wrap),
+        commands = $('.camera_commands',wrap),
+        pagination = $('.camera_pag',wrap),
+        thumbs = $('.camera_thumbs_cont',wrap);
+
+
+        var w,
+        h;
+
+
+        var allImg = new Array();
+        $('> div', elem).each( function() {
+            allImg.push($(this).attr('data-src'));
+        });
+
+        var allLinks = new Array();
+        $('> div', elem).each( function() {
+            if($(this).attr('data-link')){
+                allLinks.push($(this).attr('data-link'));
+            } else {
+                allLinks.push('');
+            }
+        });
+
+        var allTargets = new Array();
+        $('> div', elem).each( function() {
+            if($(this).attr('data-target')){
+                allTargets.push($(this).attr('data-target'));
+            } else {
+                allTargets.push('');
+            }
+        });
+
+        var allPor = new Array();
+        $('> div', elem).each( function() {
+            if($(this).attr('data-portrait')){
+                allPor.push($(this).attr('data-portrait'));
+            } else {
+                allPor.push('');
+            }
+        });
+
+        var allAlign= new Array();
+        $('> div', elem).each( function() {
+            if($(this).attr('data-alignment')){
+                allAlign.push($(this).attr('data-alignment'));
+            } else {
+                allAlign.push('');
+            }
+        });
+
+
+        var allThumbs = new Array();
+        $('> div', elem).each( function() {
+            if($(this).attr('data-thumb')){
+                allThumbs.push($(this).attr('data-thumb'));
+            } else {
+                allThumbs.push('');
+            }
+        });
+
+        var amountSlide = allImg.length;
+
+        $(content).append('<div class="cameraContents" />');
+        var loopMove;
+        for (loopMove=0;loopMove<amountSlide;loopMove++)
+        {
+            $('.cameraContents',content).append('<div class="cameraContent" />');
+            if(allLinks[loopMove]!=''){
+                //only for Wordpress plugin
+                var dataBox = $('> div ',elem).eq(loopMove).attr('data-box');
+                if(typeof dataBox !== 'undefined' && dataBox !== false && dataBox != '') {
+                    dataBox = 'data-box="'+$('> div ',elem).eq(loopMove).attr('data-box')+'"';
+                } else {
+                    dataBox = '';
+                }
+                //
+                $('.camera_target_content .cameraContent:eq('+loopMove+')',wrap).append('<a class="camera_link" href="'+allLinks[loopMove]+'" '+dataBox+' target="'+allTargets[loopMove]+'"></a>');
+            }
+
+        }
+        $('.camera_caption',wrap).each(function(){
+            var ind = $(this).parent().index(),
+            cont = wrap.find('.cameraContent').eq(ind);
+            $(this).appendTo(cont);
+        });
+
+        target.append('<div class="cameraCont" />');
+        var cameraCont = $('.cameraCont',wrap);
+
+
+
+        var loop;
+        for (loop=0;loop<amountSlide;loop++)
+        {
+            cameraCont.append('<div class="cameraSlide cameraSlide_'+loop+'" />');
+            var div = $('> div:eq('+loop+')',elem);
+            target.find('.cameraSlide_'+loop).clone(div);
+        }
+
+
+        function thumbnailVisible() {
+            var wTh = $(thumbs).width();
+            $('li', thumbs).removeClass('camera_visThumb');
+            $('li', thumbs).each(function(){
+                var pos = $(this).position(),
+                ulW = $('ul', thumbs).outerWidth(),
+                offUl = $('ul', thumbs).offset().left,
+                offDiv = $('> div',thumbs).offset().left,
+                ulLeft = offDiv-offUl;
+                if(ulLeft>0){
+                    $('.camera_prevThumbs',camera_thumbs_wrap).removeClass('hideNav');
+                } else {
+                    $('.camera_prevThumbs',camera_thumbs_wrap).addClass('hideNav');
+                }
+                if((ulW-ulLeft)>wTh){
+                    $('.camera_nextThumbs',camera_thumbs_wrap).removeClass('hideNav');
+                } else {
+                    $('.camera_nextThumbs',camera_thumbs_wrap).addClass('hideNav');
+                }
+                var left = pos.left,
+                right = pos.left+($(this).width());
+                if(right-ulLeft<=wTh && left-ulLeft>=0){
+                    $(this).addClass('camera_visThumb');
+                }
+            });
+        }
+
+        $(window).bind('load resize pageshow',function(){
+            thumbnailPos();
+            thumbnailVisible();
+        });
+
+
+        cameraCont.append('<div class="cameraSlide cameraSlide_'+loop+'" />');
+
+
+        var started;
+
+        wrap.show();
+        var w = target.width();
+        var h = target.height();
+
+        var setPause;
+
+        $(window).bind('resize pageshow',function(){
+            if(started == true) {
+                resizeImage();
+            }
+            $('ul', thumbs).animate({
+                'margin-top':0
+            },0,thumbnailPos);
+            if(!elem.hasClass('paused')){
+                elem.addClass('paused');
+                if($('.camera_stop',camera_thumbs_wrap).length){
+                    $('.camera_stop',camera_thumbs_wrap).hide()
+                    $('.camera_play',camera_thumbs_wrap).show();
+                    if(loader!='none'){
+                        $('#'+pieID).hide();
+                    }
+                } else {
+                    if(loader!='none'){
+                        $('#'+pieID).hide();
+                    }
+                }
+                clearTimeout(setPause);
+                setPause = setTimeout(function(){
+                    elem.removeClass('paused');
+                    if($('.camera_play',camera_thumbs_wrap).length){
+                        $('.camera_play',camera_thumbs_wrap).hide();
+                        $('.camera_stop',camera_thumbs_wrap).show();
+                        if(loader!='none'){
+                            $('#'+pieID).fadeIn();
+                        }
+                    } else {
+                        if(loader!='none'){
+                            $('#'+pieID).fadeIn();
+                        }
+                    }
+                },1500);
+            }
+        });
+
+        function resizeImage(){
+            var res;
+            function resizeImageWork(){
+                w = wrap.width();
+                if(opts.height.indexOf('%')!=-1) {
+                    var startH = Math.round(w / (100/parseFloat(opts.height)));
+                    if(opts.minHeight != '' && startH < parseFloat(opts.minHeight)){
+                        h = parseFloat(opts.minHeight);
+                    } else {
+                        h = startH;
+                    }
+                    wrap.css({
+                        height:h
+                    });
+                } else if (opts.height=='auto') {
+                    h = wrap.height();
+                } else {
+                    h = parseFloat(opts.height);
+                    wrap.css({
+                        height:h
+                    });
+                }
+                $('.camerarelative',target).css({
+                    'width':w,
+                    'height':h
+                });
+                $('.imgLoaded',target).each(function(){
+                    var t = $(this),
+                    wT = t.attr('width'),
+                    hT = t.attr('height'),
+                    imgLoadIn = t.index(),
+                    mTop,
+                    mLeft,
+                    alignment = t.attr('data-alignment'),
+                    portrait =  t.attr('data-portrait');
+
+                    if(typeof alignment === 'undefined' || alignment === false || alignment === ''){
+                        alignment = opts.alignment;
+                    }
+
+                    if(typeof portrait === 'undefined' || portrait === false || portrait === ''){
+                        portrait = opts.portrait;
+                    }
+
+                    if(portrait==false||portrait=='false'){
+                        if((wT/hT)<(w/h)) {
+                            var r = w / wT;
+                            var d = (Math.abs(h - (hT*r)))*0.5;
+                            switch(alignment){
+                                case 'topLeft':
+                                    mTop = 0;
+                                    break;
+                                case 'topCenter':
+                                    mTop = 0;
+                                    break;
+                                case 'topRight':
+                                    mTop = 0;
+                                    break;
+                                case 'centerLeft':
+                                    mTop = '-'+d+'px';
+                                    break;
+                                case 'center':
+                                    mTop = '-'+d+'px';
+                                    break;
+                                case 'centerRight':
+                                    mTop = '-'+d+'px';
+                                    break;
+                                case 'bottomLeft':
+                                    mTop = '-'+d*2+'px';
+                                    break;
+                                case 'bottomCenter':
+                                    mTop = '-'+d*2+'px';
+                                    break;
+                                case 'bottomRight':
+                                    mTop = '-'+d*2+'px';
+                                    break;
+                            }
+                            t.css({
+                                'height' : hT*r,
+                                'margin-left' : 0,
+                                'margin-top' : mTop,
+                                'position' : 'absolute',
+                                'visibility' : 'visible',
+                                'width' : w
+                            });
+                        }
+                        else {
+                            var r = h / hT;
+                            var d = (Math.abs(w - (wT*r)))*0.5;
+                            switch(alignment){
+                                case 'topLeft':
+                                    mLeft = 0;
+                                    break;
+                                case 'topCenter':
+                                    mLeft = '-'+d+'px';
+                                    break;
+                                case 'topRight':
+                                    mLeft = '-'+d*2+'px';
+                                    break;
+                                case 'centerLeft':
+                                    mLeft = 0;
+                                    break;
+                                case 'center':
+                                    mLeft = '-'+d+'px';
+                                    break;
+                                case 'centerRight':
+                                    mLeft = '-'+d*2+'px';
+                                    break;
+                                case 'bottomLeft':
+                                    mLeft = 0;
+                                    break;
+                                case 'bottomCenter':
+                                    mLeft = '-'+d+'px';
+                                    break;
+                                case 'bottomRight':
+                                    mLeft = '-'+d*2+'px';
+                                    break;
+                            }
+                            t.css({
+                                'height' : h,
+                                'margin-left' : mLeft,
+                                'margin-top' : 0,
+                                'position' : 'absolute',
+                                'visibility' : 'visible',
+                                'width' : wT*r
+                            });
+                        }
+                    } else {
+                        if((wT/hT)<(w/h)) {
+                            var r = h / hT;
+                            var d = (Math.abs(w - (wT*r)))*0.5;
+                            switch(alignment){
+                                case 'topLeft':
+                                    mLeft = 0;
+                                    break;
+                                case 'topCenter':
+                                    mLeft = d+'px';
+                                    break;
+                                case 'topRight':
+                                    mLeft = d*2+'px';
+                                    break;
+                                case 'centerLeft':
+                                    mLeft = 0;
+                                    break;
+                                case 'center':
+                                    mLeft = d+'px';
+                                    break;
+                                case 'centerRight':
+                                    mLeft = d*2+'px';
+                                    break;
+                                case 'bottomLeft':
+                                    mLeft = 0;
+                                    break;
+                                case 'bottomCenter':
+                                    mLeft = d+'px';
+                                    break;
+                                case 'bottomRight':
+                                    mLeft = d*2+'px';
+                                    break;
+                            }
+                            t.css({
+                                'height' : h,
+                                'margin-left' : mLeft,
+                                'margin-top' : 0,
+                                'position' : 'absolute',
+                                'visibility' : 'visible',
+                                'width' : wT*r
+                            });
+                        }
+                        else {
+                            var r = w / wT;
+                            var d = (Math.abs(h - (hT*r)))*0.5;
+                            switch(alignment){
+                                case 'topLeft':
+                                    mTop = 0;
+                                    break;
+                                case 'topCenter':
+                                    mTop = 0;
+                                    break;
+                                case 'topRight':
+                                    mTop = 0;
+                                    break;
+                                case 'centerLeft':
+                                    mTop = d+'px';
+                                    break;
+                                case 'center':
+                                    mTop = d+'px';
+                                    break;
+                                case 'centerRight':
+                                    mTop = d+'px';
+                                    break;
+                                case 'bottomLeft':
+                                    mTop = d*2+'px';
+                                    break;
+                                case 'bottomCenter':
+                                    mTop = d*2+'px';
+                                    break;
+                                case 'bottomRight':
+                                    mTop = d*2+'px';
+                                    break;
+                            }
+                            t.css({
+                                'height' : hT*r,
+                                'margin-left' : 0,
+                                'margin-top' : mTop,
+                                'position' : 'absolute',
+                                'visibility' : 'visible',
+                                'width' : w
+                            });
+                        }
+                    }
+                });
+            }
+            if (started == true) {
+                clearTimeout(res);
+                res = setTimeout(resizeImageWork,200);
+            } else {
+                resizeImageWork();
+            }
+
+            started = true;
+        }
+
+
+        var u,
+        setT;
+
+        var clickEv,
+        autoAdv,
+        navHover,
+        commands,
+        pagination;
+
+        var videoHover,
+        videoPresent;
+
+        if(isMobile() && opts.mobileAutoAdvance!=''){
+            autoAdv = opts.mobileAutoAdvance;
+        } else {
+            autoAdv = opts.autoAdvance;
+        }
+
+        if(autoAdv==false){
+            elem.addClass('paused');
+        }
+
+        if(isMobile() && opts.mobileNavHover!=''){
+            navHover = opts.mobileNavHover;
+        } else {
+            navHover = opts.navigationHover;
+        }
+
+        if(elem.length!=0){
+
+            var selector = $('.cameraSlide',target);
+            selector.wrapInner('<div class="camerarelative" />');
+
+            var navSlide;
+
+            var barDirection = opts.barDirection;
+
+            var camera_thumbs_wrap = wrap;
+
+
+            $('iframe',fakeHover).each(function(){
+                var t = $(this);
+                var src = t.attr('src');
+                t.attr('data-src',src);
+                var divInd = t.parent().index('.camera_src > div');
+                $('.camera_target_content .cameraContent:eq('+divInd+')',wrap).append(t);
+            });
+            function imgFake() {
+                $('iframe',fakeHover).each(function(){
+                    $('.camera_caption',fakeHover).show();
+                    var t = $(this);
+                    var cloneSrc = t.attr('data-src');
+                    t.attr('src',cloneSrc);
+                    var imgFakeUrl = opts.imagePath+'blank.gif';
+                    var imgFake = new Image();
+                    imgFake.src = imgFakeUrl;
+                    if(opts.height.indexOf('%')!=-1) {
+                        var startH = Math.round(w / (100/parseFloat(opts.height)));
+                        if(opts.minHeight != '' && startH < parseFloat(opts.minHeight)){
+                            h = parseFloat(opts.minHeight);
+                        } else {
+                            h = startH;
+                        }
+                    } else if (opts.height=='auto') {
+                        h = wrap.height();
+                    } else {
+                        h = parseFloat(opts.height);
+                    }
+                    t.after($(imgFake).attr({
+                        'class':'imgFake',
+                        'width':w,
+                        'height':h
+                    }));
+                    var clone = t.clone();
+                    t.remove();
+                    $(imgFake).bind('click',function(){
+                        if($(this).css('position')=='absolute') {
+                            $(this).remove();
+                            if(cloneSrc.indexOf('vimeo') != -1 || cloneSrc.indexOf('youtube') != -1) {
+                                if(cloneSrc.indexOf('?') != -1){
+                                    autoplay = '&autoplay=1';
+                                } else {
+                                    autoplay = '?autoplay=1';
+                                }
+                            } else if(cloneSrc.indexOf('dailymotion') != -1) {
+                                if(cloneSrc.indexOf('?') != -1){
+                                    autoplay = '&autoPlay=1';
+                                } else {
+                                    autoplay = '?autoPlay=1';
+                                }
+                            }
+                            clone.attr('src',cloneSrc+autoplay);
+                            videoPresent = true;
+                        } else {
+                            $(this).css({
+                                position:'absolute',
+                                top:0,
+                                left:0,
+                                zIndex:10
+                            }).after(clone);
+                            clone.css({
+                                position:'absolute',
+                                top:0,
+                                left:0,
+                                zIndex:9
+                            });
+                        }
+                    });
+                });
+            }
+
+            imgFake();
+
+
+            if(opts.hover==true){
+                if(!isMobile()){
+                    fakeHover.hover(function(){
+                        elem.addClass('hovered');
+                    },function(){
+                        elem.removeClass('hovered');
+                    });
+                }
+            }
+
+            if(navHover==true){
+                $(prevNav,wrap).animate({
+                    opacity:0
+                },0);
+                $(nextNav,wrap).animate({
+                    opacity:0
+                },0);
+                $(commands,wrap).animate({
+                    opacity:0
+                },0);
+                if(isMobile()){
+                    fakeHover.live('vmouseover',function(){
+                        $(prevNav,wrap).animate({
+                            opacity:1
+                        },200);
+                        $(nextNav,wrap).animate({
+                            opacity:1
+                        },200);
+                        $(commands,wrap).animate({
+                            opacity:1
+                        },200);
+                    });
+                    fakeHover.live('vmouseout',function(){
+                        $(prevNav,wrap).delay(500).animate({
+                            opacity:0
+                        },200);
+                        $(nextNav,wrap).delay(500).animate({
+                            opacity:0
+                        },200);
+                        $(commands,wrap).delay(500).animate({
+                            opacity:0
+                        },200);
+                    });
+                } else {
+                    fakeHover.hover(function(){
+                        $(prevNav,wrap).animate({
+                            opacity:1
+                        },200);
+                        $(nextNav,wrap).animate({
+                            opacity:1
+                        },200);
+                        $(commands,wrap).animate({
+                            opacity:1
+                        },200);
+                    },function(){
+                        $(prevNav,wrap).animate({
+                            opacity:0
+                        },200);
+                        $(nextNav,wrap).animate({
+                            opacity:0
+                        },200);
+                        $(commands,wrap).animate({
+                            opacity:0
+                        },200);
+                    });
+                }
+            }
+
+
+            $('.camera_stop',camera_thumbs_wrap).live('click',function(){
+                autoAdv = false;
+                elem.addClass('paused');
+                if($('.camera_stop',camera_thumbs_wrap).length){
+                    $('.camera_stop',camera_thumbs_wrap).hide()
+                    $('.camera_play',camera_thumbs_wrap).show();
+                    if(loader!='none'){
+                        $('#'+pieID).hide();
+                    }
+                } else {
+                    if(loader!='none'){
+                        $('#'+pieID).hide();
+                    }
+                }
+            });
+
+            $('.camera_play',camera_thumbs_wrap).live('click',function(){
+                autoAdv = true;
+                elem.removeClass('paused');
+                if($('.camera_play',camera_thumbs_wrap).length){
+                    $('.camera_play',camera_thumbs_wrap).hide();
+                    $('.camera_stop',camera_thumbs_wrap).show();
+                    if(loader!='none'){
+                        $('#'+pieID).show();
+                    }
+                } else {
+                    if(loader!='none'){
+                        $('#'+pieID).show();
+                    }
+                }
+            });
+
+            if(opts.pauseOnClick==true){
+                $('.camera_target_content',fakeHover).mouseup(function(){
+                    autoAdv = false;
+                    elem.addClass('paused');
+                    $('.camera_stop',camera_thumbs_wrap).hide()
+                    $('.camera_play',camera_thumbs_wrap).show();
+                    $('#'+pieID).hide();
+                });
+            }
+            $('.cameraContent, .imgFake',fakeHover).hover(function(){
+                videoHover = true;
+            },function(){
+                videoHover = false;
+            });
+
+            $('.cameraContent, .imgFake',fakeHover).bind('click',function(){
+                if(videoPresent == true && videoHover == true) {
+                    autoAdv = false;
+                    $('.camera_caption',fakeHover).hide();
+                    elem.addClass('paused');
+                    $('.camera_stop',camera_thumbs_wrap).hide()
+                    $('.camera_play',camera_thumbs_wrap).show();
+                    $('#'+pieID).hide();
+                }
+            });
+
+
+        }
+
+
+        function shuffle(arr) {
+            for(
+                var j, x, i = arr.length; i;
+                j = parseInt(Math.random() * i),
+                x = arr[--i], arr[i] = arr[j], arr[j] = x
+            );
+            return arr;
+        }
+
+        function isInteger(s) {
+            return Math.ceil(s) == Math.floor(s);
+        }
+
+        if (loader != 'pie') {
+            barContainer.append('<span class="camera_bar_cont" />');
+            $('.camera_bar_cont',barContainer)
+            .animate({
+                opacity:opts.loaderOpacity
+                },0)
+            .css({
+                'position':'absolute',
+                'left':0,
+                'right':0,
+                'top':0,
+                'bottom':0,
+                'background-color':opts.loaderBgColor
+                })
+            .append('<span id="'+pieID+'" />');
+            $('#'+pieID).animate({
+                opacity:0
+            },0);
+            var canvas = $('#'+pieID);
+            canvas.css({
+                'position':'absolute',
+                'background-color':opts.loaderColor
+                });
+            switch(opts.barPosition){
+                case 'left':
+                    barContainer.css({
+                        right:'auto',
+                        width:opts.loaderStroke
+                        });
+                    break;
+                case 'right':
+                    barContainer.css({
+                        left:'auto',
+                        width:opts.loaderStroke
+                        });
+                    break;
+                case 'top':
+                    barContainer.css({
+                        bottom:'auto',
+                        height:opts.loaderStroke
+                        });
+                    break;
+                case 'bottom':
+                    barContainer.css({
+                        top:'auto',
+                        height:opts.loaderStroke
+                        });
+                    break;
+            }
+            switch(barDirection){
+                case 'leftToRight':
+                    canvas.css({
+                        'left':0,
+                        'right':0,
+                        'top':opts.loaderPadding,
+                        'bottom':opts.loaderPadding
+                        });
+                    break;
+                case 'rightToLeft':
+                    canvas.css({
+                        'left':0,
+                        'right':0,
+                        'top':opts.loaderPadding,
+                        'bottom':opts.loaderPadding
+                        });
+                    break;
+                case 'topToBottom':
+                    canvas.css({
+                        'left':opts.loaderPadding,
+                        'right':opts.loaderPadding,
+                        'top':0,
+                        'bottom':0
+                    });
+                    break;
+                case 'bottomToTop':
+                    canvas.css({
+                        'left':opts.loaderPadding,
+                        'right':opts.loaderPadding,
+                        'top':0,
+                        'bottom':0
+                    });
+                    break;
+            }
+        } else {
+            pieContainer.append('<canvas id="'+pieID+'"></canvas>');
+            var G_vmlCanvasManager;
+            var canvas = document.getElementById(pieID);
+            canvas.setAttribute("width", opts.pieDiameter);
+            canvas.setAttribute("height", opts.pieDiameter);
+            var piePosition;
+            switch(opts.piePosition){
+                case 'leftTop' :
+                    piePosition = 'left:0; top:0;';
+                    break;
+                case 'rightTop' :
+                    piePosition = 'right:0; top:0;';
+                    break;
+                case 'leftBottom' :
+                    piePosition = 'left:0; bottom:0;';
+                    break;
+                case 'rightBottom' :
+                    piePosition = 'right:0; bottom:0;';
+                    break;
+            }
+            canvas.setAttribute("style", "position:absolute; z-index:1002; "+piePosition);
+            var rad;
+            var radNew;
+
+            if (canvas && canvas.getContext) {
+                var ctx = canvas.getContext("2d");
+                ctx.rotate(Math.PI*(3/2));
+                ctx.translate(-opts.pieDiameter,0);
+            }
+
+        }
+        if(loader=='none' || autoAdv==false) {
+            $('#'+pieID).hide();
+            $('.camera_canvas_wrap',camera_thumbs_wrap).hide();
+        }
+
+        if($(pagination).length) {
+            $(pagination).append('<ul class="camera_pag_ul" />');
+            var li;
+            for (li = 0; li < amountSlide; li++){
+                $('.camera_pag_ul',wrap).append('<li class="pag_nav_'+li+'" style="position:relative; z-index:1002"><span><span>'+li+'</span></span></li>');
+            }
+            $('.camera_pag_ul li',wrap).hover(function(){
+                $(this).addClass('camera_hover');
+                if($('.camera_thumb',this).length){
+                    var wTh = $('.camera_thumb',this).outerWidth(),
+                    hTh = $('.camera_thumb',this).outerHeight(),
+                    wTt = $(this).outerWidth();
+                    $('.camera_thumb',this).show().css({
+                        'top':'-'+hTh+'px',
+                        'left':'-'+(wTh-wTt)/2+'px'
+                        }).animate({
+                        'opacity':1,
+                        'margin-top':'-3px'
+                    },200);
+                    $('.thumb_arrow',this).show().animate({
+                        'opacity':1,
+                        'margin-top':'-3px'
+                    },200);
+                }
+            },function(){
+                $(this).removeClass('camera_hover');
+                $('.camera_thumb',this).animate({
+                    'margin-top':'-20px',
+                    'opacity':0
+                },200,function(){
+                    $(this).css({
+                        marginTop:'5px'
+                    }).hide();
+                });
+                $('.thumb_arrow',this).animate({
+                    'margin-top':'-20px',
+                    'opacity':0
+                },200,function(){
+                    $(this).css({
+                        marginTop:'5px'
+                    }).hide();
+                });
+            });
+        }
+
+
+
+        if($(thumbs).length) {
+            var thumbUrl;
+            if(!$(pagination).length) {
+                $(thumbs).append('<div />');
+                $(thumbs).before('<div class="camera_prevThumbs hideNav"><div></div></div>').before('<div class="camera_nextThumbs hideNav"><div></div></div>');
+                $('> div',thumbs).append('<ul />');
+                $.each(allThumbs, function(i, val) {
+                    if($('> div', elem).eq(i).attr('data-thumb')!='') {
+                        var thumbUrl = $('> div', elem).eq(i).attr('data-thumb'),
+                        newImg = new Image();
+                        newImg.src = thumbUrl;
+                        $('ul',thumbs).append('<li class="pix_thumb pix_thumb_'+i+'" />');
+                        $('li.pix_thumb_'+i,thumbs).append($(newImg).attr('class','camera_thumb'));
+                    }
+                });
+            } else {
+                $.each(allThumbs, function(i, val) {
+                    if($('> div', elem).eq(i).attr('data-thumb')!='') {
+                        var thumbUrl = $('> div', elem).eq(i).attr('data-thumb'),
+                        newImg = new Image();
+                        newImg.src = thumbUrl;
+                        $('li.pag_nav_'+i,pagination).append($(newImg).attr('class','camera_thumb').css({
+                            'position':'absolute'
+                        }).animate({
+                            opacity:0
+                        },0));
+                        $('li.pag_nav_'+i+' > img',pagination).after('<div class="thumb_arrow" />');
+                        $('li.pag_nav_'+i+' > .thumb_arrow',pagination).animate({
+                            opacity:0
+                        },0);
+                    }
+                });
+                wrap.css({
+                    marginBottom:$(pagination).outerHeight()
+                    });
+            }
+        } else if(!$(thumbs).length && $(pagination).length) {
+            wrap.css({
+                marginBottom:$(pagination).outerHeight()
+                });
+        }
+
+
+        var firstPos = true;
+
+        function thumbnailPos() {
+            if($(thumbs).length && !$(pagination).length) {
+                var wTh = $(thumbs).outerWidth(),
+                owTh = $('ul > li',thumbs).outerWidth(),
+                pos = $('li.cameracurrent', thumbs).length ? $('li.cameracurrent', thumbs).position() : '',
+                ulW = ($('ul > li', thumbs).length * $('ul > li', thumbs).outerWidth()),
+                offUl = $('ul', thumbs).offset().left,
+                offDiv = $('> div', thumbs).offset().left,
+                ulLeft;
+
+                if(offUl<0){
+                    ulLeft = '-'+ (offDiv-offUl);
+                } else {
+                    ulLeft = offDiv-offUl;
+                }
+
+
+
+                if(firstPos == true) {
+                    $('ul', thumbs).width($('ul > li', thumbs).length * $('ul > li', thumbs).outerWidth());
+                    if($(thumbs).length && !$(pagination).lenght) {
+                        wrap.css({
+                            marginBottom:$(thumbs).outerHeight()
+                            });
+                    }
+                    thumbnailVisible();
+                    /*I repeat this two lines because of a problem with iPhones*/
+                    $('ul', thumbs).width($('ul > li', thumbs).length * $('ul > li', thumbs).outerWidth());
+                    if($(thumbs).length && !$(pagination).lenght) {
+                        wrap.css({
+                            marginBottom:$(thumbs).outerHeight()
+                            });
+                    }
+                /*...*/
+                }
+                firstPos = false;
+
+                var left = $('li.cameracurrent', thumbs).length ? pos.left : '',
+                right = $('li.cameracurrent', thumbs).length ? pos.left+($('li.cameracurrent', thumbs).outerWidth()) : '';
+                if(left<$('li.cameracurrent', thumbs).outerWidth()) {
+                    left = 0;
+                }
+                if(right-ulLeft>wTh){
+                    if((left+wTh)<ulW){
+                        $('ul', thumbs).animate({
+                            'margin-left':'-'+(left)+'px'
+                            },500,thumbnailVisible);
+                    } else {
+                        $('ul', thumbs).animate({
+                            'margin-left':'-'+($('ul', thumbs).outerWidth()-wTh)+'px'
+                            },500,thumbnailVisible);
+                    }
+                } else if(left-ulLeft<0) {
+                    $('ul', thumbs).animate({
+                        'margin-left':'-'+(left)+'px'
+                        },500,thumbnailVisible);
+                } else {
+                    $('ul', thumbs).css({
+                        'margin-left':'auto',
+                        'margin-right':'auto'
+                    });
+                    setTimeout(thumbnailVisible,100);
+                }
+
+            }
+        }
+
+        if($(commands).length) {
+            $(commands).append('<div class="camera_play"></div>').append('<div class="camera_stop"></div>');
+            if(autoAdv==true){
+                $('.camera_play',camera_thumbs_wrap).hide();
+                $('.camera_stop',camera_thumbs_wrap).show();
+            } else {
+                $('.camera_stop',camera_thumbs_wrap).hide();
+                $('.camera_play',camera_thumbs_wrap).show();
+            }
+
+        }
+
+
+        function canvasLoader() {
+            rad = 0;
+            var barWidth = $('.camera_bar_cont',camera_thumbs_wrap).width(),
+            barHeight = $('.camera_bar_cont',camera_thumbs_wrap).height();
+
+            if (loader != 'pie') {
+                switch(barDirection){
+                    case 'leftToRight':
+                        $('#'+pieID).css({
+                            'right':barWidth
+                        });
+                        break;
+                    case 'rightToLeft':
+                        $('#'+pieID).css({
+                            'left':barWidth
+                        });
+                        break;
+                    case 'topToBottom':
+                        $('#'+pieID).css({
+                            'bottom':barHeight
+                        });
+                        break;
+                    case 'bottomToTop':
+                        $('#'+pieID).css({
+                            'top':barHeight
+                        });
+                        break;
+                }
+            } else {
+                ctx.clearRect(0,0,opts.pieDiameter,opts.pieDiameter);
+            }
+        }
+
+
+        canvasLoader();
+
+
+        $('.moveFromLeft, .moveFromRight, .moveFromTop, .moveFromBottom, .fadeIn, .fadeFromLeft, .fadeFromRight, .fadeFromTop, .fadeFromBottom',fakeHover).each(function(){
+            $(this).css('visibility','hidden');
+        });
+
+        opts.onStartLoading.call(this);
+
+        nextSlide();
+
+
+        /*************************** FUNCTION nextSlide() ***************************/
+
+        function nextSlide(navSlide){
+            elem.addClass('camerasliding');
+
+            videoPresent = false;
+            var vis = parseFloat($('div.cameraSlide.cameracurrent',target).index());
+
+            if(navSlide>0){
+                var slideI = navSlide-1;
+            } else if (vis == amountSlide-1) {
+                var slideI = 0;
+            } else {
+                var slideI = vis+1;
+            }
+
+
+            var slide = $('.cameraSlide:eq('+slideI+')',target);
+            var slideNext = $('.cameraSlide:eq('+(slideI+1)+')',target).addClass('cameranext');
+            if( vis != slideI+1 ) {
+                slideNext.hide();
+            }
+            $('.cameraContent',fakeHover).fadeOut(600);
+            $('.camera_caption',fakeHover).show();
+
+            $('.camerarelative',slide).append($('> div ',elem).eq(slideI).find('> div.camera_effected'));
+
+            $('.camera_target_content .cameraContent:eq('+slideI+')',wrap).append($('> div ',elem).eq(slideI).find('> div'));
+
+            if(!$('.imgLoaded',slide).length){
+                var imgUrl = allImg[slideI];
+                var imgLoaded = new Image();
+                imgLoaded.src = imgUrl +"?"+ new Date().getTime();
+                slide.css('visibility','hidden');
+                slide.prepend($(imgLoaded).attr('class','imgLoaded').css('visibility','hidden'));
+                var wT, hT;
+                if (!$(imgLoaded).get(0).complete || wT == '0' || hT == '0' || typeof wT === 'undefined' || wT === false || typeof hT === 'undefined' || hT === false) {
+                    $('.camera_loader',wrap).delay(500).fadeIn(400);
+                    imgLoaded.onload = function() {
+                        wT = imgLoaded.naturalWidth;
+                        hT = imgLoaded.naturalHeight;
+                        $(imgLoaded).attr('data-alignment',allAlign[slideI]).attr('data-portrait',allPor[slideI]);
+                        $(imgLoaded).attr('width',wT);
+                        $(imgLoaded).attr('height',hT);
+                        target.find('.cameraSlide_'+slideI).hide().css('visibility','visible');
+                        resizeImage();
+                        nextSlide(slideI+1);
+                    };
+                }
+            } else {
+                if( allImg.length > (slideI+1) && !$('.imgLoaded',slideNext).length ){
+                    var imgUrl2 = allImg[(slideI+1)];
+                    var imgLoaded2 = new Image();
+                    imgLoaded2.src = imgUrl2 +"?"+ new Date().getTime();
+                    slideNext.prepend($(imgLoaded2).attr('class','imgLoaded').css('visibility','hidden'));
+                    imgLoaded2.onload = function() {
+                        wT = imgLoaded2.naturalWidth;
+                        hT = imgLoaded2.naturalHeight;
+                        $(imgLoaded2).attr('data-alignment',allAlign[slideI+1]).attr('data-portrait',allPor[slideI+1]);
+                        $(imgLoaded2).attr('width',wT);
+                        $(imgLoaded2).attr('height',hT);
+                        resizeImage();
+                    };
+                }
+                opts.onLoaded.call(this);
+                if($('.camera_loader',wrap).is(':visible')){
+                    $('.camera_loader',wrap).fadeOut(400);
+                } else {
+                    $('.camera_loader',wrap).css({
+                        'visibility':'hidden'
+                    });
+                    $('.camera_loader',wrap).fadeOut(400,function(){
+                        $('.camera_loader',wrap).css({
+                            'visibility':'visible'
+                        });
+                    });
+                }
+                var rows = opts.rows,
+                cols = opts.cols,
+                couples = 1,
+                difference = 0,
+                dataSlideOn,
+                time,
+                transPeriod,
+                fx,
+                easing,
+                randomFx = new Array('simpleFade','curtainTopLeft','curtainTopRight','curtainBottomLeft','curtainBottomRight','curtainSliceLeft','curtainSliceRight','blindCurtainTopLeft','blindCurtainTopRight','blindCurtainBottomLeft','blindCurtainBottomRight','blindCurtainSliceBottom','blindCurtainSliceTop','stampede','mosaic','mosaicReverse','mosaicRandom','mosaicSpiral','mosaicSpiralReverse','topLeftBottomRight','bottomRightTopLeft','bottomLeftTopRight','topRightBottomLeft','scrollLeft','scrollRight','scrollTop','scrollBottom','scrollHorz');
+                marginLeft = 0,
+                marginTop = 0,
+                opacityOnGrid = 0;
+
+                if(opts.opacityOnGrid==true){
+                    opacityOnGrid = 0;
+                } else {
+                    opacityOnGrid = 1;
+                }
+
+
+
+                var dataFx = $(' > div',elem).eq(slideI).attr('data-fx');
+
+                if(isMobile()&&opts.mobileFx!=''&&opts.mobileFx!='default'){
+                    fx = opts.mobileFx;
+                } else {
+                    if(typeof dataFx !== 'undefined' && dataFx!== false && dataFx!== 'default'){
+                        fx = dataFx;
+                    } else {
+                        fx = opts.fx;
+                    }
+                }
+
+                if(fx=='random') {
+                    fx = shuffle(randomFx);
+                    fx = fx[0];
+                } else {
+                    fx = fx;
+                    if(fx.indexOf(',')>0){
+                        fx = fx.replace(/ /g,'');
+                        fx = fx.split(',');
+                        fx = shuffle(fx);
+                        fx = fx[0];
+                    }
+                }
+
+                dataEasing = $(' > div',elem).eq(slideI).attr('data-easing');
+                mobileEasing = $(' > div',elem).eq(slideI).attr('data-mobileEasing');
+
+                if(isMobile()&&opts.mobileEasing!=''&&opts.mobileEasing!='default'){
+                    if(typeof mobileEasing !== 'undefined' && mobileEasing!== false && mobileEasing!== 'default') {
+                        easing = mobileEasing;
+                    } else {
+                        easing = opts.mobileEasing;
+                    }
+                } else {
+                    if(typeof dataEasing !== 'undefined' && dataEasing!== false && dataEasing!== 'default') {
+                        easing = dataEasing;
+                    } else {
+                        easing = opts.easing;
+                    }
+                }
+
+                dataSlideOn = $(' > div',elem).eq(slideI).attr('data-slideOn');
+                if(typeof dataSlideOn !== 'undefined' && dataSlideOn!== false){
+                    slideOn = dataSlideOn;
+                } else {
+                    if(opts.slideOn=='random'){
+                        var slideOn = new Array('next','prev');
+                        slideOn = shuffle(slideOn);
+                        slideOn = slideOn[0];
+                    } else {
+                        slideOn = opts.slideOn;
+                    }
+                }
+
+                var dataTime = $(' > div',elem).eq(slideI).attr('data-time');
+                if(typeof dataTime !== 'undefined' && dataTime!== false && dataTime!== ''){
+                    time = parseFloat(dataTime);
+                } else {
+                    time = opts.time;
+                }
+
+                var dataTransPeriod = $(' > div',elem).eq(slideI).attr('data-transPeriod');
+                if(typeof dataTransPeriod !== 'undefined' && dataTransPeriod!== false && dataTransPeriod!== ''){
+                    transPeriod = parseFloat(dataTransPeriod);
+                } else {
+                    transPeriod = opts.transPeriod;
+                }
+
+                if(!$(elem).hasClass('camerastarted')){
+                    fx = 'simpleFade';
+                    slideOn = 'next';
+                    easing = '';
+                    transPeriod = 400;
+                    $(elem).addClass('camerastarted')
+                }
+
+                switch(fx){
+                    case 'simpleFade':
+                        cols = 1;
+                        rows = 1;
+                        break;
+                    case 'curtainTopLeft':
+                        if(opts.slicedCols == 0) {
+                            cols = opts.cols;
+                        } else {
+                            cols = opts.slicedCols;
+                        }
+                        rows = 1;
+                        break;
+                    case 'curtainTopRight':
+                        if(opts.slicedCols == 0) {
+                            cols = opts.cols;
+                        } else {
+                            cols = opts.slicedCols;
+                        }
+                        rows = 1;
+                        break;
+                    case 'curtainBottomLeft':
+                        if(opts.slicedCols == 0) {
+                            cols = opts.cols;
+                        } else {
+                            cols = opts.slicedCols;
+                        }
+                        rows = 1;
+                        break;
+                    case 'curtainBottomRight':
+                        if(opts.slicedCols == 0) {
+                            cols = opts.cols;
+                        } else {
+                            cols = opts.slicedCols;
+                        }
+                        rows = 1;
+                        break;
+                    case 'curtainSliceLeft':
+                        if(opts.slicedCols == 0) {
+                            cols = opts.cols;
+                        } else {
+                            cols = opts.slicedCols;
+                        }
+                        rows = 1;
+                        break;
+                    case 'curtainSliceRight':
+                        if(opts.slicedCols == 0) {
+                            cols = opts.cols;
+                        } else {
+                            cols = opts.slicedCols;
+                        }
+                        rows = 1;
+                        break;
+                    case 'blindCurtainTopLeft':
+                        if(opts.slicedRows == 0) {
+                            rows = opts.rows;
+                        } else {
+                            rows = opts.slicedRows;
+                        }
+                        cols = 1;
+                        break;
+                    case 'blindCurtainTopRight':
+                        if(opts.slicedRows == 0) {
+                            rows = opts.rows;
+                        } else {
+                            rows = opts.slicedRows;
+                        }
+                        cols = 1;
+                        break;
+                    case 'blindCurtainBottomLeft':
+                        if(opts.slicedRows == 0) {
+                            rows = opts.rows;
+                        } else {
+                            rows = opts.slicedRows;
+                        }
+                        cols = 1;
+                        break;
+                    case 'blindCurtainBottomRight':
+                        if(opts.slicedRows == 0) {
+                            rows = opts.rows;
+                        } else {
+                            rows = opts.slicedRows;
+                        }
+                        cols = 1;
+                        break;
+                    case 'blindCurtainSliceTop':
+                        if(opts.slicedRows == 0) {
+                            rows = opts.rows;
+                        } else {
+                            rows = opts.slicedRows;
+                        }
+                        cols = 1;
+                        break;
+                    case 'blindCurtainSliceBottom':
+                        if(opts.slicedRows == 0) {
+                            rows = opts.rows;
+                        } else {
+                            rows = opts.slicedRows;
+                        }
+                        cols = 1;
+                        break;
+                    case 'stampede':
+                        difference = '-'+transPeriod;
+                        break;
+                    case 'mosaic':
+                        difference = opts.gridDifference;
+                        break;
+                    case 'mosaicReverse':
+                        difference = opts.gridDifference;
+                        break;
+                    case 'mosaicRandom':
+                        break;
+                    case 'mosaicSpiral':
+                        difference = opts.gridDifference;
+                        couples = 1.7;
+                        break;
+                    case 'mosaicSpiralReverse':
+                        difference = opts.gridDifference;
+                        couples = 1.7;
+                        break;
+                    case 'topLeftBottomRight':
+                        difference = opts.gridDifference;
+                        couples = 6;
+                        break;
+                    case 'bottomRightTopLeft':
+                        difference = opts.gridDifference;
+                        couples = 6;
+                        break;
+                    case 'bottomLeftTopRight':
+                        difference = opts.gridDifference;
+                        couples = 6;
+                        break;
+                    case 'topRightBottomLeft':
+                        difference = opts.gridDifference;
+                        couples = 6;
+                        break;
+                    case 'scrollLeft':
+                        cols = 1;
+                        rows = 1;
+                        break;
+                    case 'scrollRight':
+                        cols = 1;
+                        rows = 1;
+                        break;
+                    case 'scrollTop':
+                        cols = 1;
+                        rows = 1;
+                        break;
+                    case 'scrollBottom':
+                        cols = 1;
+                        rows = 1;
+                        break;
+                    case 'scrollHorz':
+                        cols = 1;
+                        rows = 1;
+                        break;
+                }
+
+                var cycle = 0;
+                var blocks = rows*cols;
+                var leftScrap = w-(Math.floor(w/cols)*cols);
+                var topScrap = h-(Math.floor(h/rows)*rows);
+                var addLeft;
+                var addTop;
+                var tAppW = 0;
+                var tAppH = 0;
+                var arr = new Array();
+                var delay = new Array();
+                var order = new Array();
+                while(cycle < blocks){
+                    arr.push(cycle);
+                    delay.push(cycle);
+                    cameraCont.append('<div class="cameraappended" style="display:none; overflow:hidden; position:absolute; z-index:1000" />');
+                    var tApp = $('.cameraappended:eq('+cycle+')',target);
+                    if(fx=='scrollLeft' || fx=='scrollRight' || fx=='scrollTop' || fx=='scrollBottom' || fx=='scrollHorz'){
+                        selector.eq(slideI).clone().show().appendTo(tApp);
+                    } else {
+                        if(slideOn=='next'){
+                            selector.eq(slideI).clone().show().appendTo(tApp);
+                        } else {
+                            selector.eq(vis).clone().show().appendTo(tApp);
+                        }
+                    }
+
+                    if(cycle%cols<leftScrap){
+                        addLeft = 1;
+                    } else {
+                        addLeft = 0;
+                    }
+                    if(cycle%cols==0){
+                        tAppW = 0;
+                    }
+                    if(Math.floor(cycle/cols)<topScrap){
+                        addTop = 1;
+                    } else {
+                        addTop = 0;
+                    }
+                    tApp.css({
+                        'height': Math.floor((h/rows)+addTop+1),
+                        'left': tAppW,
+                        'top': tAppH,
+                        'width': Math.floor((w/cols)+addLeft+1)
+                    });
+                    $('> .cameraSlide', tApp).css({
+                        'height': h,
+                        'margin-left': '-'+tAppW+'px',
+                        'margin-top': '-'+tAppH+'px',
+                        'width': w
+                    });
+                    tAppW = tAppW+tApp.width()-1;
+                    if(cycle%cols==cols-1){
+                        tAppH = tAppH + tApp.height() - 1;
+                    }
+                    cycle++;
+                }
+
+
+
+                switch(fx){
+                    case 'curtainTopLeft':
+                        break;
+                    case 'curtainBottomLeft':
+                        break;
+                    case 'curtainSliceLeft':
+                        break;
+                    case 'curtainTopRight':
+                        arr = arr.reverse();
+                        break;
+                    case 'curtainBottomRight':
+                        arr = arr.reverse();
+                        break;
+                    case 'curtainSliceRight':
+                        arr = arr.reverse();
+                        break;
+                    case 'blindCurtainTopLeft':
+                        break;
+                    case 'blindCurtainBottomLeft':
+                        arr = arr.reverse();
+                        break;
+                    case 'blindCurtainSliceTop':
+                        break;
+                    case 'blindCurtainTopRight':
+                        break;
+                    case 'blindCurtainBottomRight':
+                        arr = arr.reverse();
+                        break;
+                    case 'blindCurtainSliceBottom':
+                        arr = arr.reverse();
+                        break;
+                    case 'stampede':
+                        arr = shuffle(arr);
+                        break;
+                    case 'mosaic':
+                        break;
+                    case 'mosaicReverse':
+                        arr = arr.reverse();
+                        break;
+                    case 'mosaicRandom':
+                        arr = shuffle(arr);
+                        break;
+                    case 'mosaicSpiral':
+                        var rows2 = rows/2, x, y, z, n=0;
+                        for (z = 0; z < rows2; z++){
+                            y = z;
+                            for (x = z; x < cols - z - 1; x++) {
+                                order[n++] = y * cols + x;
+                            }
+                            x = cols - z - 1;
+                            for (y = z; y < rows - z - 1; y++) {
+                                order[n++] = y * cols + x;
+                            }
+                            y = rows - z - 1;
+                            for (x = cols - z - 1; x > z; x--) {
+                                order[n++] = y * cols + x;
+                            }
+                            x = z;
+                            for (y = rows - z - 1; y > z; y--) {
+                                order[n++] = y * cols + x;
+                            }
+                        }
+
+                        arr = order;
+
+                        break;
+                    case 'mosaicSpiralReverse':
+                        var rows2 = rows/2, x, y, z, n=blocks-1;
+                        for (z = 0; z < rows2; z++){
+                            y = z;
+                            for (x = z; x < cols - z - 1; x++) {
+                                order[n--] = y * cols + x;
+                            }
+                            x = cols - z - 1;
+                            for (y = z; y < rows - z - 1; y++) {
+                                order[n--] = y * cols + x;
+                            }
+                            y = rows - z - 1;
+                            for (x = cols - z - 1; x > z; x--) {
+                                order[n--] = y * cols + x;
+                            }
+                            x = z;
+                            for (y = rows - z - 1; y > z; y--) {
+                                order[n--] = y * cols + x;
+                            }
+                        }
+
+                        arr = order;
+
+                        break;
+                    case 'topLeftBottomRight':
+                        for (var y = 0; y < rows; y++)
+                            for (var x = 0; x < cols; x++) {
+                                order.push(x + y);
+                            }
+                        delay = order;
+                        break;
+                    case 'bottomRightTopLeft':
+                        for (var y = 0; y < rows; y++)
+                            for (var x = 0; x < cols; x++) {
+                                order.push(x + y);
+                            }
+                        delay = order.reverse();
+                        break;
+                    case 'bottomLeftTopRight':
+                        for (var y = rows; y > 0; y--)
+                            for (var x = 0; x < cols; x++) {
+                                order.push(x + y);
+                            }
+                        delay = order;
+                        break;
+                    case 'topRightBottomLeft':
+                        for (var y = 0; y < rows; y++)
+                            for (var x = cols; x > 0; x--) {
+                                order.push(x + y);
+                            }
+                        delay = order;
+                        break;
+                }
+
+
+
+                $.each(arr, function(index, value) {
+
+                    if(value%cols<leftScrap){
+                        addLeft = 1;
+                    } else {
+                        addLeft = 0;
+                    }
+                    if(value%cols==0){
+                        tAppW = 0;
+                    }
+                    if(Math.floor(value/cols)<topScrap){
+                        addTop = 1;
+                    } else {
+                        addTop = 0;
+                    }
+
+                    switch(fx){
+                        case 'simpleFade':
+                            height = h;
+                            width = w;
+                            opacityOnGrid = 0;
+                            break;
+                        case 'curtainTopLeft':
+                            height = 0,
+                            width = Math.floor((w/cols)+addLeft+1),
+                            marginTop = '-'+Math.floor((h/rows)+addTop+1)+'px';
+                            break;
+                        case 'curtainTopRight':
+                            height = 0,
+                            width = Math.floor((w/cols)+addLeft+1),
+                            marginTop = '-'+Math.floor((h/rows)+addTop+1)+'px';
+                            break;
+                        case 'curtainBottomLeft':
+                            height = 0,
+                            width = Math.floor((w/cols)+addLeft+1),
+                            marginTop = Math.floor((h/rows)+addTop+1)+'px';
+                            break;
+                        case 'curtainBottomRight':
+                            height = 0,
+                            width = Math.floor((w/cols)+addLeft+1),
+                            marginTop = Math.floor((h/rows)+addTop+1)+'px';
+                            break;
+                        case 'curtainSliceLeft':
+                            height = 0,
+                            width = Math.floor((w/cols)+addLeft+1);
+                            if(value%2==0){
+                                marginTop = Math.floor((h/rows)+addTop+1)+'px';
+                            } else {
+                                marginTop = '-'+Math.floor((h/rows)+addTop+1)+'px';
+                            }
+                            break;
+                        case 'curtainSliceRight':
+                            height = 0,
+                            width = Math.floor((w/cols)+addLeft+1);
+                            if(value%2==0){
+                                marginTop = Math.floor((h/rows)+addTop+1)+'px';
+                            } else {
+                                marginTop = '-'+Math.floor((h/rows)+addTop+1)+'px';
+                            }
+                            break;
+                        case 'blindCurtainTopLeft':
+                            height = Math.floor((h/rows)+addTop+1),
+                            width = 0,
+                            marginLeft = '-'+Math.floor((w/cols)+addLeft+1)+'px';
+                            break;
+                        case 'blindCurtainTopRight':
+                            height = Math.floor((h/rows)+addTop+1),
+                            width = 0,
+                            marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
+                            break;
+                        case 'blindCurtainBottomLeft':
+                            height = Math.floor((h/rows)+addTop+1),
+                            width = 0,
+                            marginLeft = '-'+Math.floor((w/cols)+addLeft+1)+'px';
+                            break;
+                        case 'blindCurtainBottomRight':
+                            height = Math.floor((h/rows)+addTop+1),
+                            width = 0,
+                            marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
+                            break;
+                        case 'blindCurtainSliceBottom':
+                            height = Math.floor((h/rows)+addTop+1),
+                            width = 0;
+                            if(value%2==0){
+                                marginLeft = '-'+Math.floor((w/cols)+addLeft+1)+'px';
+                            } else {
+                                marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
+                            }
+                            break;
+                        case 'blindCurtainSliceTop':
+                            height = Math.floor((h/rows)+addTop+1),
+                            width = 0;
+                            if(value%2==0){
+                                marginLeft = '-'+Math.floor((w/cols)+addLeft+1)+'px';
+                            } else {
+                                marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
+                            }
+                            break;
+                        case 'stampede':
+                            height = 0;
+                            width = 0;
+                            marginLeft = (w*0.2)*(((index)%cols)-(cols-(Math.floor(cols/2))))+'px';
+                            marginTop = (h*0.2)*((Math.floor(index/cols)+1)-(rows-(Math.floor(rows/2))))+'px';
+                            break;
+                        case 'mosaic':
+                            height = 0;
+                            width = 0;
+                            break;
+                        case 'mosaicReverse':
+                            height = 0;
+                            width = 0;
+                            marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
+                            marginTop = Math.floor((h/rows)+addTop+1)+'px';
+                            break;
+                        case 'mosaicRandom':
+                            height = 0;
+                            width = 0;
+                            marginLeft = Math.floor((w/cols)+addLeft+1)*0.5+'px';
+                            marginTop = Math.floor((h/rows)+addTop+1)*0.5+'px';
+                            break;
+                        case 'mosaicSpiral':
+                            height = 0;
+                            width = 0;
+                            marginLeft = Math.floor((w/cols)+addLeft+1)*0.5+'px';
+                            marginTop = Math.floor((h/rows)+addTop+1)*0.5+'px';
+                            break;
+                        case 'mosaicSpiralReverse':
+                            height = 0;
+                            width = 0;
+                            marginLeft = Math.floor((w/cols)+addLeft+1)*0.5+'px';
+                            marginTop = Math.floor((h/rows)+addTop+1)*0.5+'px';
+                            break;
+                        case 'topLeftBottomRight':
+                            height = 0;
+                            width = 0;
+                            break;
+                        case 'bottomRightTopLeft':
+                            height = 0;
+                            width = 0;
+                            marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
+                            marginTop = Math.floor((h/rows)+addTop+1)+'px';
+                            break;
+                        case 'bottomLeftTopRight':
+                            height = 0;
+                            width = 0;
+                            marginLeft = 0;
+                            marginTop = Math.floor((h/rows)+addTop+1)+'px';
+                            break;
+                        case 'topRightBottomLeft':
+                            height = 0;
+                            width = 0;
+                            marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
+                            marginTop = 0;
+                            break;
+                        case 'scrollRight':
+                            height = h;
+                            width = w;
+                            marginLeft = -w;
+                            break;
+                        case 'scrollLeft':
+                            height = h;
+                            width = w;
+                            marginLeft = w;
+                            break;
+                        case 'scrollTop':
+                            height = h;
+                            width = w;
+                            marginTop = h;
+                            break;
+                        case 'scrollBottom':
+                            height = h;
+                            width = w;
+                            marginTop = -h;
+                            break;
+                        case 'scrollHorz':
+                            height = h;
+                            width = w;
+                            if(vis==0 && slideI==amountSlide-1) {
+                                marginLeft = -w;
+                            } else if(vis<slideI  || (vis==amountSlide-1 && slideI==0)) {
+                                marginLeft = w;
+                            } else {
+                                marginLeft = -w;
+                            }
+                            break;
+                    }
+
+
+                    var tApp = $('.cameraappended:eq('+value+')',target);
+
+                    if(typeof u !== 'undefined'){
+                        clearInterval(u);
+                        clearTimeout(setT);
+                        setT = setTimeout(canvasLoader,transPeriod+difference);
+                    }
+
+
+                    if($(pagination).length){
+                        $('.camera_pag li',wrap).removeClass('cameracurrent');
+                        $('.camera_pag li',wrap).eq(slideI).addClass('cameracurrent');
+                    }
+
+                    if($(thumbs).length){
+                        $('li', thumbs).removeClass('cameracurrent');
+                        $('li', thumbs).eq(slideI).addClass('cameracurrent');
+                        $('li', thumbs).not('.cameracurrent').find('img').animate({
+                            opacity:.5
+                        },0);
+                        $('li.cameracurrent img', thumbs).animate({
+                            opacity:1
+                        },0);
+                        $('li', thumbs).hover(function(){
+                            $('img',this).stop(true,false).animate({
+                                opacity:1
+                            },150);
+                        },function(){
+                            if(!$(this).hasClass('cameracurrent')){
+                                $('img',this).stop(true,false).animate({
+                                    opacity:.5
+                                },150);
+                            }
+                        });
+                    }
+
+
+                    var easedTime = parseFloat(transPeriod)+parseFloat(difference);
+
+                    function cameraeased() {
+
+                        $(this).addClass('cameraeased');
+                        if($('.cameraeased',target).length>=0){
+                            $(thumbs).css({
+                                visibility:'visible'
+                            });
+                        }
+                        if($('.cameraeased',target).length==blocks){
+
+                            thumbnailPos();
+
+                            $('.moveFromLeft, .moveFromRight, .moveFromTop, .moveFromBottom, .fadeIn, .fadeFromLeft, .fadeFromRight, .fadeFromTop, .fadeFromBottom',fakeHover).each(function(){
+                                $(this).css('visibility','hidden');
+                            });
+
+                            selector.eq(slideI).show().css('z-index','999').removeClass('cameranext').addClass('cameracurrent');
+                            selector.eq(vis).css('z-index','1').removeClass('cameracurrent');
+                            $('.cameraContent',fakeHover).eq(slideI).addClass('cameracurrent');
+                            if (vis >= 0) {
+                                $('.cameraContent',fakeHover).eq(vis).removeClass('cameracurrent');
+                            }
+
+                            opts.onEndTransition.call(this);
+
+                            if($('> div', elem).eq(slideI).attr('data-video')!='hide' && $('.cameraContent.cameracurrent .imgFake',fakeHover).length ){
+                                $('.cameraContent.cameracurrent .imgFake',fakeHover).click();
+                            }
+
+
+                            var lMoveIn = selector.eq(slideI).find('.fadeIn').length;
+                            var lMoveInContent = $('.cameraContent',fakeHover).eq(slideI).find('.moveFromLeft, .moveFromRight, .moveFromTop, .moveFromBottom, .fadeIn, .fadeFromLeft, .fadeFromRight, .fadeFromTop, .fadeFromBottom').length;
+
+                            if (lMoveIn!=0){
+                                $('.cameraSlide.cameracurrent .fadeIn',fakeHover).each(function(){
+                                    if($(this).attr('data-easing')!=''){
+                                        var easeMove = $(this).attr('data-easing');
+                                    } else {
+                                        var easeMove = easing;
+                                    }
+                                    var t = $(this);
+                                    if(typeof t.attr('data-outerWidth') === 'undefined' || t.attr('data-outerWidth') === false || t.attr('data-outerWidth') === '') {
+                                        var wMoveIn = t.outerWidth();
+                                        t.attr('data-outerWidth',wMoveIn);
+                                    } else {
+                                        var wMoveIn = t.attr('data-outerWidth');
+                                    }
+                                    if(typeof t.attr('data-outerHeight') === 'undefined' || t.attr('data-outerHeight') === false || t.attr('data-outerHeight') === '') {
+                                        var hMoveIn = t.outerHeight();
+                                        t.attr('data-outerHeight',hMoveIn);
+                                    } else {
+                                        var hMoveIn = t.attr('data-outerHeight');
+                                    }
+                                    //t.css('width',wMoveIn);
+                                    var pos = t.position();
+                                    var left = pos.left;
+                                    var top = pos.top;
+                                    var tClass = t.attr('class');
+                                    var ind = t.index();
+                                    var hRel = t.parents('.camerarelative').outerHeight();
+                                    var wRel = t.parents('.camerarelative').outerWidth();
+                                    if(tClass.indexOf("fadeIn") != -1) {
+                                        t.animate({
+                                            opacity:0
+                                        },0).css('visibility','visible').delay((time/lMoveIn)*(0.1*(ind-1))).animate({
+                                            opacity:1
+                                        },(time/lMoveIn)*0.15,easeMove);
+                                    } else {
+                                        t.css('visibility','visible');
+                                    }
+                                });
+                            }
+
+                            $('.cameraContent.cameracurrent',fakeHover).show();
+                            if (lMoveInContent!=0){
+
+                                $('.cameraContent.cameracurrent .moveFromLeft, .cameraContent.cameracurrent .moveFromRight, .cameraContent.cameracurrent .moveFromTop, .cameraContent.cameracurrent .moveFromBottom, .cameraContent.cameracurrent .fadeIn, .cameraContent.cameracurrent .fadeFromLeft, .cameraContent.cameracurrent .fadeFromRight, .cameraContent.cameracurrent .fadeFromTop, .cameraContent.cameracurrent .fadeFromBottom',fakeHover).each(function(){
+                                    if($(this).attr('data-easing')!=''){
+                                        var easeMove = $(this).attr('data-easing');
+                                    } else {
+                                        var easeMove = easing;
+                                    }
+                                    var t = $(this);
+                                    var pos = t.position();
+                                    var left = pos.left;
+                                    var top = pos.top;
+                                    var tClass = t.attr('class');
+                                    var ind = t.index();
+                                    var thisH = t.outerHeight();
+                                    if(tClass.indexOf("moveFromLeft") != -1) {
+                                        t.css({
+                                            'left':'-'+(w)+'px',
+                                            'right':'auto'
+                                        });
+                                        t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({
+                                            'left':pos.left
+                                            },(time/lMoveInContent)*0.15,easeMove);
+                                    } else if(tClass.indexOf("moveFromRight") != -1) {
+                                        t.css({
+                                            'left':w+'px',
+                                            'right':'auto'
+                                        });
+                                        t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({
+                                            'left':pos.left
+                                            },(time/lMoveInContent)*0.15,easeMove);
+                                    } else if(tClass.indexOf("moveFromTop") != -1) {
+                                        t.css({
+                                            'top':'-'+h+'px',
+                                            'bottom':'auto'
+                                        });
+                                        t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({
+                                            'top':pos.top
+                                            },(time/lMoveInContent)*0.15,easeMove,function(){
+                                            t.css({
+                                                top:'auto',
+                                                bottom:0

[... 478 lines stripped ...]