kit_cms 2.3.20 → 2.3.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. data/app/assets/images/kit/toolbar/smile.png +0 -0
  2. data/app/assets/images/kit/toolbar/wink.gif +0 -0
  3. data/app/assets/images/kit/toolbar/wink.png +0 -0
  4. data/app/assets/javascripts/codemirror/editor.js +55 -17
  5. data/app/assets/javascripts/codemirror/jquery.js +0 -1
  6. data/app/assets/javascripts/codemirror/ruby.js +196 -0
  7. data/app/assets/javascripts/jquery.js +3036 -2838
  8. data/app/assets/javascripts/kit/utilities.js +655 -586
  9. data/app/assets/stylesheets/codemirror/style.css +1 -1
  10. data/app/assets/stylesheets/codemirror/theme.css +23 -3
  11. data/app/assets/stylesheets/kit/calendar.css +6 -1
  12. data/app/assets/stylesheets/kit/cms/cms.css +36 -0
  13. data/app/assets/stylesheets/kit/forums.css +5 -1
  14. data/app/assets/stylesheets/kit/kit.css +3 -1
  15. data/app/controllers/account_controller.rb +306 -0
  16. data/app/controllers/ad_controller.rb +2 -0
  17. data/app/controllers/admin/ad_units_controller.rb +1 -1
  18. data/app/controllers/admin/ad_zones_controller.rb +15 -0
  19. data/app/controllers/admin/ads_controller.rb +5 -0
  20. data/app/controllers/admin/block_controller.rb +1 -65
  21. data/app/controllers/admin/blocks_controller.rb +2 -0
  22. data/app/controllers/admin/content_controller.rb +3 -1
  23. data/app/controllers/admin/dashboard_controller.rb +28 -4
  24. data/app/controllers/admin/dj_controller.rb +45 -0
  25. data/app/controllers/admin/help_controller.rb +1 -1
  26. data/app/controllers/admin/html_asset_controller.rb +0 -12
  27. data/app/controllers/admin/q_controller.rb +120 -0
  28. data/app/controllers/admin/user_controller.rb +4 -4
  29. data/app/controllers/api_controller.rb +34 -0
  30. data/app/controllers/calendar_controller.rb +1 -1
  31. data/app/controllers/form_controller.rb +3 -3
  32. data/app/controllers/forum_controller.rb +39 -29
  33. data/app/controllers/kit_controller.rb +42 -15
  34. data/app/controllers/pages_controller.rb +25 -5
  35. data/app/controllers/q_controller.rb +235 -0
  36. data/app/controllers/repo_controller.rb +7 -0
  37. data/app/controllers/user_controller.rb +14 -10
  38. data/app/controllers/utility_controller.rb +1 -1
  39. data/app/helpers/account_helper.rb +47 -0
  40. data/app/helpers/admin/layouts_helper.rb +8 -0
  41. data/app/helpers/admin/page_templates_helper.rb +8 -0
  42. data/app/helpers/ads_helper.rb +11 -12
  43. data/app/helpers/calendar_helper.rb +6 -2
  44. data/app/helpers/form_data_helper.rb +1 -1
  45. data/app/helpers/form_helper.rb +8 -0
  46. data/app/helpers/forum_helper.rb +5 -1
  47. data/app/helpers/kit_helper.rb +65 -35
  48. data/app/helpers/kit_modules_helper.rb +4 -0
  49. data/app/helpers/user_helper.rb +0 -28
  50. data/app/jobs/page_link_job.rb +34 -0
  51. data/app/jobs/queue_job.rb +134 -0
  52. data/app/mailers/notification.rb +10 -0
  53. data/app/mailers/queue_mailer.rb +13 -0
  54. data/app/models/ad.rb +6 -6
  55. data/app/models/ad_unit.rb +1 -1
  56. data/app/models/ad_zone.rb +4 -0
  57. data/app/models/block.rb +1 -1
  58. data/app/models/delayed_job.rb +3 -0
  59. data/app/models/form.rb +16 -4
  60. data/app/models/html_asset.rb +19 -4
  61. data/app/models/html_asset_usage.rb +3 -0
  62. data/app/models/html_assetable.rb +4 -0
  63. data/app/models/layout.rb +36 -6
  64. data/app/models/newsletter.rb +1 -1
  65. data/app/models/page.rb +36 -2
  66. data/app/models/page_link.rb +5 -0
  67. data/app/models/page_template.rb +22 -2
  68. data/app/models/preference.rb +1 -1
  69. data/app/models/q_event.rb +12 -0
  70. data/app/models/q_klass.rb +5 -0
  71. data/app/models/q_message.rb +9 -0
  72. data/app/models/q_publisher.rb +35 -0
  73. data/app/models/q_subscription.rb +7 -0
  74. data/app/models/q_user.rb +29 -0
  75. data/app/models/q_users_method.rb +6 -0
  76. data/app/models/q_users_publisher.rb +6 -0
  77. data/app/models/user.rb +127 -19
  78. data/app/models/user_login.rb +4 -0
  79. data/app/validators/email_validator.rb +14 -0
  80. data/app/views/account/_edit.html.haml +40 -0
  81. data/app/views/account/_edit_intro.html.haml +3 -0
  82. data/app/views/account/_forgotten.html.haml +20 -0
  83. data/app/views/account/_forgotten_intro.html.haml +5 -0
  84. data/app/views/account/_sign_in.html.haml +31 -0
  85. data/app/views/account/_sign_in_intro.html.haml +4 -0
  86. data/app/views/account/_sign_up.html.haml +51 -0
  87. data/app/views/account/_sign_up_intro.html.haml +4 -0
  88. data/app/views/account/edit.html.haml +1 -0
  89. data/app/views/account/forgotten.html.haml +1 -0
  90. data/app/views/account/sign_in.html.haml +2 -0
  91. data/app/views/account/sign_up.html.haml +1 -0
  92. data/app/views/ad/_buy.html.haml +2 -1
  93. data/app/views/admin/ad_zones/_form.html.haml +1 -1
  94. data/app/views/admin/ad_zones/show.html.haml +2 -0
  95. data/app/views/admin/blocks/_form.html.haml +11 -1
  96. data/app/views/admin/dashboard/broken_links.html.haml +9 -0
  97. data/app/views/admin/dashboard/system.html.haml +11 -0
  98. data/app/views/admin/dj/index.html.haml +43 -0
  99. data/app/views/admin/form/_form.html.haml +15 -10
  100. data/app/views/admin/group/index.html.haml +1 -1
  101. data/app/views/admin/help/edit.html.haml +1 -1
  102. data/app/views/admin/html_asset/show.html.haml +9 -2
  103. data/app/views/admin/layouts/show.html.haml +10 -16
  104. data/app/views/admin/page_templates/_form.html.haml +9 -17
  105. data/app/views/admin/page_templates/show.html.haml +5 -4
  106. data/app/views/admin/q/events.html.haml +26 -0
  107. data/app/views/admin/q/index.html.haml +28 -0
  108. data/app/views/admin/q/klasses.html.haml +61 -0
  109. data/app/views/admin/q/messages.html.haml +37 -0
  110. data/app/views/admin/q/show.html.haml +98 -0
  111. data/app/views/admin/q/subscriptions.html.haml +26 -0
  112. data/app/views/admin/q/users.html.haml +27 -0
  113. data/app/views/admin/snippet/edit.html.erb +1 -1
  114. data/app/views/admin/snippet/new.html.erb +1 -1
  115. data/app/views/admin/stylesheet/show.html.haml +1 -1
  116. data/app/views/admin/user/index.html.erb +15 -6
  117. data/app/views/admin/user/view.html.erb +5 -4
  118. data/app/views/admin/views/_form.html.haml +3 -3
  119. data/app/views/calendar/_buy_tickets.html.haml +1 -1
  120. data/app/views/calendar/_calendar_entry.html.haml +1 -1
  121. data/app/views/calendar/_month.html.haml +7 -7
  122. data/app/views/form/_show.html.haml +1 -1
  123. data/app/views/forum/_add_post.html.haml +7 -8
  124. data/app/views/forum/_mod_thread.js.erb +46 -6
  125. data/app/views/forum/_post_moderation.html.haml +2 -1
  126. data/app/views/forum/_post_preview.html.haml +1 -9
  127. data/app/views/forum/_post_scripts.js.erb +29 -5
  128. data/app/views/forum/fetch_raw.html.haml +1 -0
  129. data/app/views/forum/moderate.html.haml +1 -0
  130. data/app/views/forum/topic_index.html.haml +4 -0
  131. data/app/views/notification/{event.txt.erb → event.text.erb} +0 -0
  132. data/app/views/notification/forgotten_password.text.erb +2 -0
  133. data/app/views/pages/content_edit.html.haml +1 -1
  134. data/app/views/pages/info.html.erb +13 -2
  135. data/app/views/pages/links.html.haml +63 -0
  136. data/app/views/user/edit_profile.html.haml +1 -1
  137. data/app/views/utility/_cm_editor.html.erb +13 -10
  138. data/app/views/utility/_cm_toolbar_markdown.html.haml +8 -1
  139. data/app/views/utility/_menu.html.haml +4 -0
  140. data/app/views/utility/mercury_html.html.haml +1 -0
  141. data/config/initializers/elastic_search.rb +6 -3
  142. data/config/initializers/extend_controller.rb +3 -0
  143. data/config/initializers/string.rb +9 -6
  144. data/config/initializers/warden.rb +49 -0
  145. data/config/locales/en.yml +29 -1
  146. data/config/routes.rb +35 -2
  147. data/lib/kit_cms.rb +7 -2
  148. data/lib/tasks/kit.rake +90 -2
  149. metadata +139 -27
  150. data/app/controllers/user/confirmations_controller.rb +0 -11
  151. data/app/controllers/user/passwords_controller.rb +0 -13
  152. data/app/controllers/user/registrations_controller.rb +0 -110
  153. data/app/controllers/user/sessions_controller.rb +0 -33
  154. data/app/controllers/user/unlocks_controller.rb +0 -13
  155. data/app/views/devise/_links.erb +0 -25
  156. data/app/views/devise/confirmations/new.html.erb +0 -12
  157. data/app/views/devise/mailer/confirmation_instructions.html.erb +0 -5
  158. data/app/views/devise/mailer/reset_password_instructions.html.erb +0 -8
  159. data/app/views/devise/mailer/unlock_instructions.html.erb +0 -7
  160. data/app/views/devise/passwords/edit.html.erb +0 -16
  161. data/app/views/devise/passwords/new.html.erb +0 -12
  162. data/app/views/devise/registrations/edit.html.erb +0 -28
  163. data/app/views/devise/registrations/new.html.erb +0 -18
  164. data/app/views/devise/sessions/new.html.erb +0 -18
  165. data/app/views/devise/shared/_links.erb +0 -25
  166. data/app/views/devise/unlocks/new.html.erb +0 -12
  167. data/app/views/pages/links.html.erb +0 -8
  168. data/app/views/user/shared/_links.erb +0 -25
  169. data/config/initializers/devise.rb +0 -196
  170. data/config/initializers/devise_extender.rb +0 -39
@@ -4662,668 +4662,737 @@ timezoneText: 'Time Zone'
4662
4662
  }
4663
4663
  });
4664
4664
 
4665
- /*
4666
- * jQuery Nivo Slider v3.1
4667
- * http://nivo.dev7studios.com
4668
- *
4669
- * Copyright 2012, Dev7studios
4670
- * Free to use and abuse under the MIT license.
4671
- * http://www.opensource.org/licenses/mit-license.php
4672
- */
4673
-
4674
- (function($) {
4675
- var NivoSlider = function(element, options){
4676
- // Defaults are below
4677
- var settings = $.extend({}, $.fn.nivoSlider.defaults, options);
4678
-
4679
- // Useful variables. Play carefully.
4680
- var vars = {
4681
- currentSlide: 0,
4682
- currentImage: '',
4683
- totalSlides: 0,
4684
- running: false,
4685
- paused: false,
4686
- stop: false,
4687
- controlNavEl: false
4688
- };
4689
-
4690
- // Get this slider
4691
- var slider = $(element);
4692
- slider.data('nivo:vars', vars).addClass('nivoSlider');
4693
-
4694
- // Find our slider children
4695
- var kids = slider.children();
4696
- kids.each(function() {
4697
- var child = $(this);
4698
- var link = '';
4699
- if(!child.is('img')){
4700
- if(child.is('a')){
4701
- child.addClass('nivo-imageLink');
4702
- link = child;
4703
- }
4704
- child = child.find('img:first');
4705
- }
4706
- // Get img width & height
4707
- var childWidth = (childWidth === 0) ? child.attr('width') : child.width(),
4708
- childHeight = (childHeight === 0) ? child.attr('height') : child.height();
4709
-
4710
- if(link !== ''){
4711
- link.css('display','none');
4712
- }
4713
- child.css('display','none');
4714
- vars.totalSlides++;
4715
- });
4716
4665
 
4717
- // If randomStart
4718
- if(settings.randomStart){
4719
- settings.startSlide = Math.floor(Math.random() * vars.totalSlides);
4720
- }
4721
-
4722
- // Set startSlide
4723
- if(settings.startSlide > 0){
4724
- if(settings.startSlide >= vars.totalSlides) { settings.startSlide = vars.totalSlides - 1; }
4725
- vars.currentSlide = settings.startSlide;
4726
- }
4727
4666
 
4728
- // Get initial image
4729
- if($(kids[vars.currentSlide]).is('img')){
4730
- vars.currentImage = $(kids[vars.currentSlide]);
4731
- } else {
4732
- vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
4733
- }
4734
-
4735
- // Show initial link
4736
- if($(kids[vars.currentSlide]).is('a')){
4737
- $(kids[vars.currentSlide]).css('display','block');
4738
- }
4667
+ /*
4668
+ * jQuery Nivo Slider v3.2
4669
+ * http://nivo.dev7studios.com
4670
+ *
4671
+ * Copyright 2012, Dev7studios
4672
+ * Free to use and abuse under the MIT license.
4673
+ * http://www.opensource.org/licenses/mit-license.php
4674
+ */
4739
4675
 
4740
- // Set first background
4741
- var imgUrl = vars.currentImage.attr('src');
4742
- if(imgUrl == null || imgUrl === '') imgUrl = '#';
4743
- var sliderImg = $('<img class="nivo-main-image" src="' + imgUrl + '" />');
4744
- sliderImg.show();
4745
- slider.append(sliderImg);
4746
-
4747
- // Detect Window Resize
4748
- $(window).resize(function() {
4749
- slider.children('img').width(slider.width());
4750
- sliderImg.attr('src', vars.currentImage.attr('src'));
4751
- sliderImg.stop().height('auto');
4752
- $('.nivo-slice').remove();
4753
- $('.nivo-box').remove();
4754
- });
4676
+ (function($) {
4677
+ var NivoSlider = function(element, options){
4678
+ // Defaults are below
4679
+ var settings = $.extend({}, $.fn.nivoSlider.defaults, options);
4680
+
4681
+ // Useful variables. Play carefully.
4682
+ var vars = {
4683
+ currentSlide: 0,
4684
+ currentImage: '',
4685
+ totalSlides: 0,
4686
+ running: false,
4687
+ paused: false,
4688
+ stop: false,
4689
+ controlNavEl: false
4690
+ };
4755
4691
 
4756
- //Create caption
4757
- slider.append($('<div class="nivo-caption"></div>'));
4692
+ // Get this slider
4693
+ var slider = $(element);
4694
+ slider.data('nivo:vars', vars).addClass('nivoSlider');
4758
4695
 
4759
- // Process caption function
4760
- var processCaption = function(settings){
4761
- var nivoCaption = $('.nivo-caption', slider);
4762
- if(vars.currentImage.attr('title') != '' && vars.currentImage.attr('title') != undefined){
4763
- var title = vars.currentImage.attr('title');
4764
- if(title.substr(0,1) == '#') title = $(title).html();
4696
+ // Find our slider children
4697
+ var kids = slider.children();
4698
+ kids.each(function() {
4699
+ var child = $(this);
4700
+ var link = '';
4701
+ if(!child.is('img')){
4702
+ if(child.is('a')){
4703
+ child.addClass('nivo-imageLink');
4704
+ link = child;
4705
+ }
4706
+ child = child.find('img:first');
4707
+ }
4708
+ // Get img width & height
4709
+ var childWidth = (childWidth === 0) ? child.attr('width') : child.width(),
4710
+ childHeight = (childHeight === 0) ? child.attr('height') : child.height();
4765
4711
 
4766
- if(nivoCaption.css('display') == 'block'){
4767
- setTimeout(function(){
4768
- nivoCaption.html(title);
4769
- }, settings.animSpeed);
4770
- } else {
4771
- nivoCaption.html(title);
4772
- nivoCaption.stop().fadeIn(settings.animSpeed);
4773
- }
4712
+ if(link !== ''){
4713
+ link.css('display','none');
4714
+ }
4715
+ child.css('display','none');
4716
+ vars.totalSlides++;
4717
+ });
4718
+
4719
+ // If randomStart
4720
+ if(settings.randomStart){
4721
+ settings.startSlide = Math.floor(Math.random() * vars.totalSlides);
4722
+ }
4723
+
4724
+ // Set startSlide
4725
+ if(settings.startSlide > 0){
4726
+ if(settings.startSlide >= vars.totalSlides) { settings.startSlide = vars.totalSlides - 1; }
4727
+ vars.currentSlide = settings.startSlide;
4728
+ }
4729
+
4730
+ // Get initial image
4731
+ if($(kids[vars.currentSlide]).is('img')){
4732
+ vars.currentImage = $(kids[vars.currentSlide]);
4774
4733
  } else {
4775
- nivoCaption.stop().fadeOut(settings.animSpeed);
4734
+ vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
4776
4735
  }
4777
- }
4778
-
4779
- //Process initial caption
4780
- processCaption(settings);
4781
-
4782
- // In the words of Super Mario "let's a go!"
4783
- var timer = 0;
4784
- if(!settings.manualAdvance && kids.length > 1){
4785
- timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
4786
- }
4787
-
4788
- // Add Direction nav
4789
- if(settings.directionNav){
4790
- slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+ settings.prevText +'</a><a class="nivo-nextNav">'+ settings.nextText +'</a></div>');
4791
-
4792
- $('a.nivo-prevNav', slider).live('click', function(){
4793
- if(vars.running) { return false; }
4794
- clearInterval(timer);
4795
- timer = '';
4796
- vars.currentSlide -= 2;
4797
- nivoRun(slider, kids, settings, 'prev');
4736
+
4737
+ // Show initial link
4738
+ if($(kids[vars.currentSlide]).is('a')){
4739
+ $(kids[vars.currentSlide]).css('display','block');
4740
+ }
4741
+
4742
+ // Set first background
4743
+ var sliderImg = $('<img/>').addClass('nivo-main-image');
4744
+ sliderImg.attr('src', vars.currentImage.attr('src')).show();
4745
+ slider.append(sliderImg);
4746
+
4747
+ // Detect Window Resize
4748
+ $(window).resize(function() {
4749
+ slider.children('img').width(slider.width());
4750
+ sliderImg.attr('src', vars.currentImage.attr('src'));
4751
+ sliderImg.stop().height('auto');
4752
+ $('.nivo-slice').remove();
4753
+ $('.nivo-box').remove();
4798
4754
  });
4799
4755
 
4800
- $('a.nivo-nextNav', slider).live('click', function(){
4801
- if(vars.running) { return false; }
4802
- clearInterval(timer);
4803
- timer = '';
4804
- nivoRun(slider, kids, settings, 'next');
4805
- });
4806
- }
4807
-
4808
- // Add Control nav
4809
- if(settings.controlNav){
4810
- vars.controlNavEl = $('<div class="nivo-controlNav"></div>');
4811
- slider.after(vars.controlNavEl);
4812
- for(var i = 0; i < kids.length; i++){
4813
- if(settings.controlNavThumbs){
4814
- vars.controlNavEl.addClass('nivo-thumbs-enabled');
4815
- var child = kids.eq(i);
4816
- if(!child.is('img')){
4817
- child = child.find('img:first');
4756
+ //Create caption
4757
+ slider.append($('<div class="nivo-caption"></div>'));
4758
+
4759
+ // Process caption function
4760
+ var processCaption = function(settings){
4761
+ var nivoCaption = $('.nivo-caption', slider);
4762
+ if(vars.currentImage.attr('title') != '' && vars.currentImage.attr('title') != undefined){
4763
+ var title = vars.currentImage.attr('title');
4764
+ if(title.substr(0,1) == '#') title = $(title).html();
4765
+
4766
+ if(nivoCaption.css('display') == 'block'){
4767
+ setTimeout(function(){
4768
+ nivoCaption.html(title);
4769
+ }, settings.animSpeed);
4770
+ } else {
4771
+ nivoCaption.html(title);
4772
+ nivoCaption.stop().fadeIn(settings.animSpeed);
4773
+ }
4774
+ } else {
4775
+ nivoCaption.stop().fadeOut(settings.animSpeed);
4818
4776
  }
4819
- if(child.attr('data-thumb')) vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'"><img src="'+ child.attr('data-thumb') +'" alt="" /></a>');
4820
- } else {
4821
- vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'">'+ (i + 1) +'</a>');
4822
- }
4823
4777
  }
4824
-
4825
- //Set initial active link
4826
- $('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active');
4827
-
4828
- $('a', vars.controlNavEl).bind('click', function(){
4829
- if(vars.running) return false;
4830
- if($(this).hasClass('active')) return false;
4831
- clearInterval(timer);
4832
- timer = '';
4833
- sliderImg.attr('src', vars.currentImage.attr('src'));
4834
- vars.currentSlide = $(this).attr('rel') - 1;
4835
- nivoRun(slider, kids, settings, 'control');
4778
+
4779
+ //Process initial caption
4780
+ processCaption(settings);
4781
+
4782
+ // In the words of Super Mario "let's a go!"
4783
+ var timer = 0;
4784
+ if(!settings.manualAdvance && kids.length > 1){
4785
+ timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
4786
+ }
4787
+
4788
+ // Add Direction nav
4789
+ if(settings.directionNav){
4790
+ slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">'+ settings.prevText +'</a><a class="nivo-nextNav">'+ settings.nextText +'</a></div>');
4791
+
4792
+ $(slider).on('click', 'a.nivo-prevNav', function(){
4793
+ if(vars.running) { return false; }
4794
+ clearInterval(timer);
4795
+ timer = '';
4796
+ vars.currentSlide -= 2;
4797
+ nivoRun(slider, kids, settings, 'prev');
4836
4798
  });
4799
+
4800
+ $(slider).on('click', 'a.nivo-nextNav', function(){
4801
+ if(vars.running) { return false; }
4802
+ clearInterval(timer);
4803
+ timer = '';
4804
+ nivoRun(slider, kids, settings, 'next');
4805
+ });
4806
+ }
4807
+
4808
+ // Add Control nav
4809
+ if(settings.controlNav){
4810
+ vars.controlNavEl = $('<div class="nivo-controlNav"></div>');
4811
+ slider.after(vars.controlNavEl);
4812
+ for(var i = 0; i < kids.length; i++){
4813
+ if(settings.controlNavThumbs){
4814
+ vars.controlNavEl.addClass('nivo-thumbs-enabled');
4815
+ var child = kids.eq(i);
4816
+ if(!child.is('img')){
4817
+ child = child.find('img:first');
4818
+ }
4819
+ if(child.attr('data-thumb')) vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'"><img src="'+ child.attr('data-thumb') +'" alt="" /></a>');
4820
+ } else {
4821
+ vars.controlNavEl.append('<a class="nivo-control" rel="'+ i +'">'+ (i + 1) +'</a>');
4822
+ }
4837
4823
  }
4838
4824
 
4839
- //For pauseOnHover setting
4840
- if(settings.pauseOnHover){
4841
- slider.hover(function(){
4825
+ //Set initial active link
4826
+ $('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active');
4827
+
4828
+ $('a', vars.controlNavEl).bind('click', function(){
4829
+ if(vars.running) return false;
4830
+ if($(this).hasClass('active')) return false;
4831
+ clearInterval(timer);
4832
+ timer = '';
4833
+ sliderImg.attr('src', vars.currentImage.attr('src'));
4834
+ vars.currentSlide = $(this).attr('rel') - 1;
4835
+ nivoRun(slider, kids, settings, 'control');
4836
+ });
4837
+ }
4838
+
4839
+ //For pauseOnHover setting
4840
+ if(settings.pauseOnHover){
4841
+ slider.hover(function(){
4842
4842
  vars.paused = true;
4843
4843
  clearInterval(timer);
4844
4844
  timer = '';
4845
- }, function(){
4845
+ }, function(){
4846
4846
  vars.paused = false;
4847
4847
  // Restart the timer
4848
4848
  if(timer === '' && !settings.manualAdvance){
4849
- timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
4849
+ timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
4850
4850
  }
4851
- });
4852
- }
4853
-
4854
- // Event when Animation finishes
4855
- slider.bind('nivo:animFinished', function(){
4856
- sliderImg.attr('src', vars.currentImage.attr('src'));
4857
- vars.running = false;
4858
- // Hide child links
4859
- $(kids).each(function(){
4851
+ });
4852
+ }
4853
+
4854
+ // Event when Animation finishes
4855
+ slider.bind('nivo:animFinished', function(){
4856
+ sliderImg.attr('src', vars.currentImage.attr('src'));
4857
+ vars.running = false;
4858
+ // Hide child links
4859
+ $(kids).each(function(){
4860
4860
  if($(this).is('a')){
4861
- $(this).css('display','none');
4861
+ $(this).css('display','none');
4862
4862
  }
4863
- });
4864
- // Show current link
4865
- if($(kids[vars.currentSlide]).is('a')){
4863
+ });
4864
+ // Show current link
4865
+ if($(kids[vars.currentSlide]).is('a')){
4866
4866
  $(kids[vars.currentSlide]).css('display','block');
4867
- }
4868
- // Restart the timer
4869
- if(timer === '' && !vars.paused && !settings.manualAdvance){
4867
+ }
4868
+ // Restart the timer
4869
+ if(timer === '' && !vars.paused && !settings.manualAdvance){
4870
4870
  timer = setInterval(function(){ nivoRun(slider, kids, settings, false); }, settings.pauseTime);
4871
- }
4872
- // Trigger the afterChange callback
4873
- settings.afterChange.call(this);
4874
- });
4875
-
4876
- // Add slices for slice animations
4877
- var createSlices = function(slider, settings, vars) {
4878
- if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block');
4879
- $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
4880
- var sliceHeight = ($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().is('a')) ? $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().height() : $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height();
4881
-
4882
- for(var i = 0; i < settings.slices; i++){
4871
+ }
4872
+ // Trigger the afterChange callback
4873
+ settings.afterChange.call(this);
4874
+ });
4875
+
4876
+ // Add slices for slice animations
4877
+ var createSlices = function(slider, settings, vars) {
4878
+ if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block');
4879
+ $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
4880
+ var sliceHeight = ($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().is('a')) ? $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').parent().height() : $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height();
4881
+
4882
+ for(var i = 0; i < settings.slices; i++){
4883
4883
  var sliceWidth = Math.round(slider.width()/settings.slices);
4884
-
4884
+
4885
4885
  if(i === settings.slices-1){
4886
- slider.append(
4887
- $('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({
4888
- left:(sliceWidth*i)+'px',
4889
- width:(slider.width()-(sliceWidth*i))+'px',
4890
- height:sliceHeight+'px',
4891
- opacity:'0',
4892
- overflow:'hidden'
4893
- })
4894
- );
4886
+ slider.append(
4887
+ $('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({
4888
+ left:(sliceWidth*i)+'px',
4889
+ width:(slider.width()-(sliceWidth*i))+'px',
4890
+ height:sliceHeight+'px',
4891
+ opacity:'0',
4892
+ overflow:'hidden'
4893
+ })
4894
+ );
4895
4895
  } else {
4896
- slider.append(
4897
- $('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({
4898
- left:(sliceWidth*i)+'px',
4899
- width:sliceWidth+'px',
4900
- height:sliceHeight+'px',
4901
- opacity:'0',
4902
- overflow:'hidden'
4903
- })
4904
- );
4896
+ slider.append(
4897
+ $('<div class="nivo-slice" name="'+i+'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block !important; top:0; left:-'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px;" /></div>').css({
4898
+ left:(sliceWidth*i)+'px',
4899
+ width:sliceWidth+'px',
4900
+ height:sliceHeight+'px',
4901
+ opacity:'0',
4902
+ overflow:'hidden'
4903
+ })
4904
+ );
4905
4905
  }
4906
- }
4907
-
4908
- $('.nivo-slice', slider).height(sliceHeight);
4909
- sliderImg.stop().animate({
4906
+ }
4907
+
4908
+ $('.nivo-slice', slider).height(sliceHeight);
4909
+ sliderImg.stop().animate({
4910
4910
  height: $(vars.currentImage).height()
4911
- }, settings.animSpeed);
4912
- };
4913
-
4914
- // Add boxes for box animations
4915
- var createBoxes = function(slider, settings, vars){
4916
- if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block');
4917
- $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
4918
- var boxWidth = Math.round(slider.width()/settings.boxCols),
4919
- boxHeight = Math.round($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height() / settings.boxRows);
4920
-
4921
-
4922
- for(var rows = 0; rows < settings.boxRows; rows++){
4911
+ }, settings.animSpeed);
4912
+ };
4913
+
4914
+ // Add boxes for box animations
4915
+ var createBoxes = function(slider, settings, vars){
4916
+ if($(vars.currentImage).parent().is('a')) $(vars.currentImage).parent().css('display','block');
4917
+ $('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').width(slider.width()).css('visibility', 'hidden').show();
4918
+ var boxWidth = Math.round(slider.width()/settings.boxCols),
4919
+ boxHeight = Math.round($('img[src="'+ vars.currentImage.attr('src') +'"]', slider).not('.nivo-main-image,.nivo-control img').height() / settings.boxRows);
4920
+
4921
+
4922
+ for(var rows = 0; rows < settings.boxRows; rows++){
4923
4923
  for(var cols = 0; cols < settings.boxCols; cols++){
4924
- if(cols === settings.boxCols-1){
4925
- slider.append(
4926
- $('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({
4927
- opacity:0,
4928
- left:(boxWidth*cols)+'px',
4929
- top:(boxHeight*rows)+'px',
4930
- width:(slider.width()-(boxWidth*cols))+'px'
4931
-
4932
- })
4924
+ if(cols === settings.boxCols-1){
4925
+ slider.append(
4926
+ $('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({
4927
+ opacity:0,
4928
+ left:(boxWidth*cols)+'px',
4929
+ top:(boxHeight*rows)+'px',
4930
+ width:(slider.width()-(boxWidth*cols))+'px'
4931
+
4932
+ })
4933
4933
  );
4934
- $('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px');
4935
- } else {
4936
- slider.append(
4937
- $('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({
4938
- opacity:0,
4939
- left:(boxWidth*cols)+'px',
4940
- top:(boxHeight*rows)+'px',
4941
- width:boxWidth+'px'
4942
- })
4934
+ $('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px');
4935
+ } else {
4936
+ slider.append(
4937
+ $('<div class="nivo-box" name="'+ cols +'" rel="'+ rows +'"><img src="'+ vars.currentImage.attr('src') +'" style="position:absolute; width:'+ slider.width() +'px; height:auto; display:block; top:-'+ (boxHeight*rows) +'px; left:-'+ (boxWidth*cols) +'px;" /></div>').css({
4938
+ opacity:0,
4939
+ left:(boxWidth*cols)+'px',
4940
+ top:(boxHeight*rows)+'px',
4941
+ width:boxWidth+'px'
4942
+ })
4943
4943
  );
4944
- $('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px');
4945
- }
4944
+ $('.nivo-box[name="'+ cols +'"]', slider).height($('.nivo-box[name="'+ cols +'"] img', slider).height()+'px');
4945
+ }
4946
4946
  }
4947
- }
4948
-
4949
- sliderImg.stop().animate({
4947
+ }
4948
+
4949
+ sliderImg.stop().animate({
4950
4950
  height: $(vars.currentImage).height()
4951
- }, settings.animSpeed);
4952
- };
4953
-
4954
- // Private run method
4955
- var nivoRun = function(slider, kids, settings, nudge){
4956
- // Get our vars
4957
- var vars = slider.data('nivo:vars');
4951
+ }, settings.animSpeed);
4952
+ };
4958
4953
 
4959
- // Trigger the lastSlide callback
4960
- if(vars && (vars.currentSlide === vars.totalSlides - 1)){
4954
+ // Private run method
4955
+ var nivoRun = function(slider, kids, settings, nudge){
4956
+ // Get our vars
4957
+ var vars = slider.data('nivo:vars');
4958
+
4959
+ // Trigger the lastSlide callback
4960
+ if(vars && (vars.currentSlide === vars.totalSlides - 1)){
4961
4961
  settings.lastSlide.call(this);
4962
- }
4963
-
4964
- // Stop
4965
- if((!vars || vars.stop) && !nudge) { return false; }
4966
-
4967
- // Trigger the beforeChange callback
4968
- settings.beforeChange.call(this);
4969
-
4970
- // Set current background before change
4971
- if(!nudge){
4962
+ }
4963
+
4964
+ // Stop
4965
+ if((!vars || vars.stop) && !nudge) { return false; }
4966
+
4967
+ // Trigger the beforeChange callback
4968
+ settings.beforeChange.call(this);
4969
+
4970
+ // Set current background before change
4971
+ if(!nudge){
4972
4972
  sliderImg.attr('src', vars.currentImage.attr('src'));
4973
- } else {
4973
+ } else {
4974
4974
  if(nudge === 'prev'){
4975
- sliderImg.attr('src', vars.currentImage.attr('src'));
4975
+ sliderImg.attr('src', vars.currentImage.attr('src'));
4976
4976
  }
4977
4977
  if(nudge === 'next'){
4978
- sliderImg.attr('src', vars.currentImage.attr('src'));
4978
+ sliderImg.attr('src', vars.currentImage.attr('src'));
4979
4979
  }
4980
- }
4981
-
4982
- vars.currentSlide++;
4983
- // Trigger the slideshowEnd callback
4984
- if(vars.currentSlide === vars.totalSlides){
4980
+ }
4981
+
4982
+ vars.currentSlide++;
4983
+ // Trigger the slideshowEnd callback
4984
+ if(vars.currentSlide === vars.totalSlides){
4985
4985
  vars.currentSlide = 0;
4986
4986
  settings.slideshowEnd.call(this);
4987
- }
4988
- if(vars.currentSlide < 0) { vars.currentSlide = (vars.totalSlides - 1); }
4989
- // Set vars.currentImage
4990
- if($(kids[vars.currentSlide]).is('img')){
4987
+ }
4988
+ if(vars.currentSlide < 0) { vars.currentSlide = (vars.totalSlides - 1); }
4989
+ // Set vars.currentImage
4990
+ if($(kids[vars.currentSlide]).is('img')){
4991
4991
  vars.currentImage = $(kids[vars.currentSlide]);
4992
- } else {
4992
+ } else {
4993
4993
  vars.currentImage = $(kids[vars.currentSlide]).find('img:first');
4994
- }
4995
-
4996
- // Set active links
4997
- if(settings.controlNav){
4994
+ }
4995
+
4996
+ // Set active links
4997
+ if(settings.controlNav){
4998
4998
  $('a', vars.controlNavEl).removeClass('active');
4999
4999
  $('a:eq('+ vars.currentSlide +')', vars.controlNavEl).addClass('active');
5000
- }
5001
-
5002
- // Process caption
5003
- processCaption(settings);
5004
-
5005
- // Remove any slices from last transition
5006
- $('.nivo-slice', slider).remove();
5007
-
5008
- // Remove any boxes from last transition
5009
- $('.nivo-box', slider).remove();
5010
-
5011
- var currentEffect = settings.effect,
5012
- anims = '';
5013
-
5014
- // Generate random effect
5015
- if(settings.effect === 'random'){
5016
- anims = new Array('sliceDownRight','sliceDownLeft','sliceUpRight','sliceUpLeft','sliceUpDown','sliceUpDownLeft','fold','fade',
5017
- 'boxRandom','boxRain','boxRainReverse','boxRainGrow','boxRainGrowReverse');
5018
- currentEffect = anims[Math.floor(Math.random()*(anims.length + 1))];
5019
- if(currentEffect === undefined) { currentEffect = 'fade'; }
5020
- }
5021
-
5022
- // Run random effect from specified set (eg: effect:'fold,fade')
5023
- if(settings.effect.indexOf(',') !== -1){
5024
- anims = settings.effect.split(',');
5025
- currentEffect = anims[Math.floor(Math.random()*(anims.length))];
5026
- if(currentEffect === undefined) { currentEffect = 'fade'; }
5027
- }
5028
-
5029
- // Custom transition as defined by "data-transition" attribute
5030
- if(vars.currentImage.attr('data-transition')){
5031
- currentEffect = vars.currentImage.attr('data-transition');
5032
- }
5033
-
5034
- // Run effects
5035
- vars.running = true;
5036
- var timeBuff = 0,
5037
- i = 0,
5038
- slices = '',
5039
- firstSlice = '',
5040
- totalBoxes = '',
5041
- boxes = '';
5042
-
5043
- if(currentEffect === 'sliceDown' || currentEffect === 'sliceDownRight' || currentEffect === 'sliceDownLeft'){
5044
- createSlices(slider, settings, vars);
5045
- timeBuff = 0;
5046
- i = 0;
5047
- slices = $('.nivo-slice', slider);
5048
- if(currentEffect === 'sliceDownLeft') { slices = $('.nivo-slice', slider)._reverse(); }
5049
-
5050
- slices.each(function(){
5051
- var slice = $(this);
5052
- slice.css({ 'top': '0px' });
5053
- if(i === settings.slices-1){
5054
- setTimeout(function(){
5000
+ }
5001
+
5002
+ // Process caption
5003
+ processCaption(settings);
5004
+
5005
+ // Remove any slices from last transition
5006
+ $('.nivo-slice', slider).remove();
5007
+
5008
+ // Remove any boxes from last transition
5009
+ $('.nivo-box', slider).remove();
5010
+
5011
+ var currentEffect = settings.effect,
5012
+ anims = '';
5013
+
5014
+ // Generate random effect
5015
+ if(settings.effect === 'random'){
5016
+ anims = new Array('sliceDownRight','sliceDownLeft','sliceUpRight','sliceUpLeft','sliceUpDown','sliceUpDownLeft','fold','fade',
5017
+ 'boxRandom','boxRain','boxRainReverse','boxRainGrow','boxRainGrowReverse');
5018
+ currentEffect = anims[Math.floor(Math.random()*(anims.length + 1))];
5019
+ if(currentEffect === undefined) { currentEffect = 'fade'; }
5020
+ }
5021
+
5022
+ // Run random effect from specified set (eg: effect:'fold,fade')
5023
+ if(settings.effect.indexOf(',') !== -1){
5024
+ anims = settings.effect.split(',');
5025
+ currentEffect = anims[Math.floor(Math.random()*(anims.length))];
5026
+ if(currentEffect === undefined) { currentEffect = 'fade'; }
5027
+ }
5028
+
5029
+ // Custom transition as defined by "data-transition" attribute
5030
+ if(vars.currentImage.attr('data-transition')){
5031
+ currentEffect = vars.currentImage.attr('data-transition');
5032
+ }
5033
+
5034
+ // Run effects
5035
+ vars.running = true;
5036
+ var timeBuff = 0,
5037
+ i = 0,
5038
+ slices = '',
5039
+ firstSlice = '',
5040
+ totalBoxes = '',
5041
+ boxes = '';
5042
+
5043
+ if(currentEffect === 'sliceDown' || currentEffect === 'sliceDownRight' || currentEffect === 'sliceDownLeft'){
5044
+ createSlices(slider, settings, vars);
5045
+ timeBuff = 0;
5046
+ i = 0;
5047
+ slices = $('.nivo-slice', slider);
5048
+ if(currentEffect === 'sliceDownLeft') { slices = $('.nivo-slice', slider)._reverse(); }
5049
+
5050
+ slices.each(function(){
5051
+ var slice = $(this);
5052
+ slice.css({ 'top': '0px' });
5053
+ if(i === settings.slices-1){
5054
+ setTimeout(function(){
5055
5055
  slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
5056
- }, (100 + timeBuff));
5057
- } else {
5058
- setTimeout(function(){
5056
+ }, (100 + timeBuff));
5057
+ } else {
5058
+ setTimeout(function(){
5059
5059
  slice.animate({opacity:'1.0' }, settings.animSpeed);
5060
- }, (100 + timeBuff));
5061
- }
5062
- timeBuff += 50;
5063
- i++;
5064
- });
5065
- } else if(currentEffect === 'sliceUp' || currentEffect === 'sliceUpRight' || currentEffect === 'sliceUpLeft'){
5066
- createSlices(slider, settings, vars);
5067
- timeBuff = 0;
5068
- i = 0;
5069
- slices = $('.nivo-slice', slider);
5070
- if(currentEffect === 'sliceUpLeft') { slices = $('.nivo-slice', slider)._reverse(); }
5071
-
5072
- slices.each(function(){
5073
- var slice = $(this);
5074
- slice.css({ 'bottom': '0px' });
5075
- if(i === settings.slices-1){
5076
- setTimeout(function(){
5060
+ }, (100 + timeBuff));
5061
+ }
5062
+ timeBuff += 50;
5063
+ i++;
5064
+ });
5065
+ } else if(currentEffect === 'sliceUp' || currentEffect === 'sliceUpRight' || currentEffect === 'sliceUpLeft'){
5066
+ createSlices(slider, settings, vars);
5067
+ timeBuff = 0;
5068
+ i = 0;
5069
+ slices = $('.nivo-slice', slider);
5070
+ if(currentEffect === 'sliceUpLeft') { slices = $('.nivo-slice', slider)._reverse(); }
5071
+
5072
+ slices.each(function(){
5073
+ var slice = $(this);
5074
+ slice.css({ 'bottom': '0px' });
5075
+ if(i === settings.slices-1){
5076
+ setTimeout(function(){
5077
5077
  slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
5078
- }, (100 + timeBuff));
5079
- } else {
5080
- setTimeout(function(){
5078
+ }, (100 + timeBuff));
5079
+ } else {
5080
+ setTimeout(function(){
5081
5081
  slice.animate({opacity:'1.0' }, settings.animSpeed);
5082
- }, (100 + timeBuff));
5083
- }
5084
- timeBuff += 50;
5082
+ }, (100 + timeBuff));
5083
+ }
5084
+ timeBuff += 50;
5085
+ i++;
5086
+ });
5087
+ } else if(currentEffect === 'sliceUpDown' || currentEffect === 'sliceUpDownRight' || currentEffect === 'sliceUpDownLeft'){
5088
+ createSlices(slider, settings, vars);
5089
+ timeBuff = 0;
5090
+ i = 0;
5091
+ var v = 0;
5092
+ slices = $('.nivo-slice', slider);
5093
+ if(currentEffect === 'sliceUpDownLeft') { slices = $('.nivo-slice', slider)._reverse(); }
5094
+
5095
+ slices.each(function(){
5096
+ var slice = $(this);
5097
+ if(i === 0){
5098
+ slice.css('top','0px');
5085
5099
  i++;
5086
- });
5087
- } else if(currentEffect === 'sliceUpDown' || currentEffect === 'sliceUpDownRight' || currentEffect === 'sliceUpDownLeft'){
5088
- createSlices(slider, settings, vars);
5089
- timeBuff = 0;
5090
- i = 0;
5091
- var v = 0;
5092
- slices = $('.nivo-slice', slider);
5093
- if(currentEffect === 'sliceUpDownLeft') { slices = $('.nivo-slice', slider)._reverse(); }
5094
-
5095
- slices.each(function(){
5096
- var slice = $(this);
5097
- if(i === 0){
5098
- slice.css('top','0px');
5099
- i++;
5100
- } else {
5101
- slice.css('bottom','0px');
5102
- i = 0;
5103
- }
5104
-
5105
- if(v === settings.slices-1){
5106
- setTimeout(function(){
5100
+ } else {
5101
+ slice.css('bottom','0px');
5102
+ i = 0;
5103
+ }
5104
+
5105
+ if(v === settings.slices-1){
5106
+ setTimeout(function(){
5107
5107
  slice.animate({opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
5108
- }, (100 + timeBuff));
5109
- } else {
5110
- setTimeout(function(){
5108
+ }, (100 + timeBuff));
5109
+ } else {
5110
+ setTimeout(function(){
5111
5111
  slice.animate({opacity:'1.0' }, settings.animSpeed);
5112
- }, (100 + timeBuff));
5113
- }
5114
- timeBuff += 50;
5115
- v++;
5116
- });
5117
- } else if(currentEffect === 'fold'){
5118
- createSlices(slider, settings, vars);
5119
- timeBuff = 0;
5120
- i = 0;
5121
-
5122
- $('.nivo-slice', slider).each(function(){
5123
- var slice = $(this);
5124
- var origWidth = slice.width();
5125
- slice.css({ top:'0px', width:'0px' });
5126
- if(i === settings.slices-1){
5127
- setTimeout(function(){
5112
+ }, (100 + timeBuff));
5113
+ }
5114
+ timeBuff += 50;
5115
+ v++;
5116
+ });
5117
+ } else if(currentEffect === 'fold'){
5118
+ createSlices(slider, settings, vars);
5119
+ timeBuff = 0;
5120
+ i = 0;
5121
+
5122
+ $('.nivo-slice', slider).each(function(){
5123
+ var slice = $(this);
5124
+ var origWidth = slice.width();
5125
+ slice.css({ top:'0px', width:'0px' });
5126
+ if(i === settings.slices-1){
5127
+ setTimeout(function(){
5128
5128
  slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
5129
- }, (100 + timeBuff));
5130
- } else {
5131
- setTimeout(function(){
5129
+ }, (100 + timeBuff));
5130
+ } else {
5131
+ setTimeout(function(){
5132
5132
  slice.animate({ width:origWidth, opacity:'1.0' }, settings.animSpeed);
5133
- }, (100 + timeBuff));
5134
- }
5135
- timeBuff += 50;
5136
- i++;
5137
- });
5138
- } else if(currentEffect === 'fade'){
5139
- createSlices(slider, settings, vars);
5140
-
5141
- firstSlice = $('.nivo-slice:first', slider);
5142
- firstSlice.css({
5143
- 'width': slider.width() + 'px'
5144
- });
5145
-
5146
- firstSlice.animate({ opacity:'1.0' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });
5147
- } else if(currentEffect === 'slideInRight'){
5148
- createSlices(slider, settings, vars);
5149
-
5150
- firstSlice = $('.nivo-slice:first', slider);
5151
- firstSlice.css({
5152
- 'width': '0px',
5153
- 'opacity': '1'
5154
- });
5155
-
5156
- firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });
5157
- } else if(currentEffect === 'slideInLeft'){
5158
- createSlices(slider, settings, vars);
5159
-
5160
- firstSlice = $('.nivo-slice:first', slider);
5161
- firstSlice.css({
5162
- 'width': '0px',
5163
- 'opacity': '1',
5164
- 'left': '',
5165
- 'right': '0px'
5166
- });
5167
-
5168
- firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){
5169
- // Reset positioning
5170
- firstSlice.css({
5171
- 'left': '0px',
5172
- 'right': ''
5173
- });
5174
- slider.trigger('nivo:animFinished');
5175
- });
5176
- } else if(currentEffect === 'boxRandom'){
5177
- createBoxes(slider, settings, vars);
5178
-
5179
- totalBoxes = settings.boxCols * settings.boxRows;
5180
- i = 0;
5181
- timeBuff = 0;
5182
-
5183
- boxes = shuffle($('.nivo-box', slider));
5184
- boxes.each(function(){
5185
- var box = $(this);
5186
- if(i === totalBoxes-1){
5187
- setTimeout(function(){
5133
+ }, (100 + timeBuff));
5134
+ }
5135
+ timeBuff += 50;
5136
+ i++;
5137
+ });
5138
+ } else if(currentEffect === 'fade'){
5139
+ createSlices(slider, settings, vars);
5140
+
5141
+ firstSlice = $('.nivo-slice:first', slider);
5142
+ firstSlice.css({
5143
+ 'width': slider.width() + 'px'
5144
+ });
5145
+
5146
+ firstSlice.animate({ opacity:'1.0' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });
5147
+ } else if(currentEffect === 'slideInRight'){
5148
+ createSlices(slider, settings, vars);
5149
+
5150
+ firstSlice = $('.nivo-slice:first', slider);
5151
+ firstSlice.css({
5152
+ 'width': '0px',
5153
+ 'opacity': '1'
5154
+ });
5155
+
5156
+ firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){ slider.trigger('nivo:animFinished'); });
5157
+ } else if(currentEffect === 'slideInLeft'){
5158
+ createSlices(slider, settings, vars);
5159
+
5160
+ firstSlice = $('.nivo-slice:first', slider);
5161
+ firstSlice.css({
5162
+ 'width': '0px',
5163
+ 'opacity': '1',
5164
+ 'left': '',
5165
+ 'right': '0px'
5166
+ });
5167
+
5168
+ firstSlice.animate({ width: slider.width() + 'px' }, (settings.animSpeed*2), '', function(){
5169
+ // Reset positioning
5170
+ firstSlice.css({
5171
+ 'left': '0px',
5172
+ 'right': ''
5173
+ });
5174
+ slider.trigger('nivo:animFinished');
5175
+ });
5176
+ } else if(currentEffect === 'boxRandom'){
5177
+ createBoxes(slider, settings, vars);
5178
+
5179
+ totalBoxes = settings.boxCols * settings.boxRows;
5180
+ i = 0;
5181
+ timeBuff = 0;
5182
+
5183
+ boxes = shuffle($('.nivo-box', slider));
5184
+ boxes.each(function(){
5185
+ var box = $(this);
5186
+ if(i === totalBoxes-1){
5187
+ setTimeout(function(){
5188
5188
  box.animate({ opacity:'1' }, settings.animSpeed, '', function(){ slider.trigger('nivo:animFinished'); });
5189
- }, (100 + timeBuff));
5190
- } else {
5191
- setTimeout(function(){
5189
+ }, (100 + timeBuff));
5190
+ } else {
5191
+ setTimeout(function(){
5192
5192
  box.animate({ opacity:'1' }, settings.animSpeed);
5193
- }, (100 + timeBuff));
5194
- }
5195
- timeBuff += 20;
5196
- i++;
5197
- });
5198
- } else if(currentEffect === 'boxRain' || currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){
5199
- createBoxes(slider, settings, vars);
5200
-
5201
- totalBoxes = settings.boxCols * settings.boxRows;
5202
- i = 0;
5203
- timeBuff = 0;
5204
-
5205
- // Split boxes into 2D array
5206
- var rowIndex = 0;
5207
- var colIndex = 0;
5208
- var box2Darr = [];
5209
- box2Darr[rowIndex] = [];
5210
- boxes = $('.nivo-box', slider);
5211
- if(currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrowReverse'){
5212
- boxes = $('.nivo-box', slider)._reverse();
5213
- }
5214
- boxes.each(function(){
5215
- box2Darr[rowIndex][colIndex] = $(this);
5216
- colIndex++;
5217
- if(colIndex === settings.boxCols){
5218
- rowIndex++;
5219
- colIndex = 0;
5220
- box2Darr[rowIndex] = [];
5221
- }
5222
- });
5223
-
5224
- // Run animation
5225
- for(var cols = 0; cols < (settings.boxCols * 2); cols++){
5226
- var prevCol = cols;
5227
- for(var rows = 0; rows < settings.boxRows; rows++){
5228
- if(prevCol >= 0 && prevCol < settings.boxCols){
5193
+ }, (100 + timeBuff));
5194
+ }
5195
+ timeBuff += 20;
5196
+ i++;
5197
+ });
5198
+ } else if(currentEffect === 'boxRain' || currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){
5199
+ createBoxes(slider, settings, vars);
5200
+
5201
+ totalBoxes = settings.boxCols * settings.boxRows;
5202
+ i = 0;
5203
+ timeBuff = 0;
5204
+
5205
+ // Split boxes into 2D array
5206
+ var rowIndex = 0;
5207
+ var colIndex = 0;
5208
+ var box2Darr = [];
5209
+ box2Darr[rowIndex] = [];
5210
+ boxes = $('.nivo-box', slider);
5211
+ if(currentEffect === 'boxRainReverse' || currentEffect === 'boxRainGrowReverse'){
5212
+ boxes = $('.nivo-box', slider)._reverse();
5213
+ }
5214
+ boxes.each(function(){
5215
+ box2Darr[rowIndex][colIndex] = $(this);
5216
+ colIndex++;
5217
+ if(colIndex === settings.boxCols){
5218
+ rowIndex++;
5219
+ colIndex = 0;
5220
+ box2Darr[rowIndex] = [];
5221
+ }
5222
+ });
5223
+
5224
+ // Run animation
5225
+ for(var cols = 0; cols < (settings.boxCols * 2); cols++){
5226
+ var prevCol = cols;
5227
+ for(var rows = 0; rows < settings.boxRows; rows++){
5228
+ if(prevCol >= 0 && prevCol < settings.boxCols){
5229
5229
  /* Due to some weird JS bug with loop vars
5230
- being used in setTimeout, this is wrapped
5231
- with an anonymous function call */
5230
+ being used in setTimeout, this is wrapped
5231
+ with an anonymous function call */
5232
5232
  (function(row, col, time, i, totalBoxes) {
5233
- var box = $(box2Darr[row][col]);
5234
- var w = box.width();
5235
- var h = box.height();
5236
- if(currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){
5237
- box.width(0).height(0);
5238
- }
5239
- if(i === totalBoxes-1){
5240
- setTimeout(function(){
5241
- box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3, '', function(){ slider.trigger('nivo:animFinished'); });
5242
- }, (100 + time));
5243
- } else {
5244
- setTimeout(function(){
5245
- box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3);
5246
- }, (100 + time));
5247
- }
5233
+ var box = $(box2Darr[row][col]);
5234
+ var w = box.width();
5235
+ var h = box.height();
5236
+ if(currentEffect === 'boxRainGrow' || currentEffect === 'boxRainGrowReverse'){
5237
+ box.width(0).height(0);
5238
+ }
5239
+ if(i === totalBoxes-1){
5240
+ setTimeout(function(){
5241
+ box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3, '', function(){ slider.trigger('nivo:animFinished'); });
5242
+ }, (100 + time));
5243
+ } else {
5244
+ setTimeout(function(){
5245
+ box.animate({ opacity:'1', width:w, height:h }, settings.animSpeed/1.3);
5246
+ }, (100 + time));
5247
+ }
5248
5248
  })(rows, prevCol, timeBuff, i, totalBoxes);
5249
5249
  i++;
5250
- }
5251
- prevCol--;
5252
5250
  }
5253
- timeBuff += 100;
5254
- }
5255
- }
5256
- };
5257
-
5258
- // Shuffle an array
5259
- var shuffle = function(arr){
5260
- for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i, 10), x = arr[--i], arr[i] = arr[j], arr[j] = x);
5261
- return arr;
5262
- };
5263
-
5264
- // For debugging
5265
- var trace = function(msg){
5266
- if(this.console && typeof console.log !== 'undefined') { console.log(msg); }
5267
- };
5268
-
5269
- // Start / Stop
5270
- this.stop = function(){
5271
- if(!$(element).data('nivo:vars').stop){
5251
+ prevCol--;
5252
+ }
5253
+ timeBuff += 100;
5254
+ }
5255
+ }
5256
+ };
5257
+
5258
+ // Shuffle an array
5259
+ var shuffle = function(arr){
5260
+ for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i, 10), x = arr[--i], arr[i] = arr[j], arr[j] = x);
5261
+ return arr;
5262
+ };
5263
+
5264
+ // For debugging
5265
+ var trace = function(msg){
5266
+ if(this.console && typeof console.log !== 'undefined') { console.log(msg); }
5267
+ };
5268
+
5269
+ // Start / Stop
5270
+ this.stop = function(){
5271
+ if(!$(element).data('nivo:vars').stop){
5272
5272
  $(element).data('nivo:vars').stop = true;
5273
5273
  trace('Stop Slider');
5274
- }
5275
- };
5276
-
5277
- this.start = function(){
5278
- if($(element).data('nivo:vars').stop){
5274
+ }
5275
+ };
5276
+
5277
+ this.start = function(){
5278
+ if($(element).data('nivo:vars').stop){
5279
5279
  $(element).data('nivo:vars').stop = false;
5280
5280
  trace('Start Slider');
5281
- }
5282
- };
5283
-
5284
- // Trigger the afterLoad callback
5285
- settings.afterLoad.call(this);
5286
-
5287
- return this;
5281
+ }
5282
+ };
5283
+
5284
+ // Trigger the afterLoad callback
5285
+ settings.afterLoad.call(this);
5286
+
5287
+ return this;
5288
5288
  };
5289
-
5289
+
5290
5290
  $.fn.nivoSlider = function(options) {
5291
- return this.each(function(key, value){
5292
- var element = $(this);
5293
- // Return early if this element already has a plugin instance
5294
- if (element.data('nivoslider')) { return element.data('nivoslider'); }
5295
- // Pass options to plugin constructor
5296
- var nivoslider = new NivoSlider(this, options);
5297
- // Store plugin object in this element's data
5298
- element.data('nivoslider', nivoslider);
5299
- });
5291
+ return this.each(function(key, value){
5292
+ var element = $(this);
5293
+ // Return early if this element already has a plugin instance
5294
+ if (element.data('nivoslider')) { return element.data('nivoslider'); }
5295
+ // Pass options to plugin constructor
5296
+ var nivoslider = new NivoSlider(this, options);
5297
+ // Store plugin object in this element's data
5298
+ element.data('nivoslider', nivoslider);
5299
+ });
5300
5300
  };
5301
-
5301
+
5302
5302
  //Default settings
5303
5303
  $.fn.nivoSlider.defaults = {
5304
- effect: 'random',
5305
- slices: 15,
5306
- boxCols: 8,
5307
- boxRows: 4,
5308
- animSpeed: 500,
5309
- pauseTime: 3000,
5310
- startSlide: 0,
5311
- directionNav: true,
5312
- controlNav: true,
5313
- controlNavThumbs: false,
5314
- pauseOnHover: true,
5315
- manualAdvance: false,
5316
- prevText: 'Prev',
5317
- nextText: 'Next',
5318
- randomStart: false,
5319
- beforeChange: function(){},
5320
- afterChange: function(){},
5321
- slideshowEnd: function(){},
5322
- lastSlide: function(){},
5323
- afterLoad: function(){}
5304
+ effect: 'random',
5305
+ slices: 15,
5306
+ boxCols: 8,
5307
+ boxRows: 4,
5308
+ animSpeed: 500,
5309
+ pauseTime: 3000,
5310
+ startSlide: 0,
5311
+ directionNav: true,
5312
+ controlNav: true,
5313
+ controlNavThumbs: false,
5314
+ pauseOnHover: true,
5315
+ manualAdvance: false,
5316
+ prevText: 'Prev',
5317
+ nextText: 'Next',
5318
+ randomStart: false,
5319
+ beforeChange: function(){},
5320
+ afterChange: function(){},
5321
+ slideshowEnd: function(){},
5322
+ lastSlide: function(){},
5323
+ afterLoad: function(){}
5324
5324
  };
5325
5325
 
5326
5326
  $.fn._reverse = [].reverse;
5327
+
5328
+ })(jQuery);
5327
5329
 
5328
- })(jQuery);
5330
+
5331
+ /*!
5332
+ * Code comes from jQuery Migrate - v1.1.0 - 2013-01-31
5333
+ * https://github.com/jquery/jquery-migrate
5334
+ * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
5335
+ */
5336
+
5337
+ var matched, browser,
5338
+ oldInit = jQuery.fn.init,
5339
+ // Note this does NOT include the # XSS fix from 1.7!
5340
+ rquickExpr = /^(?:.*(<[\w\W]+>)[^>]*|#([\w\-]*))$/;
5341
+
5342
+ // $(html) "looks like html" rule change
5343
+ jQuery.fn.init = function( selector, context, rootjQuery ) {
5344
+ var match;
5345
+
5346
+ if ( selector && typeof selector === "string" && !jQuery.isPlainObject( context ) &&
5347
+ (match = rquickExpr.exec( selector )) && match[1] ) {
5348
+ // This is an HTML string according to the "old" rules; is it still?
5349
+ if ( selector.charAt( 0 ) !== "<" ) {
5350
+ migrateWarn("$(html) HTML strings must start with '<' character");
5351
+ }
5352
+ // Now process using loose rules; let pre-1.8 play too
5353
+ if ( context && context.context ) {
5354
+ // jQuery object as context; parseHTML expects a DOM object
5355
+ context = context.context;
5356
+ }
5357
+ if ( jQuery.parseHTML ) {
5358
+ return oldInit.call( this, jQuery.parseHTML( jQuery.trim(selector), context, true ),
5359
+ context, rootjQuery );
5360
+ }
5361
+ }
5362
+ return oldInit.apply( this, arguments );
5363
+ };
5364
+ jQuery.fn.init.prototype = jQuery.fn;
5365
+
5366
+ jQuery.uaMatch = function( ua ) {
5367
+ ua = ua.toLowerCase();
5368
+
5369
+ var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
5370
+ /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
5371
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
5372
+ /(msie) ([\w.]+)/.exec( ua ) ||
5373
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
5374
+ [];
5375
+
5376
+ return {
5377
+ browser: match[ 1 ] || "",
5378
+ version: match[ 2 ] || "0"
5379
+ };
5380
+ };
5381
+
5382
+ matched = jQuery.uaMatch( navigator.userAgent );
5383
+ browser = {};
5384
+
5385
+ if ( matched.browser ) {
5386
+ browser[ matched.browser ] = true;
5387
+ browser.version = matched.version;
5388
+ }
5389
+
5390
+ // Chrome is Webkit, but Webkit is also Safari.
5391
+ if ( browser.chrome ) {
5392
+ browser.webkit = true;
5393
+ } else if ( browser.webkit ) {
5394
+ browser.safari = true;
5395
+ }
5396
+
5397
+ jQuery.browser = browser;
5329
5398