JAVASCRIPT   88

camera.js

Guest on 24th August 2021 01:35:54 PM

  1. // Camera slideshow v1.3.4 - a jQuery slideshow with many effects, transitions, easy to customize, using canvas and mobile ready, based on jQuery 1.4+
  2. // Copyright (c) 2
  3. by Manuel Masia - www.pixedelic.com
  4. // Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
  5. ;(function($){$.fn.camera = function(opts, callback) {
  6.        
  7.         var defaults = {
  8.                 alignment                       : 'center', //topLeft, topCenter, topRight, centerLeft, center, centerRight, bottomLeft, bottomCenter, bottomRight
  9.                
  10.                 autoAdvance                     : true, //true, false
  11.                
  12.                 mobileAutoAdvance       : true, //true, false. Auto-advancing for mobile devices
  13.                
  14.                 barDirection            : 'leftToRight',        //'leftToRight', 'rightToLeft', 'topToBottom', 'bottomToTop'
  15.                
  16.                 barPosition                     : 'bottom',     //'bottom', 'left', 'top', 'right'
  17.                
  18.                 cols                            : 6,
  19.                
  20.                 easing                          : 'easeInOutExpo',      //for the complete list http://jqueryui.com/demos/effect/easing.html
  21.                
  22.                 mobileEasing            : '',   //leave empty if you want to display the same easing on mobile devices and on desktop etc.
  23.                
  24.                 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'
  25.                                                                                 //you can also use more than one effect, just separate them with commas: 'simpleFade, scrollRight, scrollBottom'
  26.  
  27.                 mobileFx                        : '',   //leave empty if you want to display the same effect on mobile devices and on desktop etc.
  28.  
  29.                 gridDifference          : 250,  //to make the grid blocks slower than the slices, this value must be smaller than transPeriod
  30.                
  31.                 height                          : '50%',        //here you can type pixels (for instance '300px'), a percentage (relative to the width of the slideshow, for instance '50%') or 'auto'
  32.                
  33.                 imagePath                       : 'images/',    //he path to the image folder (it serves for the blank.gif, when you want to display videos)
  34.                
  35.                 hover                           : true, //true, false. Puase on state hover. Not available for mobile devices
  36.                                
  37.                 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)
  38.                
  39.                 loaderColor                     : '#eeeeee',
  40.                
  41.                 loaderBgColor           : '#222222',
  42.                
  43.                 loaderOpacity           : .8,   //0, .1, .2, .3, .4, .5, .6, .7, .8, .9, 1
  44.                
  45.                 loaderPadding           : 2,    //how many empty pixels you want to display between the loader and its background
  46.                
  47.                 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
  48.                                
  49.                 minHeight                       : '200px',      //you can also leave it blank
  50.                
  51.                 navigation                      : true, //true or false, to display or not the navigation buttons
  52.                
  53.                 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
  54.                
  55.                 mobileNavHover          : true, //same as above, but only for mobile devices
  56.                
  57.                 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
  58.                
  59.                 overlayer                       : true, //a layer on the images to prevent the users grab them simply by clicking the right button of their mouse (.camera_overlayer)
  60.                
  61.                 pagination                      : true,
  62.                
  63.                 playPause                       : true, //true or false, to display or not the play/pause buttons
  64.                
  65.                 pauseOnClick            : true, //true, false. It stops the slideshow when you click the sliders.
  66.                
  67.                 pieDiameter                     : 38,
  68.                
  69.                 piePosition                     : 'rightTop',   //'rightTop', 'leftTop', 'leftBottom', 'rightBottom'
  70.                
  71.                 portrait                        : false, //true, false. Select true if you don't want that your images are cropped
  72.                
  73.                 rows                            : 4,
  74.                
  75.                 slicedCols                      : 12,   //if 0 the same value of cols
  76.                
  77.                 slicedRows                      : 8,    //if 0 the same value of rows
  78.                
  79.                 slideOn                         : 'random',     //next, prev, random: decide if the transition effect will be applied to the current (prev) or the next slide
  80.                
  81.                 thumbnails                      : false,
  82.                
  83.                 time                            : 7000, //milliseconds between the end of the sliding effect and the start of the nex one
  84.                
  85.                 transPeriod                     : 1500, //lenght of the sliding effect in milliseconds
  86.                
  87. ////////callbacks
  88.  
  89.                 onEndTransition         : function() {  },      //this callback is invoked when the transition effect ends
  90.  
  91.                 onLoaded                        : function() {  },      //this callback is invoked when the image on a slide has completely loaded
  92.                
  93.                 onStartLoading          : function() {  },      //this callback is invoked when the image on a slide start loading
  94.                
  95.                 onStartTransition       : function() {  }       //this callback is invoked when the transition effect starts
  96.  
  97.     };
  98.        
  99.        
  100.         function isMobile() {
  101.                 if( navigator.userAgent.match(/Android/i) ||
  102.                         navigator.userAgent.match(/webOS/i) ||
  103.                         navigator.userAgent.match(/iPad/i) ||
  104.                         navigator.userAgent.match(/iPhone/i) ||
  105.                         navigator.userAgent.match(/iPod/i)
  106.                         ){
  107.                                 return true;
  108.                 }
  109.         }
  110.  
  111.         var opts = $.extend({}, defaults, opts);
  112.        
  113.         var wrap = $(this).addClass('camera_wrap');
  114.        
  115.         wrap.wrapInner(
  116.         '<div class="camera_src" />'
  117.                 ).wrapInner(
  118.             '<div class="camera_fakehover" />'
  119.                 );
  120.                
  121.         var fakeHover = $('.camera_fakehover',wrap);
  122.        
  123.         fakeHover.append(
  124.                 '<div class="camera_target"></div>'
  125.                 );
  126.         if(opts.overlayer == true){
  127.                 fakeHover.append(
  128.                         '<div class="camera_overlayer"></div>'
  129.                         )
  130.         }
  131.                 fakeHover.append(
  132.         '<div class="camera_target_content"></div>'
  133.                 );
  134.                
  135.         var loader;
  136.        
  137.         if(opts.loader=='pie' && $.browser.msie && $.browser.version < 9){
  138.                 loader = 'bar';
  139.         } else {
  140.                 loader = opts.loader;
  141.         }
  142.        
  143.         if(loader == 'pie'){
  144.                 fakeHover.append(
  145.                         '<div class="camera_pie"></div>'
  146.                         )
  147.         } else if (loader == 'bar') {
  148.                 fakeHover.append(
  149.                         '<div class="camera_bar"></div>'
  150.                         )
  151.         } else {
  152.                 fakeHover.append(
  153.                         '<div class="camera_bar" style="display:none"></div>'
  154.                         )
  155.         }
  156.        
  157.         if(opts.playPause==true){
  158.                 fakeHover.append(
  159.         '<div class="camera_commands"></div>'
  160.                 )
  161.         }
  162.                
  163.         if(opts.navigation==true){
  164.                 fakeHover.append(
  165.                         '<div class="camera_prev"><span></span></div>'
  166.                         ).append(
  167.                         '<div class="camera_next"><span></span></div>'
  168.                         );
  169.         }
  170.                
  171.         if(opts.thumbnails==true){
  172.                 wrap.append(
  173.                         '<div class="camera_thumbs_cont" />'
  174.                         );
  175.         }
  176.        
  177.         if(opts.thumbnails==true && opts.pagination!=true){
  178.                 $('.camera_thumbs_cont',wrap).wrap(
  179.                         '<div />'
  180.                         ).wrap(
  181.                                 '<div class="camera_thumbs" />'
  182.                         ).wrap(
  183.                                 '<div />'
  184.                         ).wrap(
  185.                                 '<div class="camera_command_wrap" />'
  186.                         );
  187.         }
  188.                
  189.         if(opts.pagination==true){
  190.                 wrap.append(
  191.                         '<div class="camera_pag"></div>'
  192.                         );
  193.         }
  194.                
  195.         wrap.append(
  196.                 '<div class="camera_loader"></div>'
  197.                 );
  198.                
  199.         $('.camera_caption',wrap).each(function(){
  200.                 $(this).wrapInner('<div />');
  201.         });
  202.                
  203.                
  204.         var pieID = 'pie_'+wrap.index(),
  205.                 elem = $('.camera_src',wrap),
  206.                 target = $('.camera_target',wrap),
  207.                 content = $('.camera_target_content',wrap),
  208.                 pieContainer = $('.camera_pie',wrap),
  209.                 barContainer = $('.camera_bar',wrap),
  210.                 prevNav = $('.camera_prev',wrap),
  211.                 nextNav = $('.camera_next',wrap),
  212.                 commands = $('.camera_commands',wrap),
  213.                 pagination = $('.camera_pag',wrap),
  214.                 thumbs = $('.camera_thumbs_cont',wrap);
  215.  
  216.        
  217.         var w,
  218.                 h;
  219.  
  220.  
  221.         var allImg = new Array();
  222.         $('> div', elem).each( function() {
  223.                 allImg.push($(this).attr('data-src'));
  224.         });
  225.        
  226.         var allLinks = new Array();
  227.         $('> div', elem).each( function() {
  228.                 if($(this).attr('data-link')){
  229.                         allLinks.push($(this).attr('data-link'));
  230.                 } else {
  231.                         allLinks.push('');
  232.                 }
  233.         });
  234.        
  235.         var allTargets = new Array();
  236.         $('> div', elem).each( function() {
  237.                 if($(this).attr('data-target')){
  238.                         allTargets.push($(this).attr('data-target'));
  239.                 } else {
  240.                         allTargets.push('');
  241.                 }
  242.         });
  243.        
  244.         var allPor = new Array();
  245.         $('> div', elem).each( function() {
  246.                 if($(this).attr('data-portrait')){
  247.                         allPor.push($(this).attr('data-portrait'));
  248.                 } else {
  249.                         allPor.push('');
  250.                 }
  251.         });
  252.        
  253.         var allAlign= new Array();
  254.         $('> div', elem).each( function() {
  255.                 if($(this).attr('data-alignment')){
  256.                         allAlign.push($(this).attr('data-alignment'));
  257.                 } else {
  258.                         allAlign.push('');
  259.                 }
  260.         });
  261.        
  262.                
  263.         var allThumbs = new Array();
  264.         $('> div', elem).each( function() {
  265.                 if($(this).attr('data-thumb')){
  266.                         allThumbs.push($(this).attr('data-thumb'));
  267.                 } else {
  268.                         allThumbs.push('');
  269.                 }
  270.         });
  271.        
  272.         var amountSlide = allImg.length;
  273.  
  274.         $(content).append('<div class="cameraContents" />');
  275.         var loopMove;
  276.         for (loopMove=0;loopMove<amountSlide;loopMove++)
  277.         {
  278.                 $('.cameraContents',content).append('<div class="cameraContent" />');
  279.                 if(allLinks[loopMove]!=''){
  280.                         //only for Wordpress plugin
  281.                         var dataBox = $('> div ',elem).eq(loopMove).attr('data-box');
  282.                         if(typeof dataBox !== 'undefined' && dataBox !== false && dataBox != '') {
  283.                                 dataBox = 'data-box="'+$('> div ',elem).eq(loopMove).attr('data-box')+'"';
  284.                         } else {
  285.                                 dataBox = '';
  286.                         }
  287.                         //
  288.                         $('.camera_target_content .cameraContent:eq('+loopMove+')',wrap).append('<a class="camera_link" href="'+allLinks[loopMove]+'" '+dataBox+' target="'+allTargets[loopMove]+'"></a>');
  289.                 }
  290.  
  291.         }
  292.         $('.camera_caption',wrap).each(function(){
  293.                 var ind = $(this).parent().index(),
  294.                         cont = wrap.find('.cameraContent').eq(ind);
  295.                 $(this).appendTo(cont);
  296.         });
  297.        
  298.         target.append('<div class="cameraCont" />');
  299.         var cameraCont = $('.cameraCont',wrap);
  300.        
  301.  
  302.        
  303.         var loop;
  304.         for (loop=0;loop<amountSlide;loop++)
  305.         {
  306.                 cameraCont.append('<div class="cameraSlide cameraSlide_'+loop+'" />');
  307.                 var div = $('> div:eq('+loop+')',elem);
  308.                 target.find('.cameraSlide_'+loop).clone(div);
  309.         }
  310.        
  311.        
  312.         function thumbnailVisible() {
  313.                 var wTh = $(thumbs).width();
  314.                 $('li', thumbs).removeClass('camera_visThumb');
  315.                 $('li', thumbs).each(function(){
  316.                         var pos = $(this).position(),
  317.                                 ulW = $('ul', thumbs).outerWidth(),
  318.                                 offUl = $('ul', thumbs).offset().left,
  319.                                 offDiv = $('> div',thumbs).offset().left,
  320.                                 ulLeft = offDiv-offUl;
  321.                                 if(ulLeft>0){
  322.                                         $('.camera_prevThumbs',camera_thumbs_wrap).removeClass('hideNav');
  323.                                 } else {
  324.                                         $('.camera_prevThumbs',camera_thumbs_wrap).addClass('hideNav');
  325.                                 }
  326.                                 if((ulW-ulLeft)>wTh){
  327.                                         $('.camera_nextThumbs',camera_thumbs_wrap).removeClass('hideNav');
  328.                                 } else {
  329.                                         $('.camera_nextThumbs',camera_thumbs_wrap).addClass('hideNav');
  330.                                 }
  331.                                 var left = pos.left,
  332.                                         right = pos.left+($(this).width());
  333.                                 if(right-ulLeft<=wTh && left-ulLeft>=0){
  334.                                         $(this).addClass('camera_visThumb');
  335.                                 }
  336.                 });
  337.         }
  338.        
  339.         $(window).bind('load resize pageshow',function(){
  340.                 thumbnailPos();
  341.                 thumbnailVisible();
  342.         });
  343.  
  344.  
  345.         cameraCont.append('<div class="cameraSlide cameraSlide_'+loop+'" />');
  346.        
  347.        
  348.         var started;
  349.        
  350.         wrap.show();
  351.         var w = target.width();
  352.         var h = target.height();
  353.        
  354.         var setPause;
  355.                
  356.         $(window).bind('resize pageshow',function(){
  357.                 if(started == true) {
  358.                         resizeImage();
  359.                 }
  360.                 $('ul', thumbs).animate({'margin-top':0},0,thumbnailPos);
  361.                 if(!elem.hasClass('paused')){
  362.                         elem.addClass('paused');
  363.                         if($('.camera_stop',camera_thumbs_wrap).length){
  364.                                 $('.camera_stop',camera_thumbs_wrap).hide()
  365.                                 $('.camera_play',camera_thumbs_wrap).show();
  366.                                 if(loader!='none'){
  367.                                         $('#'+pieID).hide();
  368.                                 }
  369.                         } else {
  370.                                 if(loader!='none'){
  371.                                         $('#'+pieID).hide();
  372.                                 }
  373.                         }
  374.                         clearTimeout(setPause);
  375.                         setPause = setTimeout(function(){
  376.                                 elem.removeClass('paused');
  377.                                 if($('.camera_play',camera_thumbs_wrap).length){
  378.                                         $('.camera_play',camera_thumbs_wrap).hide();
  379.                                         $('.camera_stop',camera_thumbs_wrap).show();
  380.                                         if(loader!='none'){
  381.                                                 $('#'+pieID).fadeIn();
  382.                                         }
  383.                                 } else {
  384.                                         if(loader!='none'){
  385.                                                 $('#'+pieID).fadeIn();
  386.                                         }
  387.                                 }
  388.                         },1500);
  389.                 }
  390.         });
  391.        
  392.         function resizeImage(){
  393.                 var res;
  394.                 function resizeImageWork(){
  395.                         w = wrap.width();
  396.                         if(opts.height.indexOf('%')!=-1) {
  397.                                 var startH = Math.round(w / (100/parseFloat(opts.height)));
  398.                                 if(opts.minHeight != '' && startH < parseFloat(opts.minHeight)){
  399.                                         h = parseFloat(opts.minHeight);
  400.                                 } else {
  401.                                         h = startH;
  402.                                 }
  403.                                 wrap.css({height:h});
  404.                         } else if (opts.height=='auto') {
  405.                                 h = wrap.height();
  406.                         } else {
  407.                                 h = parseFloat(opts.height);
  408.                                 wrap.css({height:h});
  409.                         }
  410.                         $('.camerarelative',target).css({'width':w,'height':h});
  411.                         $('.imgLoaded',target).each(function(){
  412.                                 var t = $(this),
  413.                                         wT = t.attr('width'),
  414.                                         hT = t.attr('height'),
  415.                                         imgLoadIn = t.index(),
  416.                                         mTop,
  417.                                         mLeft,
  418.                                         alignment = t.attr('data-alignment'),
  419.                                         portrait =  t.attr('data-portrait');
  420.                                        
  421.                                         if(typeof alignment === 'undefined' || alignment === false || alignment === ''){
  422.                                                 alignment = opts.alignment;
  423.                                         }
  424.                                        
  425.                                         if(typeof portrait === 'undefined' || portrait === false || portrait === ''){
  426.                                                 portrait = opts.portrait;
  427.                                         }
  428.                                                                                
  429.                                         if(portrait==false||portrait=='false'){
  430.                                                 if((wT/hT)<(w/h)) {
  431.                                                         var r = w / wT;
  432.                                                         var d = (Math.abs(h - (hT*r)))*0.5;
  433.                                                         switch(alignment){
  434.                                                                 case 'topLeft':
  435.                                                                         mTop = 0;
  436.                                                                         break;
  437.                                                                 case 'topCenter':
  438.                                                                         mTop = 0;
  439.                                                                         break;
  440.                                                                 case 'topRight':
  441.                                                                         mTop = 0;
  442.                                                                         break;
  443.                                                                 case 'centerLeft':
  444.                                                                         mTop = '-'+d+'px';
  445.                                                                         break;
  446.                                                                 case 'center':
  447.                                                                         mTop = '-'+d+'px';
  448.                                                                         break;
  449.                                                                 case 'centerRight':
  450.                                                                         mTop = '-'+d+'px';
  451.                                                                         break;
  452.                                                                 case 'bottomLeft':
  453.                                                                         mTop = '-'+d*2+'px';
  454.                                                                         break;
  455.                                                                 case 'bottomCenter':
  456.                                                                         mTop = '-'+d*2+'px';
  457.                                                                         break;
  458.                                                                 case 'bottomRight':
  459.                                                                         mTop = '-'+d*2+'px';
  460.                                                                         break;
  461.                                                         }
  462.                                                         t.css({
  463.                                                                 'height' : hT*r,
  464.                                                                 'margin-left' : 0,
  465.                                                                 'margin-right' : 0,
  466.                                                                 'margin-top' : mTop,
  467.                                                                 'position' : 'absolute',
  468.                                                                 'visibility' : 'visible',
  469.                                                                 'width' : w
  470.                                                         });
  471.                                                 }
  472.                                                 else {
  473.                                                         var r = h / hT;
  474.                                                         var d = (Math.abs(w - (wT*r)))*0.5;
  475.                                                         switch(alignment){
  476.                                                                 case 'topLeft':
  477.                                                                         mLeft = 0;
  478.                                                                         break;
  479.                                                                 case 'topCenter':
  480.                                                                         mLeft = '-'+d+'px';
  481.                                                                         break;
  482.                                                                 case 'topRight':
  483.                                                                         mLeft = '-'+d*2+'px';
  484.                                                                         break;
  485.                                                                 case 'centerLeft':
  486.                                                                         mLeft = 0;
  487.                                                                         break;
  488.                                                                 case 'center':
  489.                                                                         mLeft = '-'+d+'px';
  490.                                                                         break;
  491.                                                                 case 'centerRight':
  492.                                                                         mLeft = '-'+d*2+'px';
  493.                                                                         break;
  494.                                                                 case 'bottomLeft':
  495.                                                                         mLeft = 0;
  496.                                                                         break;
  497.                                                                 case 'bottomCenter':
  498.                                                                         mLeft = '-'+d+'px';
  499.                                                                         break;
  500.                                                                 case 'bottomRight':
  501.                                                                         mLeft = '-'+d*2+'px';
  502.                                                                         break;
  503.                                                         }
  504.                                                         t.css({
  505.                                                                 'height' : h,
  506.                                                                 'margin-left' : mLeft,
  507.                                                                 'margin-right' : mLeft,
  508.                                                                 'margin-top' : 0,
  509.                                                                 'position' : 'absolute',
  510.                                                                 'visibility' : 'visible',
  511.                                                                 'width' : wT*r
  512.                                                         });
  513.                                                 }
  514.                                         } else {
  515.                                                 if((wT/hT)<(w/h)) {
  516.                                                         var r = h / hT;
  517.                                                         var d = (Math.abs(w - (wT*r)))*0.5;
  518.                                                         switch(alignment){
  519.                                                                 case 'topLeft':
  520.                                                                         mLeft = 0;
  521.                                                                         break;
  522.                                                                 case 'topCenter':
  523.                                                                         mLeft = d+'px';
  524.                                                                         break;
  525.                                                                 case 'topRight':
  526.                                                                         mLeft = d*2+'px';
  527.                                                                         break;
  528.                                                                 case 'centerLeft':
  529.                                                                         mLeft = 0;
  530.                                                                         break;
  531.                                                                 case 'center':
  532.                                                                         mLeft = d+'px';
  533.                                                                         break;
  534.                                                                 case 'centerRight':
  535.                                                                         mLeft = d*2+'px';
  536.                                                                         break;
  537.                                                                 case 'bottomLeft':
  538.                                                                         mLeft = 0;
  539.                                                                         break;
  540.                                                                 case 'bottomCenter':
  541.                                                                         mLeft = d+'px';
  542.                                                                         break;
  543.                                                                 case 'bottomRight':
  544.                                                                         mLeft = d*2+'px';
  545.                                                                         break;
  546.                                                         }
  547.                                                         t.css({
  548.                                                                 'height' : h,
  549.                                                                 'margin-left' : mLeft,
  550.                                                                 'margin-right' : mLeft,
  551.                                                                 'margin-top' : 0,
  552.                                                                 'position' : 'absolute',
  553.                                                                 'visibility' : 'visible',
  554.                                                                 'width' : wT*r
  555.                                                         });
  556.                                                 }
  557.                                                 else {
  558.                                                         var r = w / wT;
  559.                                                         var d = (Math.abs(h - (hT*r)))*0.5;
  560.                                                         switch(alignment){
  561.                                                                 case 'topLeft':
  562.                                                                         mTop = 0;
  563.                                                                         break;
  564.                                                                 case 'topCenter':
  565.                                                                         mTop = 0;
  566.                                                                         break;
  567.                                                                 case 'topRight':
  568.                                                                         mTop = 0;
  569.                                                                         break;
  570.                                                                 case 'centerLeft':
  571.                                                                         mTop = d+'px';
  572.                                                                         break;
  573.                                                                 case 'center':
  574.                                                                         mTop = d+'px';
  575.                                                                         break;
  576.                                                                 case 'centerRight':
  577.                                                                         mTop = d+'px';
  578.                                                                         break;
  579.                                                                 case 'bottomLeft':
  580.                                                                         mTop = d*2+'px';
  581.                                                                         break;
  582.                                                                 case 'bottomCenter':
  583.                                                                         mTop = d*2+'px';
  584.                                                                         break;
  585.                                                                 case 'bottomRight':
  586.                                                                         mTop = d*2+'px';
  587.                                                                         break;
  588.                                                         }
  589.                                                         t.css({
  590.                                                                 'height' : hT*r,
  591.                                                                 'margin-left' : 0,
  592.                                                                 'margin-right' : 0,
  593.                                                                 'margin-top' : mTop,
  594.                                                                 'position' : 'absolute',
  595.                                                                 'visibility' : 'visible',
  596.                                                                 'width' : w
  597.                                                         });
  598.                                                 }
  599.                                         }
  600.                         });
  601.                 }
  602.                 if (started == true) {
  603.                         clearTimeout(res);
  604.                         res = setTimeout(resizeImageWork,200);
  605.                 } else {
  606.                         resizeImageWork();
  607.                 }
  608.                
  609.                 started = true;
  610.         }
  611.        
  612.        
  613.         var u,
  614.                 setT;
  615.  
  616.         var clickEv,
  617.                 autoAdv,
  618.                 navHover,
  619.                 commands,
  620.                 pagination;
  621.  
  622.         var videoHover,
  623.                 videoPresent;
  624.                
  625.         if(isMobile() && opts.mobileAutoAdvance!=''){
  626.                 autoAdv = opts.mobileAutoAdvance;
  627.         } else {
  628.                 autoAdv = opts.autoAdvance;
  629.         }
  630.        
  631.         if(autoAdv==false){
  632.                 elem.addClass('paused');
  633.         }
  634.  
  635.         if(isMobile() && opts.mobileNavHover!=''){
  636.                 navHover = opts.mobileNavHover;
  637.         } else {
  638.                 navHover = opts.navigationHover;
  639.         }
  640.  
  641.         if(elem.length!=0){
  642.                        
  643.                 var selector = $('.cameraSlide',target);
  644.                 selector.wrapInner('<div class="camerarelative" />');
  645.                
  646.                 var navSlide;
  647.                        
  648.                 var barDirection = opts.barDirection;
  649.        
  650.                 var camera_thumbs_wrap = wrap;
  651.  
  652.  
  653.                 $('iframe',fakeHover).each(function(){
  654.                         var t = $(this);
  655.                         var src = t.attr('src');
  656.                         t.attr('data-src',src);
  657.                         var divInd = t.parent().index('.camera_src > div');
  658.                         $('.camera_target_content .cameraContent:eq('+divInd+')',wrap).append(t);
  659.                 });
  660.                 function imgFake() {
  661.                                 $('iframe',fakeHover).each(function(){
  662.                                         $('.camera_caption',fakeHover).show();
  663.                                         var t = $(this);
  664.                                         var cloneSrc = t.attr('data-src');
  665.                                         t.attr('src',cloneSrc);
  666.                                         var imgFakeUrl = opts.imagePath+'blank.gif';
  667.                                         var imgFake = new Image();
  668.                                         imgFake.src = imgFakeUrl;
  669.                                         if(opts.height.indexOf('%')!=-1) {
  670.                                                 var startH = Math.round(w / (100/parseFloat(opts.height)));
  671.                                                 if(opts.minHeight != '' && startH < parseFloat(opts.minHeight)){
  672.                                                         h = parseFloat(opts.minHeight);
  673.                                                 } else {
  674.                                                         h = startH;
  675.                                                 }
  676.                                         } else if (opts.height=='auto') {
  677.                                                 h = wrap.height();
  678.                                         } else {
  679.                                                 h = parseFloat(opts.height);
  680.                                         }
  681.                                         t.after($(imgFake).attr({'class':'imgFake','width':w,'height':h}));
  682.                                         var clone = t.clone();
  683.                                         t.remove();
  684.                                         $(imgFake).bind('click',function(){
  685.                                                 if($(this).css('position')=='absolute') {
  686.                                                         $(this).remove();
  687.                                                         if(cloneSrc.indexOf('vimeo') != -1 || cloneSrc.indexOf('youtube') != -1) {
  688.                                                                 if(cloneSrc.indexOf('?') != -1){
  689.                                                                         autoplay = '&autoplay=1';
  690.                                                                 } else {
  691.                                                                         autoplay = '?autoplay=1';
  692.                                                                 }
  693.                                                         } else if(cloneSrc.indexOf('dailymotion') != -1) {
  694.                                                                 if(cloneSrc.indexOf('?') != -1){
  695.                                                                         autoplay = '&autoPlay=1';
  696.                                                                 } else {
  697.                                                                         autoplay = '?autoPlay=1';
  698.                                                                 }
  699.                                                         }
  700.                                                         clone.attr('src',cloneSrc+autoplay);
  701.                                                         videoPresent = true;
  702.                                                 } else {
  703.                                                         $(this).css({position:'absolute',top:0,left:0,zIndex:10}).after(clone);
  704.                                                         clone.css({position:'absolute',top:0,left:0,zIndex:9});
  705.                                                 }
  706.                                         });
  707.                                 });
  708.                 }
  709.                
  710.                 imgFake();
  711.                
  712.                
  713.                 if(opts.hover==true){
  714.                         if(!isMobile()){
  715.                                 fakeHover.hover(function(){
  716.                                         elem.addClass('hovered');
  717.                                 },function(){
  718.                                         elem.removeClass('hovered');
  719.                                 });
  720.                         }
  721.                 }
  722.  
  723.                 if(navHover==true){
  724.                         $(prevNav,wrap).animate({opacity:0},0);
  725.                         $(nextNav,wrap).animate({opacity:0},0);
  726.                         $(commands,wrap).animate({opacity:0},0);
  727.                         if(isMobile()){
  728.                                 fakeHover.live('vmouseover',function(){
  729.                                         $(prevNav,wrap).animate({opacity:1},200);
  730.                                         $(nextNav,wrap).animate({opacity:1},200);
  731.                                         $(commands,wrap).animate({opacity:1},200);
  732.                                 });
  733.                                 fakeHover.live('vmouseout',function(){
  734.                                         $(prevNav,wrap).delay(500).animate({opacity:0},200);
  735.                                         $(nextNav,wrap).delay(500).animate({opacity:0},200);
  736.                                         $(commands,wrap).delay(500).animate({opacity:0},200);
  737.                                 });
  738.                         } else {
  739.                                 fakeHover.hover(function(){
  740.                                         $(prevNav,wrap).animate({opacity:1},200);
  741.                                         $(nextNav,wrap).animate({opacity:1},200);
  742.                                         $(commands,wrap).animate({opacity:1},200);
  743.                                 },function(){
  744.                                         $(prevNav,wrap).animate({opacity:0},200);
  745.                                         $(nextNav,wrap).animate({opacity:0},200);
  746.                                         $(commands,wrap).animate({opacity:0},200);
  747.                                 });
  748.                         }
  749.                 }
  750.                
  751.        
  752.                 $('.camera_stop',camera_thumbs_wrap).live('click',function(){
  753.                         autoAdv = false;
  754.                         elem.addClass('paused');
  755.                         if($('.camera_stop',camera_thumbs_wrap).length){
  756.                                 $('.camera_stop',camera_thumbs_wrap).hide()
  757.                                 $('.camera_play',camera_thumbs_wrap).show();
  758.                                 if(loader!='none'){
  759.                                         $('#'+pieID).hide();
  760.                                 }
  761.                         } else {
  762.                                 if(loader!='none'){
  763.                                         $('#'+pieID).hide();
  764.                                 }
  765.                         }
  766.                 });
  767.        
  768.                 $('.camera_play',camera_thumbs_wrap).live('click',function(){
  769.                         autoAdv = true;
  770.                         elem.removeClass('paused');
  771.                         if($('.camera_play',camera_thumbs_wrap).length){
  772.                                 $('.camera_play',camera_thumbs_wrap).hide();
  773.                                 $('.camera_stop',camera_thumbs_wrap).show();
  774.                                 if(loader!='none'){
  775.                                         $('#'+pieID).show();
  776.                                 }
  777.                         } else {
  778.                                 if(loader!='none'){
  779.                                         $('#'+pieID).show();
  780.                                 }
  781.                         }
  782.                 });
  783.        
  784.                 if(opts.pauseOnClick==true){
  785.                         $('.camera_target_content',fakeHover).mouseup(function(){
  786.                                 autoAdv = false;
  787.                                 elem.addClass('paused');
  788.                                 $('.camera_stop',camera_thumbs_wrap).hide()
  789.                                 $('.camera_play',camera_thumbs_wrap).show();
  790.                                 $('#'+pieID).hide();
  791.                         });
  792.                 }
  793.                 $('.cameraContent, .imgFake',fakeHover).hover(function(){
  794.                         videoHover = true;
  795.                 },function(){
  796.                         videoHover = false;
  797.                 });
  798.                
  799.                 $('.cameraContent, .imgFake',fakeHover).bind('click',function(){
  800.                         if(videoPresent == true && videoHover == true) {
  801.                                 autoAdv = false;
  802.                                 $('.camera_caption',fakeHover).hide();
  803.                                 elem.addClass('paused');
  804.                                 $('.camera_stop',camera_thumbs_wrap).hide()
  805.                                 $('.camera_play',camera_thumbs_wrap).show();
  806.                                 $('#'+pieID).hide();
  807.                         }
  808.                 });
  809.                
  810.                
  811.         }
  812.        
  813.        
  814.                 function shuffle(arr) {
  815.                         for(
  816.                           var j, x, i = arr.length; i;
  817.                           j = parseInt(Math.random() * i),
  818.                           x = arr[--i], arr[i] = arr[j], arr[j] = x
  819.                         );
  820.                         return arr;
  821.                 }
  822.        
  823.                 function isInteger(s) {
  824.                         return Math.ceil(s) == Math.floor(s);
  825.                 }      
  826.        
  827.                 if (loader != 'pie') {
  828.                         barContainer.append('<span class="camera_bar_cont" />');
  829.                         $('.camera_bar_cont',barContainer)
  830.                                 .animate({opacity:opts.loaderOpacity},0)
  831.                                 .css({'position':'absolute', 'left':0, 'right':0, 'top':0, 'bottom':0, 'background-color':opts.loaderBgColor})
  832.                                 .append('<span id="'+pieID+'" />');
  833.                         $('#'+pieID).animate({opacity:0},0);
  834.                         var canvas = $('#'+pieID);
  835.                         canvas.css({'position':'absolute', 'background-color':opts.loaderColor});
  836.                         switch(opts.barPosition){
  837.                                 case 'left':
  838.                                         barContainer.css({right:'auto',width:opts.loaderStroke});
  839.                                         break;
  840.                                 case 'right':
  841.                                         barContainer.css({left:'auto',width:opts.loaderStroke});
  842.                                         break;
  843.                                 case 'top':
  844.                                         barContainer.css({bottom:'auto',height:opts.loaderStroke});
  845.                                         break;
  846.                                 case 'bottom':
  847.                                         barContainer.css({top:'auto',height:opts.loaderStroke});
  848.                                         break;
  849.                         }
  850.                         switch(barDirection){
  851.                                 case 'leftToRight':
  852.                                         canvas.css({'left':0, 'right':0, 'top':opts.loaderPadding, 'bottom':opts.loaderPadding});
  853.                                         break;
  854.                                 case 'rightToLeft':
  855.                                         canvas.css({'left':0, 'right':0, 'top':opts.loaderPadding, 'bottom':opts.loaderPadding});
  856.                                         break;
  857.                                 case 'topToBottom':
  858.                                         canvas.css({'left':opts.loaderPadding, 'right':opts.loaderPadding, 'top':0, 'bottom':0});
  859.                                         break;
  860.                                 case 'bottomToTop':
  861.                                         canvas.css({'left':opts.loaderPadding, 'right':opts.loaderPadding, 'top':0, 'bottom':0});
  862.                                         break;
  863.                         }
  864.                 } else {
  865.                         pieContainer.append('<canvas id="'+pieID+'"></canvas>');
  866.                         var G_vmlCanvasManager;
  867.                         var canvas = document.getElementById(pieID);
  868.                         canvas.setAttribute("width", opts.pieDiameter);
  869.                         canvas.setAttribute("height", opts.pieDiameter);
  870.                         var piePosition;
  871.                         switch(opts.piePosition){
  872.                                 case 'leftTop' :
  873.                                         piePosition = 'left:0; top:0;';
  874.                                         break;
  875.                                 case 'rightTop' :
  876.                                         piePosition = 'right:0; top:0;';
  877.                                         break;
  878.                                 case 'leftBottom' :
  879.                                         piePosition = 'left:0; bottom:0;';
  880.                                         break;
  881.                                 case 'rightBottom' :
  882.                                         piePosition = 'right:0; bottom:0;';
  883.                                         break;
  884.                         }
  885.                         canvas.setAttribute("style", "position:absolute; z-index:1002; "+piePosition);
  886.                         var rad;
  887.                         var radNew;
  888.        
  889.                         if (canvas && canvas.getContext) {
  890.                                 var ctx = canvas.getContext("2d");
  891.                                 ctx.rotate(Math.PI*(3/2));
  892.                                 ctx.translate(-opts.pieDiameter,0);
  893.                         }
  894.                
  895.                 }
  896.                 if(loader=='none' || autoAdv==false) {
  897.                         $('#'+pieID).hide();
  898.                         $('.camera_canvas_wrap',camera_thumbs_wrap).hide();
  899.                 }
  900.                
  901.                 if($(pagination).length) {
  902.                         $(pagination).append('<ul class="camera_pag_ul" />');
  903.                         var li;
  904.                         for (li = 0; li < amountSlide; li++){
  905.                                 $('.camera_pag_ul',wrap).append('<li class="pag_nav_'+li+'" style="position:relative; z-index:1002"><span><span>'+li+'</span></span></li>');
  906.                         }
  907.                         $('.camera_pag_ul li',wrap).hover(function(){
  908.                                 $(this).addClass('camera_hover');
  909.                                 if($('.camera_thumb',this).length){
  910.                                         var wTh = $('.camera_thumb',this).outerWidth(),
  911.                                         hTh = $('.camera_thumb',this).outerHeight(),
  912.                                         wTt = $(this).outerWidth();
  913.                                         $('.camera_thumb',this).show().css({'top':'-'+hTh+'px','left':'-'+(wTh-wTt)/2+'px'}).animate({'opacity':1,'margin-top':'-3px'},200);
  914.                                         $('.thumb_arrow',this).show().animate({'opacity':1,'margin-top':'-3px'},200);
  915.                                 }
  916.                         },function(){
  917.                                 $(this).removeClass('camera_hover');
  918.                                 $('.camera_thumb',this).animate({'margin-top':'-20px','opacity':0},200,function(){
  919.                                         $(this).css({marginTop:'5px'}).hide();
  920.                                 });
  921.                                 $('.thumb_arrow',this).animate({'margin-top':'-20px','opacity':0},200,function(){
  922.                                         $(this).css({marginTop:'5px'}).hide();
  923.                                 });
  924.                         });
  925.                 }
  926.                        
  927.        
  928.        
  929.                 if($(thumbs).length) {
  930.                         var thumbUrl;
  931.                         if(!$(pagination).length) {
  932.                                 $(thumbs).append('<div />');
  933.                                 $(thumbs).before('<div class="camera_prevThumbs hideNav"><div></div></div>').before('<div class="camera_nextThumbs hideNav"><div></div></div>');
  934.                                 $('> div',thumbs).append('<ul />');
  935.                                 $.each(allThumbs, function(i, val) {
  936.                                         if($('> div', elem).eq(i).attr('data-thumb')!='') {
  937.                                                 var thumbUrl = $('> div', elem).eq(i).attr('data-thumb'),
  938.                                                         newImg = new Image();
  939.                                                 newImg.src = thumbUrl;
  940.                                                 $('ul',thumbs).append('<li class="pix_thumb pix_thumb_'+i+'" />');
  941.                                                 $('li.pix_thumb_'+i,thumbs).append($(newImg).attr('class','camera_thumb'));
  942.                                         }
  943.                                 });
  944.                         } else {
  945.                                 $.each(allThumbs, function(i, val) {
  946.                                         if($('> div', elem).eq(i).attr('data-thumb')!='') {
  947.                                                 var thumbUrl = $('> div', elem).eq(i).attr('data-thumb'),
  948.                                                         newImg = new Image();
  949.                                                 newImg.src = thumbUrl;
  950.                                                 $('li.pag_nav_'+i,pagination).append($(newImg).attr('class','camera_thumb').css({'position':'absolute'}).animate({opacity:0},0));
  951.                                                 $('li.pag_nav_'+i+' > img',pagination).after('<div class="thumb_arrow" />');
  952.                                                 $('li.pag_nav_'+i+' > .thumb_arrow',pagination).animate({opacity:0},0);
  953.                                         }
  954.                                 });
  955.                                 wrap.css({marginBottom:$(pagination).outerHeight()});
  956.                         }
  957.                 } else if(!$(thumbs).length && $(pagination).length) {
  958.                         wrap.css({marginBottom:$(pagination).outerHeight()});
  959.                 }
  960.  
  961.        
  962.                 var firstPos = true;
  963.  
  964.                 function thumbnailPos() {
  965.                         if($(thumbs).length && !$(pagination).length) {
  966.                                 var wTh = $(thumbs).outerWidth(),
  967.                                         owTh = $('ul > li',thumbs).outerWidth(),
  968.                                         pos = $('li.cameracurrent', thumbs).length ? $('li.cameracurrent', thumbs).position() : '',
  969.                                         ulW = ($('ul > li', thumbs).length * $('ul > li', thumbs).outerWidth()),
  970.                                         offUl = $('ul', thumbs).offset().left,
  971.                                         offDiv = $('> div', thumbs).offset().left,
  972.                                         ulLeft;
  973.  
  974.                                         if(offUl<0){
  975.                                                 ulLeft = '-'+ (offDiv-offUl);
  976.                                         } else {
  977.                                                 ulLeft = offDiv-offUl;
  978.                                         }
  979.                                        
  980.                                        
  981.                                        
  982.                                 if(firstPos == true) {
  983.                                         $('ul', thumbs).width($('ul > li', thumbs).length * $('ul > li', thumbs).outerWidth());
  984.                                         if($(thumbs).length && !$(pagination).lenght) {
  985.                                                 wrap.css({marginBottom:$(thumbs).outerHeight()});
  986.                                         }
  987.                                         thumbnailVisible();
  988.                                         /*I repeat this two lines because of a problem with iPhones*/
  989.                                         $('ul', thumbs).width($('ul > li', thumbs).length * $('ul > li', thumbs).outerWidth());
  990.                                         if($(thumbs).length && !$(pagination).lenght) {
  991.                                                 wrap.css({marginBottom:$(thumbs).outerHeight()});
  992.                                         }
  993.                                         /*...*/
  994.                                 }
  995.                                 firstPos = false;
  996.                                
  997.                                         var left = $('li.cameracurrent', thumbs).length ? pos.left : '',
  998.                                                 right = $('li.cameracurrent', thumbs).length ? pos.left+($('li.cameracurrent', thumbs).outerWidth()) : '';
  999.                                         if(left<$('li.cameracurrent', thumbs).outerWidth()) {
  1000.                                                 left = 0;
  1001.                                         }
  1002.                                         if(right-ulLeft>wTh){
  1003.                                                 if((left+wTh)<ulW){
  1004.                                                         $('ul', thumbs).animate({'margin-left':'-'+(left)+'px'},500,thumbnailVisible);
  1005.                                                 } else {
  1006.                                                         $('ul', thumbs).animate({'margin-left':'-'+($('ul', thumbs).outerWidth()-wTh)+'px'},500,thumbnailVisible);
  1007.                                                 }
  1008.                                         } else if(left-ulLeft<0) {
  1009.                                                 $('ul', thumbs).animate({'margin-left':'-'+(left)+'px'},500,thumbnailVisible);
  1010.                                         } else {
  1011.                                                 $('ul', thumbs).css({'margin-left':'auto', 'margin-right':'auto'});
  1012.                                                 setTimeout(thumbnailVisible,100);
  1013.                                         }
  1014.                                        
  1015.                         }
  1016.                 }
  1017.  
  1018.                 if($(commands).length) {
  1019.                         $(commands).append('<div class="camera_play"></div>').append('<div class="camera_stop"></div>');
  1020.                         if(autoAdv==true){
  1021.                                 $('.camera_play',camera_thumbs_wrap).hide();
  1022.                                 $('.camera_stop',camera_thumbs_wrap).show();
  1023.                         } else {
  1024.                                 $('.camera_stop',camera_thumbs_wrap).hide();
  1025.                                 $('.camera_play',camera_thumbs_wrap).show();
  1026.                         }
  1027.                        
  1028.                 }
  1029.                        
  1030.                        
  1031.                 function canvasLoader() {
  1032.                         rad = 0;
  1033.                         var barWidth = $('.camera_bar_cont',camera_thumbs_wrap).width(),
  1034.                                 barHeight = $('.camera_bar_cont',camera_thumbs_wrap).height();
  1035.  
  1036.                         if (loader != 'pie') {
  1037.                                 switch(barDirection){
  1038.                                         case 'leftToRight':
  1039.                                                 $('#'+pieID).css({'right':barWidth});
  1040.                                                 break;
  1041.                                         case 'rightToLeft':
  1042.                                                 $('#'+pieID).css({'left':barWidth});
  1043.                                                 break;
  1044.                                         case 'topToBottom':
  1045.                                                 $('#'+pieID).css({'bottom':barHeight});
  1046.                                                 break;
  1047.                                         case 'bottomToTop':
  1048.                                                 $('#'+pieID).css({'top':barHeight});
  1049.                                                 break;
  1050.                                 }
  1051.                         } else {
  1052.                                 ctx.clearRect(0,0,opts.pieDiameter,opts.pieDiameter);
  1053.                         }
  1054.                 }
  1055.                
  1056.                
  1057.                 canvasLoader();
  1058.                
  1059.                
  1060.                 $('.moveFromLeft, .moveFromRight, .moveFromTop, .moveFromBottom, .fadeIn, .fadeFromLeft, .fadeFromRight, .fadeFromTop, .fadeFromBottom',fakeHover).each(function(){
  1061.                         $(this).css('visibility','hidden');
  1062.                 });
  1063.                
  1064.                 opts.onStartLoading.call(this);
  1065.                
  1066.                 nextSlide();
  1067.                
  1068.        
  1069.         /*************************** FUNCTION nextSlide() ***************************/
  1070.        
  1071.         function nextSlide(navSlide){
  1072.                 elem.addClass('camerasliding');
  1073.                
  1074.                 videoPresent = false;
  1075.                 var vis = parseFloat($('div.cameraSlide.cameracurrent',target).index());
  1076.  
  1077.                 if(navSlide>0){
  1078.                         var slideI = navSlide-1;
  1079.                 } else if (vis == amountSlide-1) {
  1080.                         var slideI = 0;
  1081.                 } else {
  1082.                         var slideI = vis+1;
  1083.                 }
  1084.                
  1085.                                
  1086.                 var slide = $('.cameraSlide:eq('+slideI+')',target);
  1087.                 var slideNext = $('.cameraSlide:eq('+(slideI+1)+')',target).addClass('cameranext');
  1088.                 if( vis != slideI+1 ) {
  1089.                         slideNext.hide();
  1090.                 }
  1091.                 $('.cameraContent',fakeHover).fadeOut(600);
  1092.                 $('.camera_caption',fakeHover).show();
  1093.                
  1094.                 $('.camerarelative',slide).append($('> div ',elem).eq(slideI).find('> div.camera_effected'));
  1095.  
  1096.                 $('.camera_target_content .cameraContent:eq('+slideI+')',wrap).append($('> div ',elem).eq(slideI).find('> div'));
  1097.                
  1098.                 if(!$('.imgLoaded',slide).length){
  1099.                         var imgUrl = allImg[slideI];
  1100.                         var imgLoaded = new Image();
  1101.                         imgLoaded.src = imgUrl +"?"+ new Date().getTime();
  1102.                         slide.css('visibility','hidden');
  1103.                         slide.prepend($(imgLoaded).attr('class','imgLoaded').css('visibility','hidden'));
  1104.                         var wT, hT;
  1105.                         if (!$(imgLoaded).get(0).complete || wT == '0' || hT == '0' || typeof wT === 'undefined' || wT === false || typeof hT === 'undefined' || hT === false) {
  1106.                                 $('.camera_loader',wrap).delay(500).fadeIn(400);
  1107.                                 imgLoaded.onload = function() {
  1108.                                         wT = imgLoaded.naturalWidth;
  1109.                                         hT = imgLoaded.naturalHeight;
  1110.                                         $(imgLoaded).attr('data-alignment',allAlign[slideI]).attr('data-portrait',allPor[slideI]);
  1111.                                         $(imgLoaded).attr('width',wT);
  1112.                                         $(imgLoaded).attr('height',hT);
  1113.                                         target.find('.cameraSlide_'+slideI).hide().css('visibility','visible');
  1114.                                         resizeImage();
  1115.                                         nextSlide(slideI+1);
  1116.                                 };
  1117.                         }
  1118.                 } else {
  1119.                         if( allImg.length > (slideI+1) && !$('.imgLoaded',slideNext).length ){
  1120.                                 var imgUrl2 = allImg[(slideI+1)];
  1121.                                 var imgLoaded2 = new Image();
  1122.                                 imgLoaded2.src = imgUrl2 +"?"+ new Date().getTime();
  1123.                                 slideNext.prepend($(imgLoaded2).attr('class','imgLoaded').css('visibility','hidden'));
  1124.                                 imgLoaded2.onload = function() {
  1125.                                         wT = imgLoaded2.naturalWidth;
  1126.                                         hT = imgLoaded2.naturalHeight;
  1127.                                         $(imgLoaded2).attr('data-alignment',allAlign[slideI+1]).attr('data-portrait',allPor[slideI+1]);
  1128.                                         $(imgLoaded2).attr('width',wT);
  1129.                                         $(imgLoaded2).attr('height',hT);
  1130.                                         resizeImage();
  1131.                                 };
  1132.                         }
  1133.                         opts.onLoaded.call(this);
  1134.                         if($('.camera_loader',wrap).is(':visible')){
  1135.                                 $('.camera_loader',wrap).fadeOut(400);
  1136.                         } else {
  1137.                                 $('.camera_loader',wrap).css({'visibility':'hidden'});
  1138.                                 $('.camera_loader',wrap).fadeOut(400,function(){
  1139.                                         $('.camera_loader',wrap).css({'visibility':'visible'});
  1140.                                 });
  1141.                         }
  1142.                         var rows = opts.rows,
  1143.                                 cols = opts.cols,
  1144.                                 couples = 1,
  1145.                                 difference = 0,
  1146.                                 dataSlideOn,
  1147.                                 time,
  1148.                                 transPeriod,
  1149.                                 fx,
  1150.                                 easing,
  1151.                                 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');
  1152.                                 marginLeft = 0,
  1153.                                 marginTop = 0,
  1154.                                 opacityOnGrid = 0;
  1155.                                
  1156.                                 if(opts.opacityOnGrid==true){
  1157.                                         opacityOnGrid = 0;
  1158.                                 } else {
  1159.                                         opacityOnGrid = 1;
  1160.                                 }
  1161.  
  1162.                        
  1163.                        
  1164.                         var dataFx = $(' > div',elem).eq(slideI).attr('data-fx');
  1165.                                
  1166.                         if(isMobile()&&opts.mobileFx!=''&&opts.mobileFx!='default'){
  1167.                                 fx = opts.mobileFx;
  1168.                         } else {
  1169.                                 if(typeof dataFx !== 'undefined' && dataFx!== false && dataFx!== 'default'){
  1170.                                         fx = dataFx;
  1171.                                 } else {
  1172.                                         fx = opts.fx;
  1173.                                 }
  1174.                         }
  1175.                        
  1176.                         if(fx=='random') {
  1177.                                 fx = shuffle(randomFx);
  1178.                                 fx = fx[0];
  1179.                         } else {
  1180.                                 fx = fx;
  1181.                                 if(fx.indexOf(',')>0){
  1182.                                         fx = fx.replace(/ /g,'');
  1183.                                         fx = fx.split(',');
  1184.                                         fx = shuffle(fx);
  1185.                                         fx = fx[0];
  1186.                                 }
  1187.                         }
  1188.                        
  1189.                         dataEasing = $(' > div',elem).eq(slideI).attr('data-easing');
  1190.                         mobileEasing = $(' > div',elem).eq(slideI).attr('data-mobileEasing');
  1191.  
  1192.                         if(isMobile()&&opts.mobileEasing!=''&&opts.mobileEasing!='default'){
  1193.                                 if(typeof mobileEasing !== 'undefined' && mobileEasing!== false && mobileEasing!== 'default') {
  1194.                                         easing = mobileEasing;
  1195.                                 } else {
  1196.                                         easing = opts.mobileEasing;
  1197.                                 }
  1198.                         } else {
  1199.                                 if(typeof dataEasing !== 'undefined' && dataEasing!== false && dataEasing!== 'default') {
  1200.                                         easing = dataEasing;
  1201.                                 } else {
  1202.                                         easing = opts.easing;
  1203.                                 }
  1204.                         }
  1205.        
  1206.                         dataSlideOn = $(' > div',elem).eq(slideI).attr('data-slideOn');
  1207.                         if(typeof dataSlideOn !== 'undefined' && dataSlideOn!== false){
  1208.                                 slideOn = dataSlideOn;
  1209.                         } else {
  1210.                                 if(opts.slideOn=='random'){
  1211.                                         var slideOn = new Array('next','prev');
  1212.                                         slideOn = shuffle(slideOn);
  1213.                                         slideOn = slideOn[0];
  1214.                                 } else {
  1215.                                         slideOn = opts.slideOn;
  1216.                                 }
  1217.                         }
  1218.                                
  1219.                         var dataTime = $(' > div',elem).eq(slideI).attr('data-time');
  1220.                         if(typeof dataTime !== 'undefined' && dataTime!== false && dataTime!== ''){
  1221.                                 time = parseFloat(dataTime);
  1222.                         } else {
  1223.                                 time = opts.time;
  1224.                         }
  1225.                                
  1226.                         var dataTransPeriod = $(' > div',elem).eq(slideI).attr('data-transPeriod');
  1227.                         if(typeof dataTransPeriod !== 'undefined' && dataTransPeriod!== false && dataTransPeriod!== ''){
  1228.                                 transPeriod = parseFloat(dataTransPeriod);
  1229.                         } else {
  1230.                                 transPeriod = opts.transPeriod;
  1231.                         }
  1232.                                
  1233.                         if(!$(elem).hasClass('camerastarted')){
  1234.                                 fx = 'simpleFade';
  1235.                                 slideOn = 'next';
  1236.                                 easing = '';
  1237.                                 transPeriod = 400;
  1238.                                 $(elem).addClass('camerastarted')
  1239.                         }
  1240.        
  1241.                         switch(fx){
  1242.                                 case 'simpleFade':
  1243.                                         cols = 1;
  1244.                                         rows = 1;
  1245.                                                 break;
  1246.                                 case 'curtainTopLeft':
  1247.                                         if(opts.slicedCols == 0) {
  1248.                                                 cols = opts.cols;
  1249.                                         } else {
  1250.                                                 cols = opts.slicedCols;
  1251.                                         }
  1252.                                         rows = 1;
  1253.                                                 break;
  1254.                                 case 'curtainTopRight':
  1255.                                         if(opts.slicedCols == 0) {
  1256.                                                 cols = opts.cols;
  1257.                                         } else {
  1258.                                                 cols = opts.slicedCols;
  1259.                                         }
  1260.                                         rows = 1;
  1261.                                                 break;
  1262.                                 case 'curtainBottomLeft':
  1263.                                         if(opts.slicedCols == 0) {
  1264.                                                 cols = opts.cols;
  1265.                                         } else {
  1266.                                                 cols = opts.slicedCols;
  1267.                                         }
  1268.                                         rows = 1;
  1269.                                                 break;
  1270.                                 case 'curtainBottomRight':
  1271.                                         if(opts.slicedCols == 0) {
  1272.                                                 cols = opts.cols;
  1273.                                         } else {
  1274.                                                 cols = opts.slicedCols;
  1275.                                         }
  1276.                                         rows = 1;
  1277.                                                 break;
  1278.                                 case 'curtainSliceLeft':
  1279.                                         if(opts.slicedCols == 0) {
  1280.                                                 cols = opts.cols;
  1281.                                         } else {
  1282.                                                 cols = opts.slicedCols;
  1283.                                         }
  1284.                                         rows = 1;
  1285.                                                 break;
  1286.                                 case 'curtainSliceRight':
  1287.                                         if(opts.slicedCols == 0) {
  1288.                                                 cols = opts.cols;
  1289.                                         } else {
  1290.                                                 cols = opts.slicedCols;
  1291.                                         }
  1292.                                         rows = 1;
  1293.                                                 break;
  1294.                                 case 'blindCurtainTopLeft':
  1295.                                         if(opts.slicedRows == 0) {
  1296.                                                 rows = opts.rows;
  1297.                                         } else {
  1298.                                                 rows = opts.slicedRows;
  1299.                                         }
  1300.                                         cols = 1;
  1301.                                                 break;
  1302.                                 case 'blindCurtainTopRight':
  1303.                                         if(opts.slicedRows == 0) {
  1304.                                                 rows = opts.rows;
  1305.                                         } else {
  1306.                                                 rows = opts.slicedRows;
  1307.                                         }
  1308.                                         cols = 1;
  1309.                                                 break;
  1310.                                 case 'blindCurtainBottomLeft':
  1311.                                         if(opts.slicedRows == 0) {
  1312.                                                 rows = opts.rows;
  1313.                                         } else {
  1314.                                                 rows = opts.slicedRows;
  1315.                                         }
  1316.                                         cols = 1;
  1317.                                                 break;
  1318.                                 case 'blindCurtainBottomRight':
  1319.                                         if(opts.slicedRows == 0) {
  1320.                                                 rows = opts.rows;
  1321.                                         } else {
  1322.                                                 rows = opts.slicedRows;
  1323.                                         }
  1324.                                         cols = 1;
  1325.                                                 break;
  1326.                                 case 'blindCurtainSliceTop':
  1327.                                         if(opts.slicedRows == 0) {
  1328.                                                 rows = opts.rows;
  1329.                                         } else {
  1330.                                                 rows = opts.slicedRows;
  1331.                                         }
  1332.                                         cols = 1;
  1333.                                                 break;
  1334.                                 case 'blindCurtainSliceBottom':
  1335.                                         if(opts.slicedRows == 0) {
  1336.                                                 rows = opts.rows;
  1337.                                         } else {
  1338.                                                 rows = opts.slicedRows;
  1339.                                         }
  1340.                                         cols = 1;
  1341.                                                 break;
  1342.                                 case 'stampede':
  1343.                                         difference = '-'+transPeriod;
  1344.                                                 break;
  1345.                                 case 'mosaic':
  1346.                                         difference = opts.gridDifference;
  1347.                                                 break;
  1348.                                 case 'mosaicReverse':
  1349.                                         difference = opts.gridDifference;
  1350.                                                 break;
  1351.                                 case 'mosaicRandom':
  1352.                                                 break;
  1353.                                 case 'mosaicSpiral':
  1354.                                         difference = opts.gridDifference;
  1355.                                         couples = 1.7;
  1356.                                                 break;
  1357.                                 case 'mosaicSpiralReverse':
  1358.                                         difference = opts.gridDifference;
  1359.                                         couples = 1.7;
  1360.                                                 break;
  1361.                                 case 'topLeftBottomRight':
  1362.                                         difference = opts.gridDifference;
  1363.                                         couples = 6;
  1364.                                                 break;
  1365.                                 case 'bottomRightTopLeft':
  1366.                                         difference = opts.gridDifference;
  1367.                                         couples = 6;
  1368.                                                 break;
  1369.                                 case 'bottomLeftTopRight':
  1370.                                         difference = opts.gridDifference;
  1371.                                         couples = 6;
  1372.                                                 break;
  1373.                                 case 'topRightBottomLeft':
  1374.                                         difference = opts.gridDifference;
  1375.                                         couples = 6;
  1376.                                                 break;
  1377.                                 case 'scrollLeft':
  1378.                                         cols = 1;
  1379.                                         rows = 1;
  1380.                                                 break;
  1381.                                 case 'scrollRight':
  1382.                                         cols = 1;
  1383.                                         rows = 1;
  1384.                                                 break;
  1385.                                 case 'scrollTop':
  1386.                                         cols = 1;
  1387.                                         rows = 1;
  1388.                                                 break;
  1389.                                 case 'scrollBottom':
  1390.                                         cols = 1;
  1391.                                         rows = 1;
  1392.                                                 break;
  1393.                                 case 'scrollHorz':
  1394.                                         cols = 1;
  1395.                                         rows = 1;
  1396.                                                 break;
  1397.                         }
  1398.                        
  1399.                         var cycle = 0;
  1400.                         var blocks = rows*cols;
  1401.                         var leftScrap = w-(Math.floor(w/cols)*cols);
  1402.                         var topScrap = h-(Math.floor(h/rows)*rows);
  1403.                         var addLeft;
  1404.                         var addTop;
  1405.                         var tAppW = 0; 
  1406.                         var tAppH = 0;
  1407.                         var arr = new Array();
  1408.                         var delay = new Array();
  1409.                         var order = new Array();
  1410.                         while(cycle < blocks){
  1411.                                 arr.push(cycle);
  1412.                                 delay.push(cycle);
  1413.                                 cameraCont.append('<div class="cameraappended" style="display:none; overflow:hidden; position:absolute; z-index:1000" />');
  1414.                                 var tApp = $('.cameraappended:eq('+cycle+')',target);
  1415.                                 if(fx=='scrollLeft' || fx=='scrollRight' || fx=='scrollTop' || fx=='scrollBottom' || fx=='scrollHorz'){
  1416.                                         selector.eq(slideI).clone().show().appendTo(tApp);
  1417.                                 } else {
  1418.                                         if(slideOn=='next'){
  1419.                                                 selector.eq(slideI).clone().show().appendTo(tApp);
  1420.                                         } else {
  1421.                                                 selector.eq(vis).clone().show().appendTo(tApp);
  1422.                                         }
  1423.                                 }
  1424.  
  1425.                                 if(cycle%cols<leftScrap){
  1426.                                         addLeft = 1;
  1427.                                 } else {
  1428.                                         addLeft = 0;
  1429.                                 }
  1430.                                 if(cycle%cols==0){
  1431.                                         tAppW = 0;
  1432.                                 }
  1433.                                 if(Math.floor(cycle/cols)<topScrap){
  1434.                                         addTop = 1;
  1435.                                 } else {
  1436.                                         addTop = 0;
  1437.                                 }
  1438.                                 tApp.css({
  1439.                                         'height': Math.floor((h/rows)+addTop+1),
  1440.                                         'left': tAppW,
  1441.                                         'top': tAppH,
  1442.                                         'width': Math.floor((w/cols)+addLeft+1)
  1443.                                 });
  1444.                                 $('> .cameraSlide', tApp).css({
  1445.                                         'height': h,
  1446.                                         'margin-left': '-'+tAppW+'px',
  1447.                                         'margin-top': '-'+tAppH+'px',
  1448.                                         'width': w
  1449.                                 });
  1450.                                 tAppW = tAppW+tApp.width()-1;
  1451.                                 if(cycle%cols==cols-1){
  1452.                                         tAppH = tAppH + tApp.height() - 1;
  1453.                                 }
  1454.                                 cycle++;
  1455.                         }
  1456.                        
  1457.  
  1458.                        
  1459.                         switch(fx){
  1460.                                 case 'curtainTopLeft':
  1461.                                                 break;
  1462.                                 case 'curtainBottomLeft':
  1463.                                                 break;
  1464.                                 case 'curtainSliceLeft':
  1465.                                                 break;
  1466.                                 case 'curtainTopRight':
  1467.                                         arr = arr.reverse();
  1468.                                                 break;
  1469.                                 case 'curtainBottomRight':
  1470.                                         arr = arr.reverse();
  1471.                                                 break;
  1472.                                 case 'curtainSliceRight':
  1473.                                         arr = arr.reverse();
  1474.                                                 break;
  1475.                                 case 'blindCurtainTopLeft':
  1476.                                                 break;
  1477.                                 case 'blindCurtainBottomLeft':
  1478.                                         arr = arr.reverse();
  1479.                                                 break;
  1480.                                 case 'blindCurtainSliceTop':
  1481.                                                 break;
  1482.                                 case 'blindCurtainTopRight':
  1483.                                                 break;
  1484.                                 case 'blindCurtainBottomRight':
  1485.                                         arr = arr.reverse();
  1486.                                                 break;
  1487.                                 case 'blindCurtainSliceBottom':
  1488.                                         arr = arr.reverse();
  1489.                                                 break;
  1490.                                 case 'stampede':
  1491.                                         arr = shuffle(arr);
  1492.                                                 break;
  1493.                                 case 'mosaic':
  1494.                                                 break;
  1495.                                 case 'mosaicReverse':
  1496.                                         arr = arr.reverse();
  1497.                                                 break;
  1498.                                 case 'mosaicRandom':
  1499.                                         arr = shuffle(arr);
  1500.                                                 break;
  1501.                                 case 'mosaicSpiral':
  1502.                                         var rows2 = rows/2, x, y, z, n=0;
  1503.                                                 for (z = 0; z < rows2; z++){
  1504.                                                         y = z;
  1505.                                                         for (x = z; x < cols - z - 1; x++) {
  1506.                                                                 order[n++] = y * cols + x;
  1507.                                                         }
  1508.                                                         x = cols - z - 1;
  1509.                                                         for (y = z; y < rows - z - 1; y++) {
  1510.                                                                 order[n++] = y * cols + x;
  1511.                                                         }
  1512.                                                         y = rows - z - 1;
  1513.                                                         for (x = cols - z - 1; x > z; x--) {
  1514.                                                                 order[n++] = y * cols + x;
  1515.                                                         }
  1516.                                                         x = z;
  1517.                                                         for (y = rows - z - 1; y > z; y--) {
  1518.                                                                 order[n++] = y * cols + x;
  1519.                                                         }
  1520.                                                 }
  1521.                                                
  1522.                                                 arr = order;
  1523.  
  1524.                                                 break;
  1525.                                 case 'mosaicSpiralReverse':
  1526.                                         var rows2 = rows/2, x, y, z, n=blocks-1;
  1527.                                                 for (z = 0; z < rows2; z++){
  1528.                                                         y = z;
  1529.                                                         for (x = z; x < cols - z - 1; x++) {
  1530.                                                                 order[n--] = y * cols + x;
  1531.                                                         }
  1532.                                                         x = cols - z - 1;
  1533.                                                         for (y = z; y < rows - z - 1; y++) {
  1534.                                                                 order[n--] = y * cols + x;
  1535.                                                         }
  1536.                                                         y = rows - z - 1;
  1537.                                                         for (x = cols - z - 1; x > z; x--) {
  1538.                                                                 order[n--] = y * cols + x;
  1539.                                                         }
  1540.                                                         x = z;
  1541.                                                         for (y = rows - z - 1; y > z; y--) {
  1542.                                                                 order[n--] = y * cols + x;
  1543.                                                         }
  1544.                                                 }
  1545.  
  1546.                                                 arr = order;
  1547.                                                
  1548.                                                 break;
  1549.                                 case 'topLeftBottomRight':
  1550.                                         for (var y = 0; y < rows; y++)
  1551.                                         for (var x = 0; x < cols; x++) {
  1552.                                                 order.push(x + y);
  1553.                                         }
  1554.                                                 delay = order;
  1555.                                                 break;
  1556.                                 case 'bottomRightTopLeft':
  1557.                                         for (var y = 0; y < rows; y++)
  1558.                                         for (var x = 0; x < cols; x++) {
  1559.                                                 order.push(x + y);
  1560.                                         }
  1561.                                                 delay = order.reverse();
  1562.                                                 break;
  1563.                                 case 'bottomLeftTopRight':
  1564.                                         for (var y = rows; y > 0; y--)
  1565.                                         for (var x = 0; x < cols; x++) {
  1566.                                                 order.push(x + y);
  1567.                                         }
  1568.                                                 delay = order;
  1569.                                                 break;
  1570.                                 case 'topRightBottomLeft':
  1571.                                         for (var y = 0; y < rows; y++)
  1572.                                         for (var x = cols; x > 0; x--) {
  1573.                                                 order.push(x + y);
  1574.                                         }
  1575.                                                 delay = order;
  1576.                                                 break;
  1577.                         }
  1578.                        
  1579.                        
  1580.                                                
  1581.                         $.each(arr, function(index, value) {
  1582.  
  1583.                                 if(value%cols<leftScrap){
  1584.                                         addLeft = 1;
  1585.                                 } else {
  1586.                                         addLeft = 0;
  1587.                                 }
  1588.                                 if(value%cols==0){
  1589.                                         tAppW = 0;
  1590.                                 }
  1591.                                 if(Math.floor(value/cols)<topScrap){
  1592.                                         addTop = 1;
  1593.                                 } else {
  1594.                                         addTop = 0;
  1595.                                 }
  1596.                                                        
  1597.                                 switch(fx){
  1598.                                         case 'simpleFade':
  1599.                                                 height = h;
  1600.                                                 width = w;
  1601.                                                 opacityOnGrid = 0;
  1602.                                                         break;
  1603.                                         case 'curtainTopLeft':
  1604.                                                 height = 0,
  1605.                                                 width = Math.floor((w/cols)+addLeft+1),
  1606.                                                 marginTop = '-'+Math.floor((h/rows)+addTop+1)+'px';
  1607.                                                         break;
  1608.                                         case 'curtainTopRight':
  1609.                                                 height = 0,
  1610.                                                 width = Math.floor((w/cols)+addLeft+1),
  1611.                                                 marginTop = '-'+Math.floor((h/rows)+addTop+1)+'px';
  1612.                                                         break;
  1613.                                         case 'curtainBottomLeft':
  1614.                                                 height = 0,
  1615.                                                 width = Math.floor((w/cols)+addLeft+1),
  1616.                                                 marginTop = Math.floor((h/rows)+addTop+1)+'px';
  1617.                                                         break;
  1618.                                         case 'curtainBottomRight':
  1619.                                                 height = 0,
  1620.                                                 width = Math.floor((w/cols)+addLeft+1),
  1621.                                                 marginTop = Math.floor((h/rows)+addTop+1)+'px';
  1622.                                                         break;
  1623.                                         case 'curtainSliceLeft':
  1624.                                                 height = 0,
  1625.                                                 width = Math.floor((w/cols)+addLeft+1);
  1626.                                                 if(value%2==0){
  1627.                                                         marginTop = Math.floor((h/rows)+addTop+1)+'px';                                
  1628.                                                 } else {
  1629.                                                         marginTop = '-'+Math.floor((h/rows)+addTop+1)+'px';                                    
  1630.                                                 }
  1631.                                                         break;
  1632.                                         case 'curtainSliceRight':
  1633.                                                 height = 0,
  1634.                                                 width = Math.floor((w/cols)+addLeft+1);
  1635.                                                 if(value%2==0){
  1636.                                                         marginTop = Math.floor((h/rows)+addTop+1)+'px';                                
  1637.                                                 } else {
  1638.                                                         marginTop = '-'+Math.floor((h/rows)+addTop+1)+'px';                                    
  1639.                                                 }
  1640.                                                         break;
  1641.                                         case 'blindCurtainTopLeft':
  1642.                                                 height = Math.floor((h/rows)+addTop+1),
  1643.                                                 width = 0,
  1644.                                                 marginLeft = '-'+Math.floor((w/cols)+addLeft+1)+'px';
  1645.                                                         break;
  1646.                                         case 'blindCurtainTopRight':
  1647.                                                 height = Math.floor((h/rows)+addTop+1),
  1648.                                                 width = 0,
  1649.                                                 marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
  1650.                                                         break;
  1651.                                         case 'blindCurtainBottomLeft':
  1652.                                                 height = Math.floor((h/rows)+addTop+1),
  1653.                                                 width = 0,
  1654.                                                 marginLeft = '-'+Math.floor((w/cols)+addLeft+1)+'px';
  1655.                                                         break;
  1656.                                         case 'blindCurtainBottomRight':
  1657.                                                 height = Math.floor((h/rows)+addTop+1),
  1658.                                                 width = 0,
  1659.                                                 marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
  1660.                                                         break;
  1661.                                         case 'blindCurtainSliceBottom':
  1662.                                                 height = Math.floor((h/rows)+addTop+1),
  1663.                                                 width = 0;
  1664.                                                 if(value%2==0){
  1665.                                                         marginLeft = '-'+Math.floor((w/cols)+addLeft+1)+'px';
  1666.                                                 } else {
  1667.                                                         marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
  1668.                                                 }
  1669.                                                         break;
  1670.                                         case 'blindCurtainSliceTop':
  1671.                                                 height = Math.floor((h/rows)+addTop+1),
  1672.                                                 width = 0;
  1673.                                                 if(value%2==0){
  1674.                                                         marginLeft = '-'+Math.floor((w/cols)+addLeft+1)+'px';
  1675.                                                 } else {
  1676.                                                         marginLeft = Math.floor((w/cols)+addLeft+1)+'px';
  1677.                                                 }
  1678.                                                         break;
  1679.                                         case 'stampede':
  1680.                                                 height = 0;
  1681.                                                 width = 0;                                     
  1682.                                                 marginLeft = (w*0.2)*(((index)%cols)-(cols-(Math.floor(cols/2))))+'px';                                
  1683.                                                 marginTop = (h*0.2)*((Math.floor(index/cols)+1)-(rows-(Math.floor(rows/2))))+'px';     
  1684.                                                         break;
  1685.                                         case 'mosaic':
  1686.                                                 height = 0;
  1687.                                                 width = 0;                                     
  1688.                                                         break;
  1689.                                         case 'mosaicReverse':
  1690.                                                 height = 0;
  1691.                                                 width = 0;                                     
  1692.                                                 marginLeft = Math.floor((w/cols)+addLeft+1)+'px';                                      
  1693.                                                 marginTop = Math.floor((h/rows)+addTop+1)+'px';                                
  1694.                                                         break;
  1695.                                         case 'mosaicRandom':
  1696.                                                 height = 0;
  1697.                                                 width = 0;                                     
  1698.                                                 marginLeft = Math.floor((w/cols)+addLeft+1)*0.5+'px';                                  
  1699.                                                 marginTop = Math.floor((h/rows)+addTop+1)*0.5+'px';                                    
  1700.                                                         break;
  1701.                                         case 'mosaicSpiral':
  1702.                                                 height = 0;
  1703.                                                 width = 0;
  1704.                                                 marginLeft = Math.floor((w/cols)+addLeft+1)*0.5+'px';                                  
  1705.                                                 marginTop = Math.floor((h/rows)+addTop+1)*0.5+'px';                                    
  1706.                                                         break;
  1707.                                         case 'mosaicSpiralReverse':
  1708.                                                 height = 0;
  1709.                                                 width = 0;
  1710.                                                 marginLeft = Math.floor((w/cols)+addLeft+1)*0.5+'px';                                  
  1711.                                                 marginTop = Math.floor((h/rows)+addTop+1)*0.5+'px';                                    
  1712.                                                         break;
  1713.                                         case 'topLeftBottomRight':
  1714.                                                 height = 0;
  1715.                                                 width = 0;                                     
  1716.                                                         break;
  1717.                                         case 'bottomRightTopLeft':
  1718.                                                 height = 0;
  1719.                                                 width = 0;                                     
  1720.                                                 marginLeft = Math.floor((w/cols)+addLeft+1)+'px';                                      
  1721.                                                 marginTop = Math.floor((h/rows)+addTop+1)+'px';                                
  1722.                                                         break;
  1723.                                         case 'bottomLeftTopRight':
  1724.                                                 height = 0;
  1725.                                                 width = 0;                                     
  1726.                                                 marginLeft = 0;                                
  1727.                                                 marginTop = Math.floor((h/rows)+addTop+1)+'px';                                
  1728.                                                         break;
  1729.                                         case 'topRightBottomLeft':
  1730.                                                 height = 0;
  1731.                                                 width = 0;                                     
  1732.                                                 marginLeft = Math.floor((w/cols)+addLeft+1)+'px';                                      
  1733.                                                 marginTop = 0;                                 
  1734.                                                         break;
  1735.                                         case 'scrollRight':
  1736.                                                 height = h;
  1737.                                                 width = w;
  1738.                                                 marginLeft = -w;                                       
  1739.                                                         break;
  1740.                                         case 'scrollLeft':
  1741.                                                 height = h;
  1742.                                                 width = w;
  1743.                                                 marginLeft = w;                                
  1744.                                                         break;
  1745.                                         case 'scrollTop':
  1746.                                                 height = h;
  1747.                                                 width = w;
  1748.                                                 marginTop = h;                                 
  1749.                                                         break;
  1750.                                         case 'scrollBottom':
  1751.                                                 height = h;
  1752.                                                 width = w;
  1753.                                                 marginTop = -h;                                
  1754.                                                         break;
  1755.                                         case 'scrollHorz':
  1756.                                                 height = h;
  1757.                                                 width = w;
  1758.                                                 if(vis==0 && slideI==amountSlide-1) {
  1759.                                                         marginLeft = -w;       
  1760.                                                 } else if(vis<slideI  || (vis==amountSlide-1 && slideI==0)) {
  1761.                                                         marginLeft = w;
  1762.                                                 } else {
  1763.                                                         marginLeft = -w;       
  1764.                                                 }
  1765.                                                         break;
  1766.                                         }
  1767.                                        
  1768.                        
  1769.                                 var tApp = $('.cameraappended:eq('+value+')',target);
  1770.                                                                
  1771.                                 if(typeof u !== 'undefined'){
  1772.                                         clearInterval(u);
  1773.                                         clearTimeout(setT);
  1774.                                         setT = setTimeout(canvasLoader,transPeriod+difference);
  1775.                                 }
  1776.                                
  1777.                                
  1778.                                 if($(pagination).length){
  1779.                                         $('.camera_pag li',wrap).removeClass('cameracurrent');
  1780.                                         $('.camera_pag li',wrap).eq(slideI).addClass('cameracurrent');
  1781.                                 }
  1782.                                                
  1783.                                 if($(thumbs).length){
  1784.                                         $('li', thumbs).removeClass('cameracurrent');
  1785.                                         $('li', thumbs).eq(slideI).addClass('cameracurrent');
  1786.                                         $('li', thumbs).not('.cameracurrent').find('img').animate({opacity:.5},0);
  1787.                                         $('li.cameracurrent img', thumbs).animate({opacity:1},0);
  1788.                                         $('li', thumbs).hover(function(){
  1789.                                                 $('img',this).stop(true,false).animate({opacity:1},150);
  1790.                                         },function(){
  1791.                                                 if(!$(this).hasClass('cameracurrent')){
  1792.                                                         $('img',this).stop(true,false).animate({opacity:.5},150);
  1793.                                                 }
  1794.                                         });
  1795.                                 }
  1796.                                                                
  1797.                                                
  1798.                                 var easedTime = parseFloat(transPeriod)+parseFloat(difference);
  1799.                                
  1800.                                 function cameraeased() {
  1801.  
  1802.                                         $(this).addClass('cameraeased');
  1803.                                         if($('.cameraeased',target).length>=0){
  1804.                                                 $(thumbs).css({visibility:'visible'});
  1805.                                         }
  1806.                                         if($('.cameraeased',target).length==blocks){
  1807.                                                
  1808.                                                 thumbnailPos();
  1809.                                                
  1810.                                                 $('.moveFromLeft, .moveFromRight, .moveFromTop, .moveFromBottom, .fadeIn, .fadeFromLeft, .fadeFromRight, .fadeFromTop, .fadeFromBottom',fakeHover).each(function(){
  1811.                                                         $(this).css('visibility','hidden');
  1812.                                                 });
  1813.                
  1814.                                                 selector.eq(slideI).show().css('z-index','999').removeClass('cameranext').addClass('cameracurrent');
  1815.                                                 selector.eq(vis).css('z-index','1').removeClass('cameracurrent');
  1816.                                                 $('.cameraContent',fakeHover).eq(slideI).addClass('cameracurrent');
  1817.                                                 if (vis >= 0) {
  1818.                                                         $('.cameraContent',fakeHover).eq(vis).removeClass('cameracurrent');
  1819.                                                 }
  1820.                                                
  1821.                                                 opts.onEndTransition.call(this);
  1822.                                                
  1823.                                                 if($('> div', elem).eq(slideI).attr('data-video')!='hide' && $('.cameraContent.cameracurrent .imgFake',fakeHover).length ){
  1824.                                                         $('.cameraContent.cameracurrent .imgFake',fakeHover).click();
  1825.                                                 }
  1826.  
  1827.                                                
  1828.                                                 var lMoveIn = selector.eq(slideI).find('.fadeIn').length;
  1829.                                                 var lMoveInContent = $('.cameraContent',fakeHover).eq(slideI).find('.moveFromLeft, .moveFromRight, .moveFromTop, .moveFromBottom, .fadeIn, .fadeFromLeft, .fadeFromRight, .fadeFromTop, .fadeFromBottom').length;
  1830.                                                
  1831.                                                 if (lMoveIn!=0){
  1832.                                                         $('.cameraSlide.cameracurrent .fadeIn',fakeHover).each(function(){
  1833.                                                                 if($(this).attr('data-easing')!=''){
  1834.                                                                         var easeMove = $(this).attr('data-easing');
  1835.                                                                 } else {
  1836.                                                                         var easeMove = easing;
  1837.                                                                 }
  1838.                                                                 var t = $(this);
  1839.                                                                 if(typeof t.attr('data-outerWidth') === 'undefined' || t.attr('data-outerWidth') === false || t.attr('data-outerWidth') === '') {
  1840.                                                                         var wMoveIn = t.outerWidth();
  1841.                                                                         t.attr('data-outerWidth',wMoveIn);
  1842.                                                                 } else {
  1843.                                                                         var wMoveIn = t.attr('data-outerWidth');
  1844.                                                                 }
  1845.                                                                 if(typeof t.attr('data-outerHeight') === 'undefined' || t.attr('data-outerHeight') === false || t.attr('data-outerHeight') === '') {
  1846.                                                                         var hMoveIn = t.outerHeight();
  1847.                                                                         t.attr('data-outerHeight',hMoveIn);
  1848.                                                                 } else {
  1849.                                                                         var hMoveIn = t.attr('data-outerHeight');
  1850.                                                                 }
  1851.                                                                 //t.css('width',wMoveIn);
  1852.                                                                 var pos = t.position();
  1853.                                                                 var left = pos.left;
  1854.                                                                 var top = pos.top;
  1855.                                                                 var tClass = t.attr('class');
  1856.                                                                 var ind = t.index();
  1857.                                                                 var hRel = t.parents('.camerarelative').outerHeight();
  1858.                                                                 var wRel = t.parents('.camerarelative').outerWidth();
  1859.                                                                 if(tClass.indexOf("fadeIn") != -1) {
  1860.                                                                         t.animate({opacity:0},0).css('visibility','visible').delay((time/lMoveIn)*(0.1*(ind-1))).animate({opacity:1},(time/lMoveIn)*0.15,easeMove);
  1861.                                                                 } else {
  1862.                                                                         t.css('visibility','visible');
  1863.                                                                 }
  1864.                                                         });
  1865.                                                 }
  1866.  
  1867.                                                 $('.cameraContent.cameracurrent',fakeHover).show();
  1868.                                                 if (lMoveInContent!=0){
  1869.                                                        
  1870.                                                         $('.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(){
  1871.                                                                 if($(this).attr('data-easing')!=''){
  1872.                                                                         var easeMove = $(this).attr('data-easing');
  1873.                                                                 } else {
  1874.                                                                         var easeMove = easing;
  1875.                                                                 }
  1876.                                                                 var t = $(this);
  1877.                                                                 var pos = t.position();
  1878.                                                                 var left = pos.left;
  1879.                                                                 var top = pos.top;
  1880.                                                                 var tClass = t.attr('class');
  1881.                                                                 var ind = t.index();
  1882.                                                                 var thisH = t.outerHeight();
  1883.                                                                 if(tClass.indexOf("moveFromLeft") != -1) {
  1884.                                                                         t.css({'left':'-'+(w)+'px','right':'auto'});
  1885.                                                                         t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({'left':pos.left},(time/lMoveInContent)*0.15,easeMove);
  1886.                                                                 } else if(tClass.indexOf("moveFromRight") != -1) {
  1887.                                                                         t.css({'left':w+'px','right':'auto'});
  1888.                                                                         t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({'left':pos.left},(time/lMoveInContent)*0.15,easeMove);
  1889.                                                                 } else if(tClass.indexOf("moveFromTop") != -1) {
  1890.                                                                         t.css({'top':'-'+h+'px','bottom':'auto'});
  1891.                                                                         t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({'top':pos.top},(time/lMoveInContent)*0.15,easeMove,function(){
  1892.                                                                                 t.css({top:'auto',bottom:0});
  1893.                                                                         });
  1894.                                                                 } else if(tClass.indexOf("moveFromBottom") != -1) {
  1895.                                                                         t.css({'top':h+'px','bottom':'auto'});
  1896.                                                                         t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({'top':pos.top},(time/lMoveInContent)*0.15,easeMove);
  1897.                                                                 } else if(tClass.indexOf("fadeFromLeft") != -1) {
  1898.                                                                         t.animate({opacity:0},0).css({'left':'-'+(w)+'px','right':'auto'});
  1899.                                                                         t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({'left':pos.left,opacity:1},(time/lMoveInContent)*0.15,easeMove);
  1900.                                                                 } else if(tClass.indexOf("fadeFromRight") != -1) {
  1901.                                                                         t.animate({opacity:0},0).css({'left':(w)+'px','right':'auto'});
  1902.                                                                         t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({'left':pos.left,opacity:1},(time/lMoveInContent)*0.15,easeMove);
  1903.                                                                 } else if(tClass.indexOf("fadeFromTop") != -1) {
  1904.                                                                         t.animate({opacity:0},0).css({'top':'-'+(h)+'px','bottom':'auto'});
  1905.                                                                         t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({'top':pos.top,opacity:1},(time/lMoveInContent)*0.15,easeMove,function(){
  1906.                                                                                 t.css({top:'auto',bottom:0});
  1907.                                                                         });
  1908.                                                                 } else if(tClass.indexOf("fadeFromBottom") != -1) {
  1909.                                                                         t.animate({opacity:0},0).css({'bottom':'-'+thisH+'px'});
  1910.                                                                         t.css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({'bottom':'0',opacity:1},(time/lMoveInContent)*0.15,easeMove);
  1911.                                                                 } else if(tClass.indexOf("fadeIn") != -1) {
  1912.                                                                         t.animate({opacity:0},0).css('visibility','visible').delay((time/lMoveInContent)*(0.1*(ind-1))).animate({opacity:1},(time/lMoveInContent)*0.15,easeMove);
  1913.                                                                 } else {
  1914.                                                                         t.css('visibility','visible');
  1915.                                                                 }
  1916.                                                         });
  1917.                                                 }
  1918.  
  1919.                                                
  1920.                                                 $('.cameraappended',target).remove();
  1921.                                                 elem.removeClass('camerasliding');     
  1922.                                                         selector.eq(vis).hide();
  1923.                                                         var barWidth = $('.camera_bar_cont',camera_thumbs_wrap).width(),
  1924.                                                                 barHeight = $('.camera_bar_cont',camera_thumbs_wrap).height(),
  1925.                                                                 radSum;
  1926.                                                         if (loader != 'pie') {
  1927.                                                                 radSum = 0.05;
  1928.                                                         } else {
  1929.                                                                 radSum = 0.005;
  1930.                                                         }
  1931.                                                         $('#'+pieID).animate({opacity:opts.loaderOpacity},200);
  1932.                                                         u = setInterval(
  1933.                                                                 function(){
  1934.                                                                         if(elem.hasClass('stopped')){
  1935.                                                                                 clearInterval(u);
  1936.                                                                         }
  1937.                                                                         if (loader != 'pie') {
  1938.                                                                                 if(rad<=1.002 && !elem.hasClass('stopped') && !elem.hasClass('paused') && !elem.hasClass('hovered')){
  1939.                                                                                         rad = (rad+radSum);
  1940.                                                                                 } else if (rad<=1 && (elem.hasClass('stopped') || elem.hasClass('paused') || elem.hasClass('stopped') || elem.hasClass('hovered'))){
  1941.                                                                                         rad = rad;
  1942.                                                                                 } else {
  1943.                                                                                         if(!elem.hasClass('stopped') && !elem.hasClass('paused') && !elem.hasClass('hovered')) {
  1944.                                                                                                 clearInterval(u);
  1945.                                                                                                 imgFake();
  1946.                                                                                                 $('#'+pieID).animate({opacity:0},200,function(){
  1947.                                                                                                         clearTimeout(setT);
  1948.                                                                                                         setT = setTimeout(canvasLoader,easedTime);
  1949.                                                                                                         nextSlide();
  1950.                                                                                                         opts.onStartLoading.call(this);
  1951.                                                                                                 });
  1952.                                                                                         }
  1953.                                                                                 }
  1954.                                                                                 switch(barDirection){
  1955.                                                                                         case 'leftToRight':
  1956.                                                                                                 $('#'+pieID).animate({'right':barWidth-(barWidth*rad)},(time*radSum),'linear');
  1957.                                                                                                 break;
  1958.                                                                                         case 'rightToLeft':
  1959.                                                                                                 $('#'+pieID).animate({'left':barWidth-(barWidth*rad)},(time*radSum),'linear');
  1960.                                                                                                 break;
  1961.                                                                                         case 'topToBottom':
  1962.                                                                                                 $('#'+pieID).animate({'bottom':barHeight-(barHeight*rad)},(time*radSum),'linear');
  1963.                                                                                                 break;
  1964.                                                                                         case 'bottomToTop':
  1965.                                                                                                 $('#'+pieID).animate({'bottom':barHeight-(barHeight*rad)},(time*radSum),'linear');
  1966.                                                                                                 break;
  1967.                                                                                 }
  1968.                                                                                
  1969.                                                                         } else {
  1970.                                                                                 radNew = rad;
  1971.                                                                                 ctx.clearRect(0,0,opts.pieDiameter,opts.pieDiameter);
  1972.                                                                                 ctx.globalCompositeOperation = 'destination-over';
  1973.                                                                                 ctx.beginPath();
  1974.                                                                                 ctx.arc((opts.pieDiameter)/2, (opts.pieDiameter)/2, (opts.pieDiameter)/2-opts.loaderStroke,0,Math.PI*2,false);
  1975.                                                                                 ctx.lineWidth = opts.loaderStroke;
  1976.                                                                                 ctx.strokeStyle = opts.loaderBgColor;
  1977.                                                                                 ctx.stroke();
  1978.                                                                                 ctx.closePath();
  1979.                                                                                 ctx.globalCompositeOperation = 'source-over';
  1980.                                                                                 ctx.beginPath();
  1981.                                                                                 ctx.arc((opts.pieDiameter)/2, (opts.pieDiameter)/2, (opts.pieDiameter)/2-opts.loaderStroke,0,Math.PI*2*radNew,false);
  1982.                                                                                 ctx.lineWidth = opts.loaderStroke-(opts.loaderPadding*2);
  1983.                                                                                 ctx.strokeStyle = opts.loaderColor;
  1984.                                                                                 ctx.stroke();
  1985.                                                                                 ctx.closePath();
  1986.                                                                                                
  1987.                                                                                 if(rad<=1.002 && !elem.hasClass('stopped') && !elem.hasClass('paused') && !elem.hasClass('hovered')){
  1988.                                                                                         rad = (rad+radSum);
  1989.                                                                                 } else if (rad<=1 && (elem.hasClass('stopped') || elem.hasClass('paused') || elem.hasClass('hovered'))){
  1990.                                                                                         rad = rad;
  1991.                                                                                 } else {
  1992.                                                                                         if(!elem.hasClass('stopped') && !elem.hasClass('paused') && !elem.hasClass('hovered')) {
  1993.                                                                                                 clearInterval(u);
  1994.                                                                                                 imgFake();
  1995.                                                                                                 $('#'+pieID+', .camera_canvas_wrap',camera_thumbs_wrap).animate({opacity:0},200,function(){
  1996.                                                                                                         clearTimeout(setT);
  1997.                                                                                                         setT = setTimeout(canvasLoader,easedTime);
  1998.                                                                                                         nextSlide();
  1999.                                                                                                         opts.onStartLoading.call(this);
  2000.                                                                                                 });
  2001.                                                                                         }
  2002.                                                                                 }
  2003.                                                                         }
  2004.                                                                 },time*radSum
  2005.                                                         );
  2006.                                                 }
  2007.  
  2008.                                 }
  2009.  
  2010.  
  2011.                                
  2012.                                 if(fx=='scrollLeft' || fx=='scrollRight' || fx=='scrollTop' || fx=='scrollBottom' || fx=='scrollHorz'){
  2013.                                         opts.onStartTransition.call(this);
  2014.                                         easedTime = 0;
  2015.                                         tApp.delay((((transPeriod+difference)/blocks)*delay[index]*couples)*0.5).css({
  2016.                                                         'display' : 'block',
  2017.                                                         'height': height,
  2018.                                                         'margin-left': marginLeft,
  2019.                                                         'margin-top': marginTop,
  2020.                                                         'width': width
  2021.                                                 }).animate({
  2022.                                                         'height': Math.floor((h/rows)+addTop+1),
  2023.                                                         'margin-top' : 0,
  2024.                                                         'margin-left' : 0,
  2025.                                                         'width' : Math.floor((w/cols)+addLeft+1)
  2026.                                                 },(transPeriod-difference),easing,cameraeased);
  2027.                                         selector.eq(vis).delay((((transPeriod+difference)/blocks)*delay[index]*couples)*0.5).animate({
  2028.                                                         'margin-left': marginLeft*(-1),
  2029.                                                         'margin-top': marginTop*(-1)
  2030.                                                 },(transPeriod-difference),easing,function(){
  2031.                                                         $(this).css({'margin-top' : 0,'margin-left' : 0});
  2032.                                                 });
  2033.                                 } else {
  2034.                                         opts.onStartTransition.call(this);
  2035.                                         easedTime = parseFloat(transPeriod)+parseFloat(difference);
  2036.                                         if(slideOn=='next'){
  2037.                                                 tApp.delay((((transPeriod+difference)/blocks)*delay[index]*couples)*0.5).css({
  2038.                                                                 'display' : 'block',
  2039.                                                                 'height': height,
  2040.                                                                 'margin-left': marginLeft,
  2041.                                                                 'margin-top': marginTop,
  2042.                                                                 'width': width,
  2043.                                                                 'opacity' : opacityOnGrid
  2044.                                                         }).animate({
  2045.                                                                 'height': Math.floor((h/rows)+addTop+1),
  2046.                                                                 'margin-top' : 0,
  2047.                                                                 'margin-left' : 0,
  2048.                                                                 'opacity' : 1,
  2049.                                                                 'width' : Math.floor((w/cols)+addLeft+1)
  2050.                                                         },(transPeriod-difference),easing,cameraeased);
  2051.                                         } else {
  2052.                                                 selector.eq(slideI).show().css('z-index','999').addClass('cameracurrent');
  2053.                                                 selector.eq(vis).css('z-index','1').removeClass('cameracurrent');
  2054.                                                 $('.cameraContent',fakeHover).eq(slideI).addClass('cameracurrent');
  2055.                                                 $('.cameraContent',fakeHover).eq(vis).removeClass('cameracurrent');
  2056.                                                 tApp.delay((((transPeriod+difference)/blocks)*delay[index]*couples)*0.5).css({
  2057.                                                                 'display' : 'block',
  2058.                                                                 'height': Math.floor((h/rows)+addTop+1),
  2059.                                                                 'margin-top' : 0,
  2060.                                                                 'margin-left' : 0,
  2061.                                                                 'opacity' : 1,
  2062.                                                                 'width' : Math.floor((w/cols)+addLeft+1)
  2063.                                                         }).animate({
  2064.                                                                 'height': height,
  2065.                                                                 'margin-left': marginLeft,
  2066.                                                                 'margin-top': marginTop,
  2067.                                                                 'width': width,
  2068.                                                                 'opacity' : opacityOnGrid
  2069.                                                         },(transPeriod-difference),easing,cameraeased);
  2070.                                         }
  2071.                                 }
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.                         });
  2078.                                
  2079.                                
  2080.                                
  2081.          
  2082.                 }
  2083.         }
  2084.  
  2085.  
  2086.                                 if($(prevNav).length){
  2087.                                         $(prevNav).click(function(){
  2088.                                                 if(!elem.hasClass('camerasliding')){
  2089.                                                         var idNum = parseFloat($('.cameraSlide.cameracurrent',target).index());
  2090.                                                         clearInterval(u);
  2091.                                                         imgFake();
  2092.                                                         $('#'+pieID+', .camera_canvas_wrap',wrap).animate({opacity:0},0);
  2093.                                                         canvasLoader();
  2094.                                                         if(idNum!=0){
  2095.                                                                 nextSlide(idNum);
  2096.                                                         } else {
  2097.                                                                 nextSlide(amountSlide);
  2098.                                                    }
  2099.                                                    opts.onStartLoading.call(this);
  2100.                                                 }
  2101.                                         });
  2102.                                 }
  2103.                        
  2104.                                 if($(nextNav).length){
  2105.                                         $(nextNav).click(function(){
  2106.                                                 if(!elem.hasClass('camerasliding')){
  2107.                                                         var idNum = parseFloat($('.cameraSlide.cameracurrent',target).index());
  2108.                                                         clearInterval(u);
  2109.                                                         imgFake();
  2110.                                                         $('#'+pieID+', .camera_canvas_wrap',camera_thumbs_wrap).animate({opacity:0},0);
  2111.                                                         canvasLoader();
  2112.                                                         if(idNum==amountSlide-1){
  2113.                                                                 nextSlide(1);
  2114.                                                         } else {
  2115.                                                                 nextSlide(idNum+2);
  2116.                                                    }
  2117.                                                    opts.onStartLoading.call(this);
  2118.                                                 }
  2119.                                         });
  2120.                                 }
  2121.  
  2122.  
  2123.                                 if(isMobile()){
  2124.                                         fakeHover.bind('swipeleft',function(event){
  2125.                                                 if(!elem.hasClass('camerasliding')){
  2126.                                                         var idNum = parseFloat($('.cameraSlide.cameracurrent',target).index());
  2127.                                                         clearInterval(u);
  2128.                                                         imgFake();
  2129.                                                         $('#'+pieID+', .camera_canvas_wrap',camera_thumbs_wrap).animate({opacity:0},0);
  2130.                                                         canvasLoader();
  2131.                                                         if(idNum==amountSlide-1){
  2132.                                                                 nextSlide(1);
  2133.                                                         } else {
  2134.                                                                 nextSlide(idNum+2);
  2135.                                                    }
  2136.                                                    opts.onStartLoading.call(this);
  2137.                                                 }
  2138.                                         });
  2139.                                         fakeHover.bind('swiperight',function(event){
  2140.                                                 if(!elem.hasClass('camerasliding')){
  2141.                                                         var idNum = parseFloat($('.cameraSlide.cameracurrent',target).index());
  2142.                                                         clearInterval(u);
  2143.                                                         imgFake();
  2144.                                                         $('#'+pieID+', .camera_canvas_wrap',camera_thumbs_wrap).animate({opacity:0},0);
  2145.                                                         canvasLoader();
  2146.                                                         if(idNum!=0){
  2147.                                                                 nextSlide(idNum);
  2148.                                                         } else {
  2149.                                                                 nextSlide(amountSlide);
  2150.                                                    }
  2151.                                                    opts.onStartLoading.call(this);
  2152.                                                 }
  2153.                                         });
  2154.                                 }
  2155.  
  2156.                                 if($(pagination).length){
  2157.                                         $('.camera_pag li',wrap).click(function(){
  2158.                                                 if(!elem.hasClass('camerasliding')){
  2159.                                                         var idNum = parseFloat($(this).index());
  2160.                                                         var curNum = parseFloat($('.cameraSlide.cameracurrent',target).index());
  2161.                                                         if(idNum!=curNum) {
  2162.                                                                 clearInterval(u);
  2163.                                                                 imgFake();
  2164.                                                                 $('#'+pieID+', .camera_canvas_wrap',camera_thumbs_wrap).animate({opacity:0},0);
  2165.                                                                 canvasLoader();
  2166.                                                                 nextSlide(idNum+1);
  2167.                                                                 opts.onStartLoading.call(this);
  2168.                                                         }
  2169.                                                 }
  2170.                                         });
  2171.                                 }
  2172.  
  2173.                                 if($(thumbs).length) {
  2174.  
  2175.                                         $('.pix_thumb img',thumbs).click(function(){
  2176.                                                 if(!elem.hasClass('camerasliding')){
  2177.                                                         var idNum = parseFloat($(this).parents('li').index());
  2178.                                                         var curNum = parseFloat($('.cameracurrent',target).index());
  2179.                                                         if(idNum!=curNum) {
  2180.                                                                 clearInterval(u);
  2181.                                                                 imgFake();
  2182.                                                                 $('#'+pieID+', .camera_canvas_wrap',camera_thumbs_wrap).animate({opacity:0},0);
  2183.                                                                 $('.pix_thumb',thumbs).removeClass('cameracurrent');
  2184.                                                                 $(this).parents('li').addClass('cameracurrent');
  2185.                                                                 canvasLoader();
  2186.                                                                 nextSlide(idNum+1);
  2187.                                                                 thumbnailPos();
  2188.                                                                 opts.onStartLoading.call(this);
  2189.                                                         }
  2190.                                                 }
  2191.                                         });
  2192.  
  2193.                                         $('.camera_thumbs_cont .camera_prevThumbs',camera_thumbs_wrap).hover(function(){
  2194.                                                 $(this).stop(true,false).animate({opacity:1},250);
  2195.                                         },function(){
  2196.                                                 $(this).stop(true,false).animate({opacity:.7},250);
  2197.                                         });
  2198.                                         $('.camera_prevThumbs',camera_thumbs_wrap).click(function(){
  2199.                                                 var sum = 0,
  2200.                                                         wTh = $(thumbs).outerWidth(),
  2201.                                                         offUl = $('ul', thumbs).offset().left,
  2202.                                                         offDiv = $('> div', thumbs).offset().left,
  2203.                                                         ulLeft = offDiv-offUl;
  2204.                                                         $('.camera_visThumb',thumbs).each(function(){
  2205.                                                                 var tW = $(this).outerWidth();
  2206.                                                                 sum = sum+tW;
  2207.                                                         });
  2208.                                                         if(ulLeft-sum>0){
  2209.                                                                 $('ul', thumbs).animate({'margin-left':'-'+(ulLeft-sum)+'px'},500,thumbnailVisible);
  2210.                                                         } else {
  2211.                                                                 $('ul', thumbs).animate({'margin-left':0},500,thumbnailVisible);
  2212.                                                         }
  2213.                                         });
  2214.  
  2215.                                         $('.camera_thumbs_cont .camera_nextThumbs',camera_thumbs_wrap).hover(function(){
  2216.                                                 $(this).stop(true,false).animate({opacity:1},250);
  2217.                                         },function(){
  2218.                                                 $(this).stop(true,false).animate({opacity:.7},250);
  2219.                                         });
  2220.                                         $('.camera_nextThumbs',camera_thumbs_wrap).click(function(){
  2221.                                                 var sum = 0,
  2222.                                                         wTh = $(thumbs).outerWidth(),
  2223.                                                         ulW = $('ul', thumbs).outerWidth(),
  2224.                                                         offUl = $('ul', thumbs).offset().left,
  2225.                                                         offDiv = $('> div', thumbs).offset().left,
  2226.                                                         ulLeft = offDiv-offUl;
  2227.                                                         $('.camera_visThumb',thumbs).each(function(){
  2228.                                                                 var tW = $(this).outerWidth();
  2229.                                                                 sum = sum+tW;
  2230.                                                         });
  2231.                                                         if(ulLeft+sum+sum<ulW){
  2232.                                                                 $('ul', thumbs).animate({'margin-left':'-'+(ulLeft+sum)+'px'},500,thumbnailVisible);
  2233.                                                         } else {
  2234.                                                                 $('ul', thumbs).animate({'margin-left':'-'+(ulW-wTh)+'px'},500,thumbnailVisible);
  2235.                                                         }
  2236.                                         });
  2237.  
  2238.                                 }
  2239.                
  2240.                
  2241.        
  2242. }
  2243.  
  2244. })(jQuery);
  2245.  
  2246. ;(function($){$.fn.cameraStop = function() {
  2247.         var wrap = $(this),
  2248.                 elem = $('.camera_src',wrap),
  2249.                 pieID = 'pie_'+wrap.index();
  2250.         elem.addClass('stopped');
  2251.         if($('.camera_showcommands').length) {
  2252.                 var camera_thumbs_wrap = $('.camera_thumbs_wrap',wrap);
  2253.         } else {
  2254.                 var camera_thumbs_wrap = wrap;
  2255.         }
  2256. }
  2257. })(jQuery);
  2258.  
  2259. ;(function($){$.fn.cameraPause = function() {
  2260.         var wrap = $(this);
  2261.         var elem = $('.camera_src',wrap);
  2262.         elem.addClass('paused');
  2263. }
  2264. })(jQuery);
  2265.  
  2266. ;(function($){$.fn.cameraResume = function() {
  2267.         var wrap = $(this);
  2268.         var elem = $('.camera_src',wrap);
  2269.         if(typeof autoAdv === 'undefined' || autoAdv!==true){
  2270.                 elem.removeClass('paused');
  2271.         }
  2272. }
  2273. })(jQuery);

Raw Paste


Login or Register to edit or fork this paste. It's free.