From b1ad108123196c7dd29a8454486f0ec4afbee355 Mon Sep 17 00:00:00 2001 From: Alexander Negoda Date: Fri, 27 Jul 2012 00:26:23 +0400 Subject: [PATCH] ratings, home slider etc. --- .gitignore | 3 +- .../jquery.plupload.queue.scssc | Bin 20783 -> 0 bytes .../jquery.plupload.queue.scssc | Bin 21157 -> 0 bytes .../jquery.ui.plupload.scssc | Bin 16769 -> 0 bytes Gemfile | 1 + Gemfile.lock | 7 + app/assets/images/ajaxful_rating/star.png | Bin 0 -> 1688 bytes .../images/ajaxful_rating/star_small.png | Bin 0 -> 302 bytes app/assets/images/rails.png | Bin 6646 -> 0 bytes app/assets/javascripts/application.js | 1 + .../stylesheets/ajaxful_rating.css.scss | 91 + app/assets/stylesheets/application.css | 10 +- app/controllers/collections_controller.rb | 10 +- app/models/album.rb | 2 + app/models/collection.rb | 2 + app/models/photo.rb | 6 +- app/models/rate.rb | 7 + app/models/secret_link_observer.rb | 7 + app/models/user.rb | 2 + app/uploaders/file_uploader.rb | 24 +- app/uploaders/userpic_uploader.rb | 7 + app/views/collections/index.html.erb | 50 +- app/views/layouts/bootstrap.html.erb | 12 +- app/views/shared/_head.html.erb | 4 +- app/views/shared/_home_slider.html.erb | 38 + app/views/shared/_screen_resolution.html.erb | 8 + assets/images/ajaxful_rating/star.png | Bin 0 -> 1688 bytes assets/images/ajaxful_rating/star_small.png | Bin 0 -> 302 bytes assets/stylesheets/ajaxful_rating.css.scss | 84 + config/application.rb | 2 +- config/routes.rb | 16 + db/migrate/20090520163842_create_album.rb | 4 + db/migrate/20090520165238_create_photos.rb | 4 + .../20090602131321_create_collections.rb | 3 + db/migrate/20120724213209_create_rates.rb | 18 + db/schema.rb | 40 +- db/seeds.rb | 4 + test/blueprints.rb | 28 +- test/unit/secret_link_observer_test.rb | 7 + .../javascripts/anythingslider/animate.css | 3813 +++++++++++++++++ .../anythingslider/anythingslider.css | 291 ++ .../anythingslider/images/arrows-metallic.png | Bin 0 -> 17088 bytes .../images/arrows-minimalist.png | Bin 0 -> 5667 bytes .../anythingslider/images/construction.gif | Bin 0 -> 21690 bytes .../anythingslider/images/cs-portfolio.png | Bin 0 -> 12506 bytes .../anythingslider/images/default.png | Bin 0 -> 15403 bytes .../jquery.anythingslider.fx.min.js | 6 + .../jquery.anythingslider.min.js | 6 + .../jquery.anythingslider.video.min.js | 8 + .../anythingslider/theme-construction.css | 299 ++ .../anythingslider/theme-cs-portfolio.css | 277 ++ .../anythingslider/theme-metallic.css | 313 ++ .../anythingslider/theme-minimalist-round.css | 311 ++ .../theme-minimalist-square.css | 309 ++ .../assets/javascripts/jquery.easing.1.3.js | 205 + 55 files changed, 6286 insertions(+), 54 deletions(-) delete mode 100644 .sass-cache/53c0ce4446c54bca21eabbfde8aea9e680be8c1a/jquery.plupload.queue.scssc delete mode 100644 .sass-cache/fb46dcf1b33fcd526ffc989de0c2b6e51630b35f/jquery.plupload.queue.scssc delete mode 100644 .sass-cache/fb46dcf1b33fcd526ffc989de0c2b6e51630b35f/jquery.ui.plupload.scssc create mode 100644 app/assets/images/ajaxful_rating/star.png create mode 100644 app/assets/images/ajaxful_rating/star_small.png delete mode 100644 app/assets/images/rails.png create mode 100644 app/assets/stylesheets/ajaxful_rating.css.scss create mode 100644 app/models/rate.rb create mode 100644 app/models/secret_link_observer.rb create mode 100644 app/views/shared/_home_slider.html.erb create mode 100644 app/views/shared/_screen_resolution.html.erb create mode 100644 assets/images/ajaxful_rating/star.png create mode 100644 assets/images/ajaxful_rating/star_small.png create mode 100644 assets/stylesheets/ajaxful_rating.css.scss create mode 100644 db/migrate/20120724213209_create_rates.rb create mode 100644 test/unit/secret_link_observer_test.rb create mode 100644 vendor/assets/javascripts/anythingslider/animate.css create mode 100644 vendor/assets/javascripts/anythingslider/anythingslider.css create mode 100644 vendor/assets/javascripts/anythingslider/images/arrows-metallic.png create mode 100644 vendor/assets/javascripts/anythingslider/images/arrows-minimalist.png create mode 100644 vendor/assets/javascripts/anythingslider/images/construction.gif create mode 100644 vendor/assets/javascripts/anythingslider/images/cs-portfolio.png create mode 100644 vendor/assets/javascripts/anythingslider/images/default.png create mode 100644 vendor/assets/javascripts/anythingslider/jquery.anythingslider.fx.min.js create mode 100644 vendor/assets/javascripts/anythingslider/jquery.anythingslider.min.js create mode 100644 vendor/assets/javascripts/anythingslider/jquery.anythingslider.video.min.js create mode 100644 vendor/assets/javascripts/anythingslider/theme-construction.css create mode 100644 vendor/assets/javascripts/anythingslider/theme-cs-portfolio.css create mode 100644 vendor/assets/javascripts/anythingslider/theme-metallic.css create mode 100644 vendor/assets/javascripts/anythingslider/theme-minimalist-round.css create mode 100644 vendor/assets/javascripts/anythingslider/theme-minimalist-square.css create mode 100644 vendor/assets/javascripts/jquery.easing.1.3.js diff --git a/.gitignore b/.gitignore index db4bc39..6ea9f26 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ Capfile public/thumbs public/uploads vendor/cache -.idea \ No newline at end of file +.idea +.sass-cache \ No newline at end of file diff --git a/.sass-cache/53c0ce4446c54bca21eabbfde8aea9e680be8c1a/jquery.plupload.queue.scssc b/.sass-cache/53c0ce4446c54bca21eabbfde8aea9e680be8c1a/jquery.plupload.queue.scssc deleted file mode 100644 index f8a7c6130e43ca2b8dc0ab23786868e8ff3bd3cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20783 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 SV 'git://github.com/seyhunak/twitter-bootstrap-rails.git' +gem 'ajaxful_rating_jquery', :git => 'git://github.com/baxang/ajaxful_rating_jquery.git'#, :branch => 'rails3' gem 'configatron', :git => 'git://github.com/markbates/configatron.git' gem 'plupload-rails', :git => 'git://github.com/bryanmig/plupload-rails.git' gem 'sequel', :git => 'git://github.com/jeremyevans/sequel.git' diff --git a/Gemfile.lock b/Gemfile.lock index 3de58f5..c5f6b62 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,9 @@ +GIT + remote: git://github.com/baxang/ajaxful_rating_jquery.git + revision: b4a2c760cdbad9cd865fb18667d14045018287ed + specs: + ajaxful_rating_jquery (3.0.0.beta3) + GIT remote: git://github.com/bryanmig/plupload-rails.git revision: 6d07d0f7e05d0b3fdc9b03b49d3a7c3aa1cd703b @@ -251,6 +257,7 @@ PLATFORMS ruby DEPENDENCIES + ajaxful_rating_jquery! cancan carrierwave (= 0.6.2) coffee-rails diff --git a/app/assets/images/ajaxful_rating/star.png b/app/assets/images/ajaxful_rating/star.png new file mode 100644 index 0000000000000000000000000000000000000000..1e58c5d8cbca0c2cb5bc64d57b4fb5203876b16f GIT binary patch literal 1688 zcmV;J250$+P)P002t}1^@s6g|9510000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU&I!Q!9RCwC#m}_WTWf;f*C%2O(X_KyP zTH4yqDLS2OL)}1deo&BIWJ7e@mwgaHa18cA6voDe7u<%MABK)8Q&1S zv2JeF>FmX<-P)$P=cGx_)&EIqmu*dxv}r$#9(Xu!(l_t_JeT)*e?5X>7?|rz=-iR^J!JNx_lAF8y3J+#fV zM`|!Z`4tN7n@Xgoy}f;z!{M0Kp3pQ6fj}Tck*0awjPovXY-nhxUs049 zFQ)4{1_yIFKUPfS=!8%%k(FL%0hj_5I#8JOsls)bllPcHW&$e};BO97V0Sq=+0Uo> zr4nzFUPV~rGvcmtaxyR6HMxt;Dl_f>&xOYC|KS;KWRn++bm)77-PYiD zQCjm<^RKs()x|JQa#yndB_sz9R+qadFv(q+@OKcj7_1fnQsAA+xa+#a7v-+8Q)}V$ zcp<=wWH5l1HC;%JXUpTR0+FKJB@Mm{IrJGscOwiv%lWbwJP!Xqi!H<5yrPDvYcG(bWcrU4;}Qg`9Y!VqHF+Ld`ihB%43|c4!cZb-pu~EZBMUSo3q>)|vEgL- z+|{u111RGH(&1qU_FG^O6bwzz3FPi-er)yJg^UzKc07&F$4+u?UHROlX#$$={}5Tp z42MFG{9JfKz%<>&C3{XNol2sE0v55Ma_-V0!ri(VnfMrI)nE07V&Gk{H_=-OHU2fQ zx>_pZE>4={E=3yP?&cHA3D%*DPus~5-AT{tnU@&L+rmm5D9K&6>9|Wt2Do21#Uip) zJCRMqnB*iJ&Q@4$I<%~eZ1hS=?y^nCU219+PNxUb=w)OQak$#o!EW~=(sKefyA4ja z7fK>rlDnpD^=c-9=%o;9Z{3R4wYw$}scF?-gu0JoAz#DBNkmKMcL^+qs21OV=(4KfE}1aEE@L-{~Z?$dLVZbZ+1d?>z|AHs{lLxd+&B z7E-#3aEDXuix)oOvDC^QtNrXw?hJBOeG1K;x5$WLQ`v&ZuxMLOthVLRq| zFU9F^8-)VEIFDtwpJ&2SVDSUMvh~nvTS~(nzIqDKxsa=l;o;)7TtKHc@ez{W5I}kX zfev*PBB6j3iA&wUMMmnI{lLq;WhDNIj~NmxkcrqG`;9N>A6-Q5+uRNL|;D~XGZG9-2FIdX(PA)sh^F`Z-ovb={$dcLO{dX2Y&mud#X zv+Zlfp9f-wp{Zfq$-sF}Cd`bq`MN3*qQGewo~9YRR3ipqIS6=d(rIKzhvA&nOEuDAu8j;`1pYe34Y(3mx}M{+K!D%L8M1PGmM_)Jr1r8* z?|z(+GzMeaaTre?0^UwSUbh#KfgsXSW|lA2HonHAYD-@4I=J(#-GN0Lb|TgF5&!#I ifV%}Gn&SFTfB^tvNSP&xDbDl&0000!2jd}d{GTMM4lbfQ@GdVda+U=&*2*nyTIp!K#os)6^cG|INU9g?ht4EXs+Pb zQpLCA2d~e=aD{VhkG?wm5z{hbmU4OTAaiWXmMs@&NKP^QT(5SR;V93EtS>VJn@-iT xJ@VetEtwLZ&y*CeW0=f!q@LX%je&`WL27s4Ez20!xj?@$c)I$ztaD0e0sxUNY#smr literal 0 HcmV?d00001 diff --git a/app/assets/images/rails.png b/app/assets/images/rails.png deleted file mode 100644 index d5edc04e65f555e3ba4dcdaad39dc352e75b575e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6646 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 AQ~&?~ diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 87ab0a9..75efd5c 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -6,6 +6,7 @@ // //= require jquery //= require jquery_ujs +//= require jquery.easing.1.3 //= require twitter/bootstrap //= require plupload //= require jquery.plupload.queue diff --git a/app/assets/stylesheets/ajaxful_rating.css.scss b/app/assets/stylesheets/ajaxful_rating.css.scss new file mode 100644 index 0000000..d17a8fa --- /dev/null +++ b/app/assets/stylesheets/ajaxful_rating.css.scss @@ -0,0 +1,91 @@ +/* +* Style by Rogie http://www.komodomedia.com/blog/2007/01/css-star-rating-redux/ +*/ + +.ajaxful-rating, +.ajaxful-rating a:hover, +.ajaxful-rating a:active, +.ajaxful-rating a:focus, +.ajaxful-rating .show-value { + background: url("/assets/ajaxful_rating/star.png") left -1000px repeat-x; +} + +.ajaxful-rating { + position: relative; +/*width: 125px; this is setted dynamically */ + height: 25px; + overflow: hidden; + list-style: none; + margin: 0; + padding: 0; + background-position: left top; +} + +.ajaxful-rating li { + display: inline; +} + +.ajaxful-rating a, +.ajaxful-rating span, +.ajaxful-rating .show-value { + position: absolute; + top: 0; + left: 0; + text-indent: -1000em; + height: 25px; + line-height: 25px; + outline: none; + overflow: hidden; + border: none; +} + +.ajaxful-rating a:hover, +.ajaxful-rating a:active, +.ajaxful-rating a:focus { + background-position: left bottom; +} + +/* This section is generated dynamically. +Just add a call to the helper method 'ajaxful_rating_style' within +the head tags in your main layout +.ajaxful-rating .stars-1{ +width: 20%; +z-index: 6; +} +.ajaxful-rating .stars-2{ +width: 40%; +z-index: 5; +} +.ajaxful-rating .stars-3{ +width: 60%; +z-index: 4; +} +.ajaxful-rating .stars-4{ +width: 80%; +z-index: 3; +} +.ajaxful-rating .stars-5{ +width: 100%; +z-index: 2; +} +*/ +.ajaxful-rating .show-value { + z-index: 1; + background-position: left center; +} + +/* smaller star */ +.ajaxful-rating.small { +/*width: 50px; this is setted dynamically */ + height: 10px; +} + +.ajaxful-rating.small, +.ajaxful-rating.small a:hover, +.ajaxful-rating.small a:active, +.ajaxful-rating.small a:focus, +.ajaxful-rating.small .show-value { + background-image: url("/assets/ajaxful_rating/star_small.png"); + line-height: 10px; + height: 10px; +} diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 424cc96..594993b 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -3,4 +3,12 @@ *= require_tree . *= require jquery.plupload.queue *= require bootstrap_and_overrides - */ \ No newline at end of file + */ + +.ajaxful-rating-wrapper{ + float: right; +} + +.view-btn{ + display: inline; +} \ No newline at end of file diff --git a/app/controllers/collections_controller.rb b/app/controllers/collections_controller.rb index 18d300e..0878ad1 100644 --- a/app/controllers/collections_controller.rb +++ b/app/controllers/collections_controller.rb @@ -4,7 +4,9 @@ class CollectionsController < ApplicationController def index - @collections = Collection.joins(:albums => :photos).group_for.order('collections.title') + @collections = Collection.includes(:albums => :photos).where("photos.id NOT NULL").group_for.order('collections.title') + @popular_photos = Photo.visible.order('rating_average asc').limit(10) + respond_to do |format| format.html format.json { render :json => @collections } @@ -59,5 +61,11 @@ class CollectionsController < ApplicationController redirect_to @collection end end + + def rate + @collection = Collection.find(params[:id]) + @collection.rate(params[:stars], current_user, params[:dimension]) + render :json => {:id => @collection.wrapper_dom_id(params), :width => 125} + end end diff --git a/app/models/album.rb b/app/models/album.rb index 3f0728f..583b7c0 100644 --- a/app/models/album.rb +++ b/app/models/album.rb @@ -1,6 +1,8 @@ class Album < ActiveRecord::Base extend Ext::GroupFor + ajaxful_rateable :stars => 5, :cache_column => :rating_average + has_many :photos, :dependent => :destroy has_many :collection_albums has_many :collections, :through => :collection_albums diff --git a/app/models/collection.rb b/app/models/collection.rb index 666248f..cc728e7 100644 --- a/app/models/collection.rb +++ b/app/models/collection.rb @@ -1,6 +1,8 @@ class Collection < ActiveRecord::Base extend Ext::GroupFor + ajaxful_rateable :stars => 5, :cache_column => :rating_average + has_many :collection_albums has_many :albums, :through => :collection_albums attr_accessor :album_list diff --git a/app/models/photo.rb b/app/models/photo.rb index 552ab39..755de96 100644 --- a/app/models/photo.rb +++ b/app/models/photo.rb @@ -1,19 +1,21 @@ class Photo < ActiveRecord::Base extend Ext::GroupFor + ajaxful_rateable :stars => 5, :cache_column => :rating_average + belongs_to :album has_many :photo_tags, :dependent => :destroy has_many :tags, :through => :photo_tags mount_uploader :attachment, FileUploader - before_create :exif_read before_update :exif_write after_create :set_title attr_accessor :tag_list - + + scope :visible, where(:public => true) scope :untouched, :conditions => "photos.description IS NULL AND photos.id NOT IN ( SELECT photo_id FROM photo_tags)", :include => :album scope :previous, lambda { |p,a| { :conditions => ["id < :id AND album_Id = :album ", { :id => p, :album => a } ], :limit => 1, :order => "id DESC"} } scope :next, lambda { |p,a| { :conditions => ["id > :id AND album_Id = :album ", { :id => p, :album => a } ], :limit => 1, :order => "id ASC"} } diff --git a/app/models/rate.rb b/app/models/rate.rb new file mode 100644 index 0000000..4ff8248 --- /dev/null +++ b/app/models/rate.rb @@ -0,0 +1,7 @@ +class Rate < ActiveRecord::Base + belongs_to :rater, :class_name => "User" + belongs_to :rateable, :polymorphic => true + validates_numericality_of :stars, :minimum => 1 + + attr_accessible :rate, :dimension +end diff --git a/app/models/secret_link_observer.rb b/app/models/secret_link_observer.rb new file mode 100644 index 0000000..ede8ccd --- /dev/null +++ b/app/models/secret_link_observer.rb @@ -0,0 +1,7 @@ +class SecretLinkObserver < ActiveRecord::Observer + observe :collection, :album, :photo + + def before_create(record) + record.url = ::SecureRandom.hex(16) + end +end diff --git a/app/models/user.rb b/app/models/user.rb index 780cc4e..ed69172 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -4,6 +4,8 @@ class User < ActiveRecord::Base attr_accessible :id, :name, :second_name, :surname, :email, :password, :password_confirmation, :remember_me, :userpic + ajaxful_rater + mount_uploader :userpic, UserpicUploader has_and_belongs_to_many :roles diff --git a/app/uploaders/file_uploader.rb b/app/uploaders/file_uploader.rb index e38b330..6084b5f 100644 --- a/app/uploaders/file_uploader.rb +++ b/app/uploaders/file_uploader.rb @@ -64,22 +64,38 @@ class FileUploader < CarrierWave::Uploader::Base end end - version :preview do - process :resize_to_fit => [210, 210] + ###################################################################################################################### + # Note + # The default grid system provided in Bootstrap utilizes 12 columns that + # render out at widths of 724px, 940px (default without responsive CSS included), and 1170px. + # Below 767px viewports, the columns become fluid and stack vertically. + + version :middle do + process :resize_to_fit => [724, 500] def store_dir ENV['STORAGE_PATH'] + "/thumbs/#{model.album.path}/#{model.id}" end end - version :single do - process :resize_to_limit => [950, 950] + version :large do + process :resize_to_fit => [940, 500] def store_dir ENV['STORAGE_PATH'] + "/thumbs/#{model.album.path}/#{model.id}" end end + version :largest do + process :resize_to_fit => [1170, 500] + + def store_dir + ENV['STORAGE_PATH'] + "/thumbs/#{model.album.path}/#{model.id}" + end + end + ###################################################################################################################### + + # Add a white list of extensions which are allowed to be uploaded, # for images you might use something like this: def extension_white_list diff --git a/app/uploaders/userpic_uploader.rb b/app/uploaders/userpic_uploader.rb index 888b822..0e2e856 100644 --- a/app/uploaders/userpic_uploader.rb +++ b/app/uploaders/userpic_uploader.rb @@ -9,6 +9,13 @@ class UserpicUploader < CarrierWave::Uploader::Base "#{::SecureRandom.hex(8)}#{File.extname(original_filename).downcase}" if original_filename end + version :mini do + process :resize_to_fit => [50, 50] + + def store_dir + "#{ENV['STORAGE_PATH']}/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}/mini" + end + end version :small do process :resize_to_fit => [100, 100] diff --git a/app/views/collections/index.html.erb b/app/views/collections/index.html.erb index 3c6ea58..478fa3a 100644 --- a/app/views/collections/index.html.erb +++ b/app/views/collections/index.html.erb @@ -1,25 +1,31 @@ -<% @collections.in_groups_of(4).compact.each do |group| %> - <% unless group.compact.empty? %> -
    - <% group.compact.each do |collection| %> - <% unless collection.albums.empty? %> - <% unless collection.albums.first.photos.empty? %> -
  • -
    - <%= image_tag collection.albums.first.photos.first.attachment.collection.url %> -
    -
    <%= collection.title %>
    -

    <%= collection.description %>

    -

    <%= link_to 'View', (collection_path(collection) unless collection.albums.empty? || collection.albums.first.photos.empty?), {:class => 'btn btn-primary'} %>

    -
    -
    -
  • - <% end %> - <% end %> - <% end %> -
- <% end %> -<% end %> +
+ <%= render 'shared/home_slider' %> +
+
+
+
+ <% @collections.in_groups_of(4).each do |group| %> + <% unless group.empty? %> +
    + <% group.compact.each_with_index do |collection, index| %> +
  • +
    + <%= image_tag collection.albums.first.photos.first.attachment.collection.url %> +
    +
    <%= collection.title %>
    +

    <%= collection.description %>

    +

    <%= link_to 'View', (collection_path(collection) unless collection.albums.empty? || collection.albums.first.photos.empty?), {:class => 'btn btn-primary'} %>

    + <%= ratings_for collection %> +
    +
    +
  • + <% end %> +
+ <% end %> + <% end %> +
+
+ <%= content_for :action_links do %> diff --git a/app/views/layouts/bootstrap.html.erb b/app/views/layouts/bootstrap.html.erb index 72a800d..defdafc 100644 --- a/app/views/layouts/bootstrap.html.erb +++ b/app/views/layouts/bootstrap.html.erb @@ -6,24 +6,16 @@ <%= render :partial => 'shared/nav_bar' %>
- -
-

Hello, world!

-

This is a template for a simple marketing or informational website. It includes a large callout called the hero - unit and three supporting pieces of content. Use it as a starting point to create something more unique.

-

Learn more »

-
-
+
<%= flash[:notice] %>
<%= yield %>

-

© Company 2012

+

© Photomix 2012

- diff --git a/app/views/shared/_head.html.erb b/app/views/shared/_head.html.erb index 9ca9ebf..0e4f891 100644 --- a/app/views/shared/_head.html.erb +++ b/app/views/shared/_head.html.erb @@ -33,4 +33,6 @@ <%= favicon_link_tag 'images/favicon.ico', :rel => 'shortcut icon' %> <%= yield :head %> -<%= yield :javascript %> \ No newline at end of file +<%= yield :javascript %> +<%= raw ajaxful_rating_style %> +<%= raw ajaxful_rating_script %> \ No newline at end of file diff --git a/app/views/shared/_home_slider.html.erb b/app/views/shared/_home_slider.html.erb new file mode 100644 index 0000000..2529219 --- /dev/null +++ b/app/views/shared/_home_slider.html.erb @@ -0,0 +1,38 @@ +<%= content_for :head do %> + <%= stylesheet_link_tag "anythingslider/anythingslider" %> + <%= javascript_include_tag "anythingslider/jquery.anythingslider.min" %> + + + + +<% end %> + +
+
    + <% @popular_photos.each do |photo| %> +
  • <%= image_tag photo.attachment.large.url %>
  • + <% end %> +
+
diff --git a/app/views/shared/_screen_resolution.html.erb b/app/views/shared/_screen_resolution.html.erb new file mode 100644 index 0000000..ad435c5 --- /dev/null +++ b/app/views/shared/_screen_resolution.html.erb @@ -0,0 +1,8 @@ +Click for your screen resolution + + +<%= content_for :action_links do %> + <% if current_user and current_user.has_role?("admin") %> + <%= link_to "New collection", new_collection_path %> + <% end %> +<% end %> \ No newline at end of file diff --git a/assets/images/ajaxful_rating/star.png b/assets/images/ajaxful_rating/star.png new file mode 100644 index 0000000000000000000000000000000000000000..1e58c5d8cbca0c2cb5bc64d57b4fb5203876b16f GIT binary patch literal 1688 zcmV;J250$+P)P002t}1^@s6g|9510000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU&I!Q!9RCwC#m}_WTWf;f*C%2O(X_KyP zTH4yqDLS2OL)}1deo&BIWJ7e@mwgaHa18cA6voDe7u<%MABK)8Q&1S zv2JeF>FmX<-P)$P=cGx_)&EIqmu*dxv}r$#9(Xu!(l_t_JeT)*e?5X>7?|rz=-iR^J!JNx_lAF8y3J+#fV zM`|!Z`4tN7n@Xgoy}f;z!{M0Kp3pQ6fj}Tck*0awjPovXY-nhxUs049 zFQ)4{1_yIFKUPfS=!8%%k(FL%0hj_5I#8JOsls)bllPcHW&$e};BO97V0Sq=+0Uo> zr4nzFUPV~rGvcmtaxyR6HMxt;Dl_f>&xOYC|KS;KWRn++bm)77-PYiD zQCjm<^RKs()x|JQa#yndB_sz9R+qadFv(q+@OKcj7_1fnQsAA+xa+#a7v-+8Q)}V$ zcp<=wWH5l1HC;%JXUpTR0+FKJB@Mm{IrJGscOwiv%lWbwJP!Xqi!H<5yrPDvYcG(bWcrU4;}Qg`9Y!VqHF+Ld`ihB%43|c4!cZb-pu~EZBMUSo3q>)|vEgL- z+|{u111RGH(&1qU_FG^O6bwzz3FPi-er)yJg^UzKc07&F$4+u?UHROlX#$$={}5Tp z42MFG{9JfKz%<>&C3{XNol2sE0v55Ma_-V0!ri(VnfMrI)nE07V&Gk{H_=-OHU2fQ zx>_pZE>4={E=3yP?&cHA3D%*DPus~5-AT{tnU@&L+rmm5D9K&6>9|Wt2Do21#Uip) zJCRMqnB*iJ&Q@4$I<%~eZ1hS=?y^nCU219+PNxUb=w)OQak$#o!EW~=(sKefyA4ja z7fK>rlDnpD^=c-9=%o;9Z{3R4wYw$}scF?-gu0JoAz#DBNkmKMcL^+qs21OV=(4KfE}1aEE@L-{~Z?$dLVZbZ+1d?>z|AHs{lLxd+&B z7E-#3aEDXuix)oOvDC^QtNrXw?hJBOeG1K;x5$WLQ`v&ZuxMLOthVLRq| zFU9F^8-)VEIFDtwpJ&2SVDSUMvh~nvTS~(nzIqDKxsa=l;o;)7TtKHc@ez{W5I}kX zfev*PBB6j3iA&wUMMmnI{lLq;WhDNIj~NmxkcrqG`;9N>A6-Q5+uRNL|;D~XGZG9-2FIdX(PA)sh^F`Z-ovb={$dcLO{dX2Y&mud#X zv+Zlfp9f-wp{Zfq$-sF}Cd`bq`MN3*qQGewo~9YRR3ipqIS6=d(rIKzhvA&nOEuDAu8j;`1pYe34Y(3mx}M{+K!D%L8M1PGmM_)Jr1r8* z?|z(+GzMeaaTre?0^UwSUbh#KfgsXSW|lA2HonHAYD-@4I=J(#-GN0Lb|TgF5&!#I ifV%}Gn&SFTfB^tvNSP&xDbDl&0000!2jd}d{GTMM4lbfQ@GdVda+U=&*2*nyTIp!K#os)6^cG|INU9g?ht4EXs+Pb zQpLCA2d~e=aD{VhkG?wm5z{hbmU4OTAaiWXmMs@&NKP^QT(5SR;V93EtS>VJn@-iT xJ@VetEtwLZ&y*CeW0=f!q@LX%je&`WL27s4Ez20!xj?@$c)I$ztaD0e0sxUNY#smr literal 0 HcmV?d00001 diff --git a/assets/stylesheets/ajaxful_rating.css.scss b/assets/stylesheets/ajaxful_rating.css.scss new file mode 100644 index 0000000..82c8c17 --- /dev/null +++ b/assets/stylesheets/ajaxful_rating.css.scss @@ -0,0 +1,84 @@ +/* +* Style by Rogie http://www.komodomedia.com/blog/2007/01/css-star-rating-redux/ +*/ + +.ajaxful-rating, +.ajaxful-rating a:hover, +.ajaxful-rating a:active, +.ajaxful-rating a:focus, +.ajaxful-rating .show-value{ + background: image-url("ajaxful_rating/star.png") left -1000px repeat-x; +} +.ajaxful-rating{ + position: relative; + /*width: 125px; this is setted dynamically */ + height: 25px; + overflow: hidden; + list-style: none; + margin: 0; + padding: 0; + background-position: left top; +} +.ajaxful-rating li{ display: inline; } +.ajaxful-rating a, +.ajaxful-rating span, +.ajaxful-rating .show-value{ + position: absolute; + top: 0; + left: 0; + text-indent: -1000em; + height: 25px; + line-height: 25px; + outline: none; + overflow: hidden; + border: none; +} +.ajaxful-rating a:hover, +.ajaxful-rating a:active, +.ajaxful-rating a:focus{ + background-position: left bottom; +} + +/* This section is generated dynamically. +Just add a call to the helper method 'ajaxful_rating_style' within +the head tags in your main layout +.ajaxful-rating .stars-1{ +width: 20%; +z-index: 6; +} +.ajaxful-rating .stars-2{ +width: 40%; +z-index: 5; +} +.ajaxful-rating .stars-3{ +width: 60%; +z-index: 4; +} +.ajaxful-rating .stars-4{ +width: 80%; +z-index: 3; +} +.ajaxful-rating .stars-5{ +width: 100%; +z-index: 2; +} +*/ +.ajaxful-rating .show-value{ + z-index: 1; + background-position: left center; +} + +/* smaller star */ +.ajaxful-rating.small{ + /*width: 50px; this is setted dynamically */ + height: 10px; +} +.ajaxful-rating.small, +.ajaxful-rating.small a:hover, +.ajaxful-rating.small a:active, +.ajaxful-rating.small a:focus, +.ajaxful-rating.small .show-value{ + background-image: image-url("ajaxful_rating/star_small.png"); + line-height: 10px; + height: 10px; +} diff --git a/config/application.rb b/config/application.rb index f23ebb4..35780d9 100644 --- a/config/application.rb +++ b/config/application.rb @@ -12,7 +12,7 @@ module Photomix # Custom directories with classes and modules you want to be autoloadable. # config.autoload_paths += %W(#{config.root}/ config.autoload_paths += %W(#{config.root}/lib #{config.root}/app/middleware/) - + config.active_record.observers = :secret_link_observer config.encoding = "utf-8" config.i18n.default_locale = :ru config.time_zone = 'Moscow' diff --git a/config/routes.rb b/config/routes.rb index ec5ec57..4464fee 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -14,6 +14,10 @@ Photomix::Application.routes.draw do resource :account, :controller => :users resources :photos do + member do + post :rate + end + collection do get :untouched post :edit_multiple @@ -22,10 +26,16 @@ Photomix::Application.routes.draw do get :scan end end + resources :albums do + member do + post :rate + end + collection do get :untouched end + resources :tags do resources :photos do collection do @@ -35,6 +45,7 @@ Photomix::Application.routes.draw do end end end + resources :photos do collection do get :untouched @@ -43,7 +54,12 @@ Photomix::Application.routes.draw do end end end + resources :collections do + member do + post :rate + end + resources :albums do resources :photos do collection do diff --git a/db/migrate/20090520163842_create_album.rb b/db/migrate/20090520163842_create_album.rb index 1ef60c0..0471953 100644 --- a/db/migrate/20090520163842_create_album.rb +++ b/db/migrate/20090520163842_create_album.rb @@ -3,6 +3,10 @@ class CreateAlbum < ActiveRecord::Migration create_table :albums do |t| t.string :title, :length => 250, :null => false t.text :description + t.decimal :rating_average, :default => 0, :precision => 6, :scale => 2 + t.string :url + t.boolean :public + t.timestamps end end diff --git a/db/migrate/20090520165238_create_photos.rb b/db/migrate/20090520165238_create_photos.rb index a586066..34f2373 100644 --- a/db/migrate/20090520165238_create_photos.rb +++ b/db/migrate/20090520165238_create_photos.rb @@ -4,6 +4,10 @@ class CreatePhotos < ActiveRecord::Migration t.string :title, :length => 250 t.text :description t.references :album + t.decimal :rating_average, :default => 0, :precision => 6, :scale => 2 + t.string :url + t.boolean :public + t.timestamps end end diff --git a/db/migrate/20090602131321_create_collections.rb b/db/migrate/20090602131321_create_collections.rb index 08c7c3e..b0d197e 100644 --- a/db/migrate/20090602131321_create_collections.rb +++ b/db/migrate/20090602131321_create_collections.rb @@ -3,6 +3,9 @@ class CreateCollections < ActiveRecord::Migration create_table :collections do |t| t.string :title, :null => false t.string :description + t.decimal :rating_average, :default => 0, :precision => 6, :scale => 2 + t.string :url + t.boolean :public, :default => false t.timestamps end diff --git a/db/migrate/20120724213209_create_rates.rb b/db/migrate/20120724213209_create_rates.rb new file mode 100644 index 0000000..d7a5277 --- /dev/null +++ b/db/migrate/20120724213209_create_rates.rb @@ -0,0 +1,18 @@ +class CreateRates < ActiveRecord::Migration + def self.up + create_table :rates do |t| + t.belongs_to :rater + t.belongs_to :rateable, :polymorphic => true + t.integer :stars, :null => false + t.string :dimension + t.timestamps + end + + add_index :rates, :rater_id + add_index :rates, [:rateable_id, :rateable_type] + end + + def self.down + drop_table :rates + end +end diff --git a/db/schema.rb b/db/schema.rb index b04cbb6..9663f95 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,13 +11,16 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20100412220801) do +ActiveRecord::Schema.define(:version => 20120724213209) do create_table "albums", :force => true do |t| - t.string "title", :null => false + t.string "title", :null => false t.text "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.decimal "rating_average", :precision => 6, :scale => 2, :default => 0.0 + t.string "url" + t.boolean "public" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false t.text "path" t.string "address" t.float "longitude" @@ -38,10 +41,13 @@ ActiveRecord::Schema.define(:version => 20100412220801) do add_index "collection_albums", ["collection_id"], :name => "index_collection_albums_on_collection_id" create_table "collections", :force => true do |t| - t.string "title", :null => false + t.string "title", :null => false t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.decimal "rating_average", :precision => 6, :scale => 2, :default => 0.0 + t.string "url" + t.boolean "public", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end add_index "collections", ["id"], :name => "index_collections_on_id", :unique => true @@ -60,8 +66,11 @@ ActiveRecord::Schema.define(:version => 20100412220801) do t.string "title" t.text "description" t.integer "album_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.decimal "rating_average", :precision => 6, :scale => 2, :default => 0.0 + t.string "url" + t.boolean "public" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false t.text "path" t.float "longitude" t.float "latitude" @@ -71,6 +80,19 @@ ActiveRecord::Schema.define(:version => 20100412220801) do add_index "photos", ["album_id"], :name => "index_photos_on_album_id" add_index "photos", ["id"], :name => "index_photos_on_id", :unique => true + create_table "rates", :force => true do |t| + t.integer "rater_id" + t.integer "rateable_id" + t.string "rateable_type" + t.integer "stars", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "rates", ["rateable_id", "rateable_type"], :name => "index_rates_on_rateable_id_and_rateable_type" + add_index "rates", ["rater_id"], :name => "index_rates_on_rater_id" + create_table "roles", :force => true do |t| t.string "name" t.datetime "created_at", :null => false diff --git a/db/seeds.rb b/db/seeds.rb index c965c85..7595828 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -19,4 +19,8 @@ user.roles << Role.make!(name: 'admin') 20.times.map { Photo.make! } 10.times.map { CollectionAlbum.make! } +20.times.map{ Rate.make!(:collections) } +20.times.map{ Rate.make!(:albums) } +20.times.map{ Rate.make!(:photos) } + FileUtils.rm_rf "#{Rails.root}/tmp/attachments" diff --git a/test/blueprints.rb b/test/blueprints.rb index 6a53ffc..40b14dd 100644 --- a/test/blueprints.rb +++ b/test/blueprints.rb @@ -20,7 +20,6 @@ User.blueprint { surname { Faker::NameRU.last_name(sex) } confirmed_at { Time.now + rand(1..4) } confirmation_sent_at { Time.now + rand(5..9) } - # TODO migrate from paperclip to carrier_wave userpic { file_name = ::SecureRandom.hex(8) file = open("http://lorempixel.com/800/500/abstract/") @@ -39,11 +38,15 @@ Album.blueprint { title { Faker::Lorem.sentence(rand(3)) } description { Faker::Lorem.sentence } path { "my_album_#{sn}" } + rating_average { rand(1..5) } + public { true } } Collection.blueprint { title { Faker::Lorem.sentence(rand(3)) } description { Faker::Lorem.sentence } + rating_average { rand(1..5) } + public { true } } CollectionAlbum.blueprint { @@ -55,9 +58,11 @@ Photo.blueprint { title { Faker::Lorem.sentence(rand(3)) } description { Faker::Lorem.sentence } album { Album.find(rand(1..20)) } + rating_average { rand(1..5) } + public { true } attachment { file_name = ::SecureRandom.hex(8) - file = open("http://lorempixel.com/800/500/abstract/") + file = open("http://lorempixel.com/1300/1000/people/") if file.kind_of? Tempfile name = File.basename(file.path) FileUtils.move(file.path, "#{Rails.root}/tmp/attachments/#{name}.jpeg") @@ -69,3 +74,22 @@ Photo.blueprint { } } +Rate.blueprint(:collections) { + rateable { Collection.find(rand(1..20)) } + rater { User.find(rand(1..20)) } + stars { rand(1..5) } +} + +Rate.blueprint(:albums) { + rateable { Album.find(rand(1..20)) } + rater { User.find(rand(1..20)) } + stars { rand(1..5) } +} + +Rate.blueprint(:photos) { + rateable { Photo.find(rand(1..20)) } + rater { User.find(rand(1..20)) } + stars { rand(1..5) } +} + + diff --git a/test/unit/secret_link_observer_test.rb b/test/unit/secret_link_observer_test.rb new file mode 100644 index 0000000..7433f58 --- /dev/null +++ b/test/unit/secret_link_observer_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class SecretLinkObserverTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/vendor/assets/javascripts/anythingslider/animate.css b/vendor/assets/javascripts/anythingslider/animate.css new file mode 100644 index 0000000..2f0c3c3 --- /dev/null +++ b/vendor/assets/javascripts/anythingslider/animate.css @@ -0,0 +1,3813 @@ +/* +Animate.css - http://daneden.me/animate +LICENSED UNDER THE MIT LICENSE (MIT) + +Copyright (c) 2011 Dan Eden + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +.animated { + -webkit-animation: 1s ease; + -moz-animation: 1s ease; + -ms-animation: 1s ease; + -o-animation: 1s ease; + animation: 1s ease; + -webkit-animation-fill-mode: both; + -moz-animation-fill-mode: both; + -ms-animation-fill-mode: both; + -o-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.hinge { + -webkit-animation: 2s ease; + -moz-animation: 2s ease; + -ms-animation: 2s ease; + -o-animation: 2s ease; + animation: 2s ease; +} + +@-webkit-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@-moz-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@-ms-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@-o-keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +@keyframes flash { + 0%, 50%, 100% {opacity: 1;} + 25%, 75% {opacity: 0;} +} + +.flash { + -webkit-animation-name: flash; + -moz-animation-name: flash; + -ms-animation-name: flash; + -o-animation-name: flash; + animation-name: flash; +} +@-webkit-keyframes shake { + 0%, 100% {-webkit-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);} +} + +@-moz-keyframes shake { + 0%, 100% {-moz-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-moz-transform: translateX(10px);} +} + +@-ms-keyframes shake { + 0%, 100% {-ms-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-ms-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-ms-transform: translateX(10px);} +} + +@-o-keyframes shake { + 0%, 100% {-o-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-o-transform: translateX(10px);} +} + +@keyframes shake { + 0%, 100% {transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} + 20%, 40%, 60%, 80% {transform: translateX(10px);} +} + +.shake { + -webkit-animation-name: shake; + -moz-animation-name: shake; + -ms-animation-name: shake; + -o-animation-name: shake; + animation-name: shake; +} +@-webkit-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);} + 40% {-webkit-transform: translateY(-30px);} + 60% {-webkit-transform: translateY(-15px);} +} + +@-moz-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-moz-transform: translateY(0);} + 40% {-moz-transform: translateY(-30px);} + 60% {-moz-transform: translateY(-15px);} +} + +@-ms-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-ms-transform: translateY(0);} + 40% {-ms-transform: translateY(-30px);} + 60% {-ms-transform: translateY(-15px);} +} + +@-o-keyframes bounce { + 0%, 20%, 50%, 80%, 100% {-o-transform: translateY(0);} + 40% {-o-transform: translateY(-30px);} + 60% {-o-transform: translateY(-15px);} +} +@keyframes bounce { + 0%, 20%, 50%, 80%, 100% {transform: translateY(0);} + 40% {transform: translateY(-30px);} + 60% {transform: translateY(-15px);} +} + +.bounce { + -webkit-animation-name: bounce; + -moz-animation-name: bounce; + -ms-animation-name: bounce; + -o-animation-name: bounce; + animation-name: bounce; +} +@-webkit-keyframes tada { + 0% {-webkit-transform: scale(1);} + 10%, 20% {-webkit-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-webkit-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-webkit-transform: scale(1.1) rotate(-3deg);} + 100% {-webkit-transform: scale(1) rotate(0);} +} + +@-moz-keyframes tada { + 0% {-moz-transform: scale(1);} + 10%, 20% {-moz-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-moz-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-moz-transform: scale(1.1) rotate(-3deg);} + 100% {-moz-transform: scale(1) rotate(0);} +} + +@-ms-keyframes tada { + 0% {-ms-transform: scale(1);} + 10%, 20% {-ms-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-ms-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-ms-transform: scale(1.1) rotate(-3deg);} + 100% {-ms-transform: scale(1) rotate(0);} +} + +@-o-keyframes tada { + 0% {-o-transform: scale(1);} + 10%, 20% {-o-transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {-o-transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {-o-transform: scale(1.1) rotate(-3deg);} + 100% {-o-transform: scale(1) rotate(0);} +} + +@keyframes tada { + 0% {transform: scale(1);} + 10%, 20% {transform: scale(0.9) rotate(-3deg);} + 30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);} + 40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);} + 100% {transform: scale(1) rotate(0);} +} + +.tada { + -webkit-animation-name: tada; + -moz-animation-name: tada; + -ms-animation-name: tada; + -o-animation-name: tada; + animation-name: tada; +} +@-webkit-keyframes swing { + 20%, 40%, 60%, 80%, 100% { -webkit-transform-origin: top center; } + 20% { -webkit-transform: rotate(15deg); } + 40% { -webkit-transform: rotate(-10deg); } + 60% { -webkit-transform: rotate(5deg); } + 80% { -webkit-transform: rotate(-5deg); } + 100% { -webkit-transform: rotate(0deg); } +} + +@-moz-keyframes swing { + 20% { -moz-transform: rotate(15deg); } + 40% { -moz-transform: rotate(-10deg); } + 60% { -moz-transform: rotate(5deg); } + 80% { -moz-transform: rotate(-5deg); } + 100% { -moz-transform: rotate(0deg); } +} + +@-ms-keyframes swing { + 20% { -ms-transform: rotate(15deg); } + 40% { -ms-transform: rotate(-10deg); } + 60% { -ms-transform: rotate(5deg); } + 80% { -ms-transform: rotate(-5deg); } + 100% { -ms-transform: rotate(0deg); } +} + +@-o-keyframes swing { + 20% { -o-transform: rotate(15deg); } + 40% { -o-transform: rotate(-10deg); } + 60% { -o-transform: rotate(5deg); } + 80% { -o-transform: rotate(-5deg); } + 100% { -o-transform: rotate(0deg); } +} + +@keyframes swing { + 20% { transform: rotate(15deg); } + 40% { transform: rotate(-10deg); } + 60% { transform: rotate(5deg); } + 80% { transform: rotate(-5deg); } + 100% { transform: rotate(0deg); } +} + +.swing { + -webkit-transform-origin: top center; + -moz-transform-origin: top center; + -ms-transform-origin: top center; + -o-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + -moz-animation-name: swing; + -ms-animation-name: swing; + -o-animation-name: swing; + animation-name: swing; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + 0% { -webkit-transform: translateX(0%); } + 15% { -webkit-transform: translateX(-25%) rotate(-5deg); } + 30% { -webkit-transform: translateX(20%) rotate(3deg); } + 45% { -webkit-transform: translateX(-15%) rotate(-3deg); } + 60% { -webkit-transform: translateX(10%) rotate(2deg); } + 75% { -webkit-transform: translateX(-5%) rotate(-1deg); } + 100% { -webkit-transform: translateX(0%); } +} + +@-moz-keyframes wobble { + 0% { -moz-transform: translateX(0%); } + 15% { -moz-transform: translateX(-25%) rotate(-5deg); } + 30% { -moz-transform: translateX(20%) rotate(3deg); } + 45% { -moz-transform: translateX(-15%) rotate(-3deg); } + 60% { -moz-transform: translateX(10%) rotate(2deg); } + 75% { -moz-transform: translateX(-5%) rotate(-1deg); } + 100% { -moz-transform: translateX(0%); } +} + +@-ms-keyframes wobble { + 0% { -ms-transform: translateX(0%); } + 15% { -ms-transform: translateX(-25%) rotate(-5deg); } + 30% { -ms-transform: translateX(20%) rotate(3deg); } + 45% { -ms-transform: translateX(-15%) rotate(-3deg); } + 60% { -ms-transform: translateX(10%) rotate(2deg); } + 75% { -ms-transform: translateX(-5%) rotate(-1deg); } + 100% { -ms-transform: translateX(0%); } +} + +@-o-keyframes wobble { + 0% { -o-transform: translateX(0%); } + 15% { -o-transform: translateX(-25%) rotate(-5deg); } + 30% { -o-transform: translateX(20%) rotate(3deg); } + 45% { -o-transform: translateX(-15%) rotate(-3deg); } + 60% { -o-transform: translateX(10%) rotate(2deg); } + 75% { -o-transform: translateX(-5%) rotate(-1deg); } + 100% { -o-transform: translateX(0%); } +} + +@keyframes wobble { + 0% { transform: translateX(0%); } + 15% { transform: translateX(-25%) rotate(-5deg); } + 30% { transform: translateX(20%) rotate(3deg); } + 45% { transform: translateX(-15%) rotate(-3deg); } + 60% { transform: translateX(10%) rotate(2deg); } + 75% { transform: translateX(-5%) rotate(-1deg); } + 100% { transform: translateX(0%); } +} + +.wobble { + -webkit-animation-name: wobble; + -moz-animation-name: wobble; + -ms-animation-name: wobble; + -o-animation-name: wobble; + animation-name: wobble; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + 0% { -webkit-transform: scale(1); } + 50% { -webkit-transform: scale(1.1); } + 100% { -webkit-transform: scale(1); } +} +@-moz-keyframes pulse { + 0% { -moz-transform: scale(1); } + 50% { -moz-transform: scale(1.1); } + 100% { -moz-transform: scale(1); } +} +@-ms-keyframes pulse { + 0% { -ms-transform: scale(1); } + 50% { -ms-transform: scale(1.1); } + 100% { -ms-transform: scale(1); } +} +@-o-keyframes pulse { + 0% { -o-transform: scale(1); } + 50% { -o-transform: scale(1.1); } + 100% { -o-transform: scale(1); } +} +@keyframes pulse { + 0% { transform: scale(1); } + 50% { transform: scale(1.1); } + 100% { transform: scale(1); } +} + +.pulse { + -webkit-animation-name: pulse; + -moz-animation-name: pulse; + -ms-animation-name: pulse; + -o-animation-name: pulse; + animation-name: pulse; +} +@-webkit-keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotateY(0); + -webkit-animation-timing-function: ease-out; + } + 40% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -webkit-animation-timing-function: ease-out; + } + 50% { + -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -webkit-animation-timing-function: ease-in; + } + 80% { + -webkit-transform: perspective(400px) rotateY(360deg) scale(.95); + -webkit-animation-timing-function: ease-in; + } + 100% { + -webkit-transform: perspective(400px) scale(1); + -webkit-animation-timing-function: ease-in; + } +} +@-moz-keyframes flip { + 0% { + -moz-transform: perspective(400px) rotateY(0); + -moz-animation-timing-function: ease-out; + } + 40% { + -moz-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -moz-animation-timing-function: ease-out; + } + 50% { + -moz-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -moz-animation-timing-function: ease-in; + } + 80% { + -moz-transform: perspective(400px) rotateY(360deg) scale(.95); + -moz-animation-timing-function: ease-in; + } + 100% { + -moz-transform: perspective(400px) scale(1); + -moz-animation-timing-function: ease-in; + } +} +@-ms-keyframes flip { + 0% { + -ms-transform: perspective(400px) rotateY(0); + -ms-animation-timing-function: ease-out; + } + 40% { + -ms-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -ms-animation-timing-function: ease-out; + } + 50% { + -ms-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -ms-animation-timing-function: ease-in; + } + 80% { + -ms-transform: perspective(400px) rotateY(360deg) scale(.95); + -ms-animation-timing-function: ease-in; + } + 100% { + -ms-transform: perspective(400px) scale(1); + -ms-animation-timing-function: ease-in; + } +} +@-o-keyframes flip { + 0% { + -o-transform: perspective(400px) rotateY(0); + -o-animation-timing-function: ease-out; + } + 40% { + -o-transform: perspective(400px) translateZ(150px) rotateY(170deg); + -o-animation-timing-function: ease-out; + } + 50% { + -o-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + -o-animation-timing-function: ease-in; + } + 80% { + -o-transform: perspective(400px) rotateY(360deg) scale(.95); + -o-animation-timing-function: ease-in; + } + 100% { + -o-transform: perspective(400px) scale(1); + -o-animation-timing-function: ease-in; + } +} +@keyframes flip { + 0% { + transform: perspective(400px) rotateY(0); + animation-timing-function: ease-out; + } + 40% { + transform: perspective(400px) translateZ(150px) rotateY(170deg); + animation-timing-function: ease-out; + } + 50% { + transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1); + animation-timing-function: ease-in; + } + 80% { + transform: perspective(400px) rotateY(360deg) scale(.95); + animation-timing-function: ease-in; + } + 100% { + transform: perspective(400px) scale(1); + animation-timing-function: ease-in; + } +} + +.flip { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flip; + -moz-backface-visibility: visible !important; + -moz-animation-name: flip; + -ms-backface-visibility: visible !important; + -ms-animation-name: flip; + -o-backface-visibility: visible !important; + -o-animation-name: flip; + backface-visibility: visible !important; + animation-name: flip; +} +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotateX(-10deg); + } + + 70% { + -webkit-transform: perspective(400px) rotateX(10deg); + } + + 100% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@-moz-keyframes flipInX { + 0% { + -moz-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + -moz-transform: perspective(400px) rotateX(-10deg); + } + + 70% { + -moz-transform: perspective(400px) rotateX(10deg); + } + + 100% { + -moz-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@-ms-keyframes flipInX { + 0% { + -ms-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + -ms-transform: perspective(400px) rotateX(-10deg); + } + + 70% { + -ms-transform: perspective(400px) rotateX(10deg); + } + + 100% { + -ms-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@-o-keyframes flipInX { + 0% { + -o-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + -o-transform: perspective(400px) rotateX(-10deg); + } + + 70% { + -o-transform: perspective(400px) rotateX(10deg); + } + + 100% { + -o-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} +@keyframes flipInX { + 0% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } + + 40% { + transform: perspective(400px) rotateX(-10deg); + } + + 70% { + transform: perspective(400px) rotateX(10deg); + } + + 100% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flipInX; + -moz-backface-visibility: visible !important; + -moz-animation-name: flipInX; + -ms-backface-visibility: visible !important; + -ms-animation-name: flipInX; + -o-backface-visibility: visible !important; + -o-animation-name: flipInX; + backface-visibility: visible !important; + animation-name: flipInX; +} +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +@-moz-keyframes flipOutX { + 0% { + -moz-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -moz-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +@-ms-keyframes flipOutX { + 0% { + -ms-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -ms-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +@-o-keyframes flipOutX { + 0% { + -o-transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + -o-transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + 0% { + transform: perspective(400px) rotateX(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateX(90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + -moz-animation-name: flipOutX; + -moz-backface-visibility: visible !important; + -ms-animation-name: flipOutX; + -ms-backface-visibility: visible !important; + -o-animation-name: flipOutX; + -o-backface-visibility: visible !important; + animation-name: flipOutX; + backface-visibility: visible !important; +} +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + } + + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + } + + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@-moz-keyframes flipInY { + 0% { + -moz-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + -moz-transform: perspective(400px) rotateY(-10deg); + } + + 70% { + -moz-transform: perspective(400px) rotateY(10deg); + } + + 100% { + -moz-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@-ms-keyframes flipInY { + 0% { + -ms-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + -ms-transform: perspective(400px) rotateY(-10deg); + } + + 70% { + -ms-transform: perspective(400px) rotateY(10deg); + } + + 100% { + -ms-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@-o-keyframes flipInY { + 0% { + -o-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + -o-transform: perspective(400px) rotateY(-10deg); + } + + 70% { + -o-transform: perspective(400px) rotateY(10deg); + } + + 100% { + -o-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@keyframes flipInY { + 0% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + + 40% { + transform: perspective(400px) rotateY(-10deg); + } + + 70% { + transform: perspective(400px) rotateY(10deg); + } + + 100% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flipInY; + -moz-backface-visibility: visible !important; + -moz-animation-name: flipInY; + -ms-backface-visibility: visible !important; + -ms-animation-name: flipInY; + -o-backface-visibility: visible !important; + -o-animation-name: flipInY; + backface-visibility: visible !important; + animation-name: flipInY; +} +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -webkit-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@-moz-keyframes flipOutY { + 0% { + -moz-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -moz-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@-ms-keyframes flipOutY { + 0% { + -ms-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -ms-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@-o-keyframes flipOutY { + 0% { + -o-transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + -o-transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} +@keyframes flipOutY { + 0% { + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } + 100% { + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + -moz-backface-visibility: visible !important; + -moz-animation-name: flipOutY; + -ms-backface-visibility: visible !important; + -ms-animation-name: flipOutY; + -o-backface-visibility: visible !important; + -o-animation-name: flipOutY; + backface-visibility: visible !important; + animation-name: flipOutY; +} +@-webkit-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@-moz-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@-ms-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@-o-keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +@keyframes fadeIn { + 0% {opacity: 0;} + 100% {opacity: 1;} +} + +.fadeIn { + -webkit-animation-name: fadeIn; + -moz-animation-name: fadeIn; + -ms-animation-name: fadeIn; + -o-animation-name: fadeIn; + animation-name: fadeIn; +} +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInUp { + 0% { + opacity: 0; + -moz-transform: translateY(20px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-ms-keyframes fadeInUp { + 0% { + opacity: 0; + -ms-transform: translateY(20px); + } + + 100% { + opacity: 1; + -ms-transform: translateY(0); + } +} + +@-o-keyframes fadeInUp { + 0% { + opacity: 0; + -o-transform: translateY(20px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + transform: translateY(20px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + -moz-animation-name: fadeInUp; + -ms-animation-name: fadeInUp; + -o-animation-name: fadeInUp; + animation-name: fadeInUp; +} +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInDown { + 0% { + opacity: 0; + -moz-transform: translateY(-20px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-ms-keyframes fadeInDown { + 0% { + opacity: 0; + -ms-transform: translateY(-20px); + } + + 100% { + opacity: 1; + -ms-transform: translateY(0); + } +} + +@-o-keyframes fadeInDown { + 0% { + opacity: 0; + -ms-transform: translateY(-20px); + } + + 100% { + opacity: 1; + -ms-transform: translateY(0); + } +} + +@keyframes fadeInDown { + 0% { + opacity: 0; + transform: translateY(-20px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + -moz-animation-name: fadeInDown; + -ms-animation-name: fadeInDown; + -o-animation-name: fadeInDown; + animation-name: fadeInDown; +} +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes fadeInLeft { + 0% { + opacity: 0; + -moz-transform: translateX(-20px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} + +@-ms-keyframes fadeInLeft { + 0% { + opacity: 0; + -ms-transform: translateX(-20px); + } + + 100% { + opacity: 1; + -ms-transform: translateX(0); + } +} + +@-o-keyframes fadeInLeft { + 0% { + opacity: 0; + -o-transform: translateX(-20px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} + +@keyframes fadeInLeft { + 0% { + opacity: 0; + transform: translateX(-20px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + -moz-animation-name: fadeInLeft; + -ms-animation-name: fadeInLeft; + -o-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes fadeInRight { + 0% { + opacity: 0; + -moz-transform: translateX(20px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} + +@-ms-keyframes fadeInRight { + 0% { + opacity: 0; + -ms-transform: translateX(20px); + } + + 100% { + opacity: 1; + -ms-transform: translateX(0); + } +} + +@-o-keyframes fadeInRight { + 0% { + opacity: 0; + -o-transform: translateX(20px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} + +@keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(20px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + -moz-animation-name: fadeInRight; + -ms-animation-name: fadeInRight; + -o-animation-name: fadeInRight; + animation-name: fadeInRight; +} +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInUpBig { + 0% { + opacity: 0; + -moz-transform: translateY(2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-ms-keyframes fadeInUpBig { + 0% { + opacity: 0; + -ms-transform: translateY(2000px); + } + + 100% { + opacity: 1; + -ms-transform: translateY(0); + } +} + +@-o-keyframes fadeInUpBig { + 0% { + opacity: 0; + -o-transform: translateY(2000px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInUpBig { + 0% { + opacity: 0; + transform: translateY(2000px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + -moz-animation-name: fadeInUpBig; + -ms-animation-name: fadeInUpBig; + -o-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes fadeInDownBig { + 0% { + opacity: 0; + -moz-transform: translateY(-2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateY(0); + } +} + +@-ms-keyframes fadeInDownBig { + 0% { + opacity: 0; + -ms-transform: translateY(-2000px); + } + + 100% { + opacity: 1; + -ms-transform: translateY(0); + } +} + +@-o-keyframes fadeInDownBig { + 0% { + opacity: 0; + -o-transform: translateY(-2000px); + } + + 100% { + opacity: 1; + -o-transform: translateY(0); + } +} + +@keyframes fadeInDownBig { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + + 100% { + opacity: 1; + transform: translateY(0); + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + -moz-animation-name: fadeInDownBig; + -ms-animation-name: fadeInDownBig; + -o-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} +@-moz-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -moz-transform: translateX(-2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} +@-ms-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -ms-transform: translateX(-2000px); + } + + 100% { + opacity: 1; + -ms-transform: translateX(0); + } +} +@-o-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -o-transform: translateX(-2000px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + -moz-animation-name: fadeInLeftBig; + -ms-animation-name: fadeInLeftBig; + -o-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + + 100% { + opacity: 1; + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes fadeInRightBig { + 0% { + opacity: 0; + -moz-transform: translateX(2000px); + } + + 100% { + opacity: 1; + -moz-transform: translateX(0); + } +} + +@-ms-keyframes fadeInRightBig { + 0% { + opacity: 0; + -ms-transform: translateX(2000px); + } + + 100% { + opacity: 1; + -ms-transform: translateX(0); + } +} + +@-o-keyframes fadeInRightBig { + 0% { + opacity: 0; + -o-transform: translateX(2000px); + } + + 100% { + opacity: 1; + -o-transform: translateX(0); + } +} + +@keyframes fadeInRightBig { + 0% { + opacity: 0; + transform: translateX(2000px); + } + + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + -moz-animation-name: fadeInRightBig; + -ms-animation-name: fadeInRightBig; + -o-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} +@-webkit-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@-moz-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@-ms-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@-o-keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +@keyframes fadeOut { + 0% {opacity: 1;} + 100% {opacity: 0;} +} + +.fadeOut { + -webkit-animation-name: fadeOut; + -moz-animation-name: fadeOut; + -ms-animation-name: fadeOut; + -o-animation-name: fadeOut; + animation-name: fadeOut; +} +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-20px); + } +} +@-moz-keyframes fadeOutUp { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(-20px); + } +} +@-ms-keyframes fadeOutUp { + 0% { + opacity: 1; + -ms-transform: translateY(0); + } + + 100% { + opacity: 0; + -ms-transform: translateY(-20px); + } +} +@-o-keyframes fadeOutUp { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(-20px); + } +} +@keyframes fadeOutUp { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(-20px); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + -moz-animation-name: fadeOutUp; + -ms-animation-name: fadeOutUp; + -o-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(20px); + } +} + +@-moz-keyframes fadeOutDown { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(20px); + } +} + +@-ms-keyframes fadeOutDown { + 0% { + opacity: 1; + -ms-transform: translateY(0); + } + + 100% { + opacity: 0; + -ms-transform: translateY(20px); + } +} + +@-o-keyframes fadeOutDown { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(20px); + } +} + +@keyframes fadeOutDown { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(20px); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + -moz-animation-name: fadeOutDown; + -ms-animation-name: fadeOutDown; + -o-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-20px); + } +} + +@-moz-keyframes fadeOutLeft { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(-20px); + } +} + +@-ms-keyframes fadeOutLeft { + 0% { + opacity: 1; + -ms-transform: translateX(0); + } + + 100% { + opacity: 0; + -ms-transform: translateX(-20px); + } +} + +@-o-keyframes fadeOutLeft { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(-20px); + } +} + +@keyframes fadeOutLeft { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(-20px); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + -moz-animation-name: fadeOutLeft; + -ms-animation-name: fadeOutLeft; + -o-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(20px); + } +} + +@-moz-keyframes fadeOutRight { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(20px); + } +} + +@-ms-keyframes fadeOutRight { + 0% { + opacity: 1; + -ms-transform: translateX(0); + } + + 100% { + opacity: 0; + -ms-transform: translateX(20px); + } +} + +@-o-keyframes fadeOutRight { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(20px); + } +} + +@keyframes fadeOutRight { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(20px); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + -moz-animation-name: fadeOutRight; + -ms-animation-name: fadeOutRight; + -o-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} + +@-moz-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(-2000px); + } +} + +@-ms-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -ms-transform: translateY(0); + } + + 100% { + opacity: 0; + -ms-transform: translateY(-2000px); + } +} + +@-o-keyframes fadeOutUpBig { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(-2000px); + } +} + +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + -moz-animation-name: fadeOutUpBig; + -ms-animation-name: fadeOutUpBig; + -o-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} + +@-moz-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -moz-transform: translateY(0); + } + + 100% { + opacity: 0; + -moz-transform: translateY(2000px); + } +} + +@-ms-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -ms-transform: translateY(0); + } + + 100% { + opacity: 0; + -ms-transform: translateY(2000px); + } +} + +@-o-keyframes fadeOutDownBig { + 0% { + opacity: 1; + -o-transform: translateY(0); + } + + 100% { + opacity: 0; + -o-transform: translateY(2000px); + } +} + +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + transform: translateY(0); + } + + 100% { + opacity: 0; + transform: translateY(2000px); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + -moz-animation-name: fadeOutDownBig; + -ms-animation-name: fadeOutDownBig; + -o-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} + +@-moz-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(-2000px); + } +} + +@-ms-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -ms-transform: translateX(0); + } + + 100% { + opacity: 0; + -ms-transform: translateX(-2000px); + } +} + +@-o-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(-2000px); + } +} + +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + -moz-animation-name: fadeOutLeftBig; + -ms-animation-name: fadeOutLeftBig; + -o-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -webkit-transform: translateX(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} +@-moz-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -moz-transform: translateX(0); + } + + 100% { + opacity: 0; + -moz-transform: translateX(2000px); + } +} +@-ms-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -ms-transform: translateX(0); + } + + 100% { + opacity: 0; + -ms-transform: translateX(2000px); + } +} +@-o-keyframes fadeOutRightBig { + 0% { + opacity: 1; + -o-transform: translateX(0); + } + + 100% { + opacity: 0; + -o-transform: translateX(2000px); + } +} +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + transform: translateX(0); + } + + 100% { + opacity: 0; + transform: translateX(2000px); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + -moz-animation-name: fadeOutRightBig; + -ms-animation-name: fadeOutRightBig; + -o-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} +@-webkit-keyframes bounceIn { + 0% { + opacity: 0; + -webkit-transform: scale(.3); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.05); + } + + 70% { + -webkit-transform: scale(.9); + } + + 100% { + -webkit-transform: scale(1); + } +} + +@-moz-keyframes bounceIn { + 0% { + opacity: 0; + -moz-transform: scale(.3); + } + + 50% { + opacity: 1; + -moz-transform: scale(1.05); + } + + 70% { + -moz-transform: scale(.9); + } + + 100% { + -moz-transform: scale(1); + } +} + +@-ms-keyframes bounceIn { + 0% { + opacity: 0; + -ms-transform: scale(.3); + } + + 50% { + opacity: 1; + -ms-transform: scale(1.05); + } + + 70% { + -ms-transform: scale(.9); + } + + 100% { + -ms-transform: scale(1); + } +} + +@-o-keyframes bounceIn { + 0% { + opacity: 0; + -o-transform: scale(.3); + } + + 50% { + opacity: 1; + -o-transform: scale(1.05); + } + + 70% { + -o-transform: scale(.9); + } + + 100% { + -o-transform: scale(1); + } +} + +@keyframes bounceIn { + 0% { + opacity: 0; + transform: scale(.3); + } + + 50% { + opacity: 1; + transform: scale(1.05); + } + + 70% { + transform: scale(.9); + } + + 100% { + transform: scale(1); + } +} + +.bounceIn { + -webkit-animation-name: bounceIn; + -moz-animation-name: bounceIn; + -ms-animation-name: bounceIn; + -o-animation-name: bounceIn; + animation-name: bounceIn; +} +@-webkit-keyframes bounceInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateY(-30px); + } + + 80% { + -webkit-transform: translateY(10px); + } + + 100% { + -webkit-transform: translateY(0); + } +} +@-moz-keyframes bounceInUp { + 0% { + opacity: 0; + -moz-transform: translateY(2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateY(-30px); + } + + 80% { + -moz-transform: translateY(10px); + } + + 100% { + -moz-transform: translateY(0); + } +} +@-ms-keyframes bounceInUp { + 0% { + opacity: 0; + -ms-transform: translateY(2000px); + } + + 60% { + opacity: 1; + -ms-transform: translateY(-30px); + } + + 80% { + -ms-transform: translateY(10px); + } + + 100% { + -ms-transform: translateY(0); + } +} + +@-o-keyframes bounceInUp { + 0% { + opacity: 0; + -o-transform: translateY(2000px); + } + + 60% { + opacity: 1; + -o-transform: translateY(-30px); + } + + 80% { + -o-transform: translateY(10px); + } + + 100% { + -o-transform: translateY(0); + } +} + +@keyframes bounceInUp { + 0% { + opacity: 0; + transform: translateY(2000px); + } + + 60% { + opacity: 1; + transform: translateY(-30px); + } + + 80% { + transform: translateY(10px); + } + + 100% { + transform: translateY(0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + -moz-animation-name: bounceInUp; + -ms-animation-name: bounceInUp; + -o-animation-name: bounceInUp; + animation-name: bounceInUp; +} +@-webkit-keyframes bounceInDown { + 0% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateY(30px); + } + + 80% { + -webkit-transform: translateY(-10px); + } + + 100% { + -webkit-transform: translateY(0); + } +} + +@-moz-keyframes bounceInDown { + 0% { + opacity: 0; + -moz-transform: translateY(-2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateY(30px); + } + + 80% { + -moz-transform: translateY(-10px); + } + + 100% { + -moz-transform: translateY(0); + } +} + +@-ms-keyframes bounceInDown { + 0% { + opacity: 0; + -ms-transform: translateY(-2000px); + } + + 60% { + opacity: 1; + -ms-transform: translateY(30px); + } + + 80% { + -ms-transform: translateY(-10px); + } + + 100% { + -ms-transform: translateY(0); + } +} + +@-o-keyframes bounceInDown { + 0% { + opacity: 0; + -o-transform: translateY(-2000px); + } + + 60% { + opacity: 1; + -o-transform: translateY(30px); + } + + 80% { + -o-transform: translateY(-10px); + } + + 100% { + -o-transform: translateY(0); + } +} + +@keyframes bounceInDown { + 0% { + opacity: 0; + transform: translateY(-2000px); + } + + 60% { + opacity: 1; + transform: translateY(30px); + } + + 80% { + transform: translateY(-10px); + } + + 100% { + transform: translateY(0); + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + -moz-animation-name: bounceInDown; + -ms-animation-name: bounceInDown; + -o-animation-name: bounceInDown; + animation-name: bounceInDown; +} +@-webkit-keyframes bounceInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(30px); + } + + 80% { + -webkit-transform: translateX(-10px); + } + + 100% { + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes bounceInLeft { + 0% { + opacity: 0; + -moz-transform: translateX(-2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateX(30px); + } + + 80% { + -moz-transform: translateX(-10px); + } + + 100% { + -moz-transform: translateX(0); + } +} + +@-ms-keyframes bounceInLeft { + 0% { + opacity: 0; + -ms-transform: translateX(-2000px); + } + + 60% { + opacity: 1; + -ms-transform: translateX(30px); + } + + 80% { + -ms-transform: translateX(-10px); + } + + 100% { + -ms-transform: translateX(0); + } +} + +@-o-keyframes bounceInLeft { + 0% { + opacity: 0; + -o-transform: translateX(-2000px); + } + + 60% { + opacity: 1; + -o-transform: translateX(30px); + } + + 80% { + -o-transform: translateX(-10px); + } + + 100% { + -o-transform: translateX(0); + } +} + +@keyframes bounceInLeft { + 0% { + opacity: 0; + transform: translateX(-2000px); + } + + 60% { + opacity: 1; + transform: translateX(30px); + } + + 80% { + transform: translateX(-10px); + } + + 100% { + transform: translateX(0); + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + -moz-animation-name: bounceInLeft; + -ms-animation-name: bounceInLeft; + -o-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} +@-webkit-keyframes bounceInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(2000px); + } + + 60% { + opacity: 1; + -webkit-transform: translateX(-30px); + } + + 80% { + -webkit-transform: translateX(10px); + } + + 100% { + -webkit-transform: translateX(0); + } +} + +@-moz-keyframes bounceInRight { + 0% { + opacity: 0; + -moz-transform: translateX(2000px); + } + + 60% { + opacity: 1; + -moz-transform: translateX(-30px); + } + + 80% { + -moz-transform: translateX(10px); + } + + 100% { + -moz-transform: translateX(0); + } +} + +@-ms-keyframes bounceInRight { + 0% { + opacity: 0; + -ms-transform: translateX(2000px); + } + + 60% { + opacity: 1; + -ms-transform: translateX(-30px); + } + + 80% { + -ms-transform: translateX(10px); + } + + 100% { + -ms-transform: translateX(0); + } +} + +@-o-keyframes bounceInRight { + 0% { + opacity: 0; + -o-transform: translateX(2000px); + } + + 60% { + opacity: 1; + -o-transform: translateX(-30px); + } + + 80% { + -o-transform: translateX(10px); + } + + 100% { + -o-transform: translateX(0); + } +} + +@keyframes bounceInRight { + 0% { + opacity: 0; + transform: translateX(2000px); + } + + 60% { + opacity: 1; + transform: translateX(-30px); + } + + 80% { + transform: translateX(10px); + } + + 100% { + transform: translateX(0); + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + -moz-animation-name: bounceInRight; + -ms-animation-name: bounceInRight; + -o-animation-name: bounceInRight; + animation-name: bounceInRight; +} +@-webkit-keyframes bounceOut { + 0% { + -webkit-transform: scale(1); + } + + 25% { + -webkit-transform: scale(.95); + } + + 50% { + opacity: 1; + -webkit-transform: scale(1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.3); + } +} + +@-moz-keyframes bounceOut { + 0% { + -moz-transform: scale(1); + } + + 25% { + -moz-transform: scale(.95); + } + + 50% { + opacity: 1; + -moz-transform: scale(1.1); + } + + 100% { + opacity: 0; + -moz-transform: scale(.3); + } +} + +@-ms-keyframes bounceOut { + 0% { + -ms-transform: scale(1); + } + + 25% { + -ms-transform: scale(.95); + } + + 50% { + opacity: 1; + -ms-transform: scale(1.1); + } + + 100% { + opacity: 0; + -ms-transform: scale(.3); + } +} + +@-o-keyframes bounceOut { + 0% { + -o-transform: scale(1); + } + + 25% { + -o-transform: scale(.95); + } + + 50% { + opacity: 1; + -o-transform: scale(1.1); + } + + 100% { + opacity: 0; + -o-transform: scale(.3); + } +} + +@keyframes bounceOut { + 0% { + transform: scale(1); + } + + 25% { + transform: scale(.95); + } + + 50% { + opacity: 1; + transform: scale(1.1); + } + + 100% { + opacity: 0; + transform: scale(.3); + } +} + +.bounceOut { + -webkit-animation-name: bounceOut; + -moz-animation-name: bounceOut; + -ms-animation-name: bounceOut; + -o-animation-name: bounceOut; + animation-name: bounceOut; +} +@-webkit-keyframes bounceOutUp { + 0% { + -webkit-transform: translateY(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateY(20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-2000px); + } +} + +@-moz-keyframes bounceOutUp { + 0% { + -moz-transform: translateY(0); + } + + 20% { + opacity: 1; + -moz-transform: translateY(20px); + } + + 100% { + opacity: 0; + -moz-transform: translateY(-2000px); + } +} + +@-ms-keyframes bounceOutUp { + 0% { + -ms-transform: translateY(0); + } + + 20% { + opacity: 1; + -ms-transform: translateY(20px); + } + + 100% { + opacity: 0; + -ms-transform: translateY(-2000px); + } +} + +@-o-keyframes bounceOutUp { + 0% { + -o-transform: translateY(0); + } + + 20% { + opacity: 1; + -o-transform: translateY(20px); + } + + 100% { + opacity: 0; + -o-transform: translateY(-2000px); + } +} + +@keyframes bounceOutUp { + 0% { + transform: translateY(0); + } + + 20% { + opacity: 1; + transform: translateY(20px); + } + + 100% { + opacity: 0; + transform: translateY(-2000px); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + -moz-animation-name: bounceOutUp; + -ms-animation-name: bounceOutUp; + -o-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} +@-webkit-keyframes bounceOutDown { + 0% { + -webkit-transform: translateY(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateY(-20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(2000px); + } +} + +@-moz-keyframes bounceOutDown { + 0% { + -moz-transform: translateY(0); + } + + 20% { + opacity: 1; + -moz-transform: translateY(-20px); + } + + 100% { + opacity: 0; + -moz-transform: translateY(2000px); + } +} + +@-ms-keyframes bounceOutDown { + 0% { + -ms-transform: translateY(0); + } + + 20% { + opacity: 1; + -ms-transform: translateY(-20px); + } + + 100% { + opacity: 0; + -ms-transform: translateY(2000px); + } +} + +@keyframes bounceOutDown { + 0% { + transform: translateY(0); + } + + 20% { + opacity: 1; + transform: translateY(-20px); + } + + 100% { + opacity: 0; + transform: translateY(2000px); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + -moz-animation-name: bounceOutDown; + -ms-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} +@-webkit-keyframes bounceOutLeft { + 0% { + -webkit-transform: translateX(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateX(20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(-2000px); + } +} + +@-moz-keyframes bounceOutLeft { + 0% { + -moz-transform: translateX(0); + } + + 20% { + opacity: 1; + -moz-transform: translateX(20px); + } + + 100% { + opacity: 0; + -moz-transform: translateX(-2000px); + } +} + +@-ms-keyframes bounceOutLeft { + 0% { + -ms-transform: translateX(0); + } + + 20% { + opacity: 1; + -ms-transform: translateX(20px); + } + + 100% { + opacity: 0; + -ms-transform: translateX(-2000px); + } +} + +@-o-keyframes bounceOutLeft { + 0% { + -o-transform: translateX(0); + } + + 20% { + opacity: 1; + -o-transform: translateX(20px); + } + + 100% { + opacity: 0; + -o-transform: translateX(-2000px); + } +} + +@keyframes bounceOutLeft { + 0% { + transform: translateX(0); + } + + 20% { + opacity: 1; + transform: translateX(20px); + } + + 100% { + opacity: 0; + transform: translateX(-2000px); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + -moz-animation-name: bounceOutLeft; + -ms-animation-name: bounceOutLeft; + -o-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} +@-webkit-keyframes bounceOutRight { + 0% { + -webkit-transform: translateX(0); + } + + 20% { + opacity: 1; + -webkit-transform: translateX(-20px); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(2000px); + } +} + +@-moz-keyframes bounceOutRight { + 0% { + -moz-transform: translateX(0); + } + + 20% { + opacity: 1; + -moz-transform: translateX(-20px); + } + + 100% { + opacity: 0; + -moz-transform: translateX(2000px); + } +} + +@-ms-keyframes bounceOutRight { + 0% { + -ms-transform: translateX(0); + } + + 20% { + opacity: 1; + -ms-transform: translateX(-20px); + } + + 100% { + opacity: 0; + -ms-transform: translateX(2000px); + } +} + +@-o-keyframes bounceOutRight { + 0% { + -o-transform: translateX(0); + } + + 20% { + opacity: 1; + -o-transform: translateX(-20px); + } + + 100% { + opacity: 0; + -o-transform: translateX(2000px); + } +} + +@keyframes bounceOutRight { + 0% { + transform: translateX(0); + } + + 20% { + opacity: 1; + transform: translateX(-20px); + } + + 100% { + opacity: 0; + transform: translateX(2000px); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + -moz-animation-name: bounceOutRight; + -ms-animation-name: bounceOutRight; + -o-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(-200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } +} +@-moz-keyframes rotateIn { + 0% { + -moz-transform-origin: center center; + -moz-transform: rotate(-200deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: center center; + -moz-transform: rotate(0); + opacity: 1; + } +} +@-ms-keyframes rotateIn { + 0% { + -ms-transform-origin: center center; + -ms-transform: rotate(-200deg); + opacity: 0; + } + + 100% { + -ms-transform-origin: center center; + -ms-transform: rotate(0); + opacity: 1; + } +} +@-o-keyframes rotateIn { + 0% { + -o-transform-origin: center center; + -o-transform: rotate(-200deg); + opacity: 0; + } + + 100% { + -o-transform-origin: center center; + -o-transform: rotate(0); + opacity: 1; + } +} +@keyframes rotateIn { + 0% { + transform-origin: center center; + transform: rotate(-200deg); + opacity: 0; + } + + 100% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + -moz-animation-name: rotateIn; + -ms-animation-name: rotateIn; + -o-animation-name: rotateIn; + animation-name: rotateIn; +} +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInUpLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-ms-keyframes rotateInUpLeft { + 0% { + -ms-transform-origin: left bottom; + -ms-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -ms-transform-origin: left bottom; + -ms-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInUpLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } + + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + -moz-animation-name: rotateInUpLeft; + -ms-animation-name: rotateInUpLeft; + -o-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInDownLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-ms-keyframes rotateInDownLeft { + 0% { + -ms-transform-origin: left bottom; + -ms-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -ms-transform-origin: left bottom; + -ms-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInDownLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(-90deg); + opacity: 0; + } + + 100% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + -moz-animation-name: rotateInDownLeft; + -ms-animation-name: rotateInDownLeft; + -o-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInUpRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-ms-keyframes rotateInUpRight { + 0% { + -ms-transform-origin: right bottom; + -ms-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -ms-transform-origin: right bottom; + -ms-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInUpRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } + + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + -moz-animation-name: rotateInUpRight; + -ms-animation-name: rotateInUpRight; + -o-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } +} + +@-moz-keyframes rotateInDownRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } +} + +@-ms-keyframes rotateInDownRight { + 0% { + -ms-transform-origin: right bottom; + -ms-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -ms-transform-origin: right bottom; + -ms-transform: rotate(0); + opacity: 1; + } +} + +@-o-keyframes rotateInDownRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(90deg); + opacity: 0; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } +} + +@keyframes rotateInDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } + + 100% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + -moz-animation-name: rotateInDownRight; + -ms-animation-name: rotateInDownRight; + -o-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: center center; + -webkit-transform: rotate(200deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOut { + 0% { + -moz-transform-origin: center center; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: center center; + -moz-transform: rotate(200deg); + opacity: 0; + } +} + +@-ms-keyframes rotateOut { + 0% { + -ms-transform-origin: center center; + -ms-transform: rotate(0); + opacity: 1; + } + + 100% { + -ms-transform-origin: center center; + -ms-transform: rotate(200deg); + opacity: 0; + } +} + +@-o-keyframes rotateOut { + 0% { + -o-transform-origin: center center; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: center center; + -o-transform: rotate(200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + 0% { + transform-origin: center center; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: center center; + transform: rotate(200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + -moz-animation-name: rotateOut; + -ms-animation-name: rotateOut; + -o-animation-name: rotateOut; + animation-name: rotateOut; +} +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutUpLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } +} + +@-ms-keyframes rotateOutUpLeft { + 0% { + -ms-transform-origin: left bottom; + -ms-transform: rotate(0); + opacity: 1; + } + + 100% { + -ms-transform-origin: left bottom; + -ms-transform: rotate(-90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutUpLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + -transform-origin: left bottom; + -transform: rotate(-90deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + -moz-animation-name: rotateOutUpLeft; + -ms-animation-name: rotateOutUpLeft; + -o-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutDownLeft { + 0% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: left bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } +} + +@-ms-keyframes rotateOutDownLeft { + 0% { + -ms-transform-origin: left bottom; + -ms-transform: rotate(0); + opacity: 1; + } + + 100% { + -ms-transform-origin: left bottom; + -ms-transform: rotate(90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutDownLeft { + 0% { + -o-transform-origin: left bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: left bottom; + -o-transform: rotate(90deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + 0% { + transform-origin: left bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: left bottom; + transform: rotate(90deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + -moz-animation-name: rotateOutDownLeft; + -ms-animation-name: rotateOutDownLeft; + -o-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutUpRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(90deg); + opacity: 0; + } +} + +@-ms-keyframes rotateOutUpRight { + 0% { + -ms-transform-origin: right bottom; + -ms-transform: rotate(0); + opacity: 1; + } + + 100% { + -ms-transform-origin: right bottom; + -ms-transform: rotate(90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutUpRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: right bottom; + transform: rotate(90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + -moz-animation-name: rotateOutUpRight; + -ms-animation-name: rotateOutUpRight; + -o-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(0); + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + -webkit-transform: rotate(-90deg); + opacity: 0; + } +} + +@-moz-keyframes rotateOutDownRight { + 0% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(0); + opacity: 1; + } + + 100% { + -moz-transform-origin: right bottom; + -moz-transform: rotate(-90deg); + opacity: 0; + } +} + +@-ms-keyframes rotateOutDownRight { + 0% { + -ms-transform-origin: right bottom; + -ms-transform: rotate(0); + opacity: 1; + } + + 100% { + -ms-transform-origin: right bottom; + -ms-transform: rotate(-90deg); + opacity: 0; + } +} + +@-o-keyframes rotateOutDownRight { + 0% { + -o-transform-origin: right bottom; + -o-transform: rotate(0); + opacity: 1; + } + + 100% { + -o-transform-origin: right bottom; + -o-transform: rotate(-90deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + 0% { + transform-origin: right bottom; + transform: rotate(0); + opacity: 1; + } + + 100% { + transform-origin: right bottom; + transform: rotate(-90deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + -moz-animation-name: rotateOutDownRight; + -ms-animation-name: rotateOutDownRight; + -o-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} +@-webkit-keyframes hinge { + 0% { -webkit-transform: rotate(0); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 20%, 60% { -webkit-transform: rotate(80deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 40% { -webkit-transform: rotate(60deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 80% { -webkit-transform: rotate(60deg) translateY(0); opacity: 1; -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; } + 100% { -webkit-transform: translateY(700px); opacity: 0; } +} + +@-moz-keyframes hinge { + 0% { -moz-transform: rotate(0); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 20%, 60% { -moz-transform: rotate(80deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 40% { -moz-transform: rotate(60deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 80% { -moz-transform: rotate(60deg) translateY(0); opacity: 1; -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; } + 100% { -moz-transform: translateY(700px); opacity: 0; } +} + +@-ms-keyframes hinge { + 0% { -ms-transform: rotate(0); -ms-transform-origin: top left; -ms-animation-timing-function: ease-in-out; } + 20%, 60% { -ms-transform: rotate(80deg); -ms-transform-origin: top left; -ms-animation-timing-function: ease-in-out; } + 40% { -ms-transform: rotate(60deg); -ms-transform-origin: top left; -ms-animation-timing-function: ease-in-out; } + 80% { -ms-transform: rotate(60deg) translateY(0); opacity: 1; -ms-transform-origin: top left; -ms-animation-timing-function: ease-in-out; } + 100% { -ms-transform: translateY(700px); opacity: 0; } +} + +@-o-keyframes hinge { + 0% { -o-transform: rotate(0); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 20%, 60% { -o-transform: rotate(80deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 40% { -o-transform: rotate(60deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 80% { -o-transform: rotate(60deg) translateY(0); opacity: 1; -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; } + 100% { -o-transform: translateY(700px); opacity: 0; } +} + +@keyframes hinge { + 0% { transform: rotate(0); transform-origin: top left; animation-timing-function: ease-in-out; } + 20%, 60% { transform: rotate(80deg); transform-origin: top left; animation-timing-function: ease-in-out; } + 40% { transform: rotate(60deg); transform-origin: top left; animation-timing-function: ease-in-out; } + 80% { transform: rotate(60deg) translateY(0); opacity: 1; transform-origin: top left; animation-timing-function: ease-in-out; } + 100% { transform: translateY(700px); opacity: 0; } +} + +.hinge { + -webkit-animation-name: hinge; + -moz-animation-name: hinge; + -ms-animation-name: hinge; + -o-animation-name: hinge; + animation-name: hinge; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + 0% { opacity: 0; -webkit-transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; -webkit-transform: translateX(0px) rotate(0deg); } +} + +@-moz-keyframes rollIn { + 0% { opacity: 0; -moz-transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; -moz-transform: translateX(0px) rotate(0deg); } +} + +@-ms-keyframes rollIn { + 0% { opacity: 0; -ms-transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; -ms-transform: translateX(0px) rotate(0deg); } +} + +@-o-keyframes rollIn { + 0% { opacity: 0; -o-transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; -o-transform: translateX(0px) rotate(0deg); } +} + +@keyframes rollIn { + 0% { opacity: 0; transform: translateX(-100%) rotate(-120deg); } + 100% { opacity: 1; transform: translateX(0px) rotate(0deg); } +} + +.rollIn { + -webkit-animation-name: rollIn; + -moz-animation-name: rollIn; + -ms-animation-name: rollIn; + -o-animation-name: rollIn; + animation-name: rollIn; +} +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + -webkit-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -webkit-transform: translateX(100%) rotate(120deg); + } +} + +@-moz-keyframes rollOut { + 0% { + opacity: 1; + -moz-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -moz-transform: translateX(100%) rotate(120deg); + } +} + +@-ms-keyframes rollOut { + 0% { + opacity: 1; + -ms-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -ms-transform: translateX(100%) rotate(120deg); + } +} + +@-o-keyframes rollOut { + 0% { + opacity: 1; + -o-transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + -o-transform: translateX(100%) rotate(120deg); + } +} + +@keyframes rollOut { + 0% { + opacity: 1; + transform: translateX(0px) rotate(0deg); + } + + 100% { + opacity: 0; + transform: translateX(100%) rotate(120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + -moz-animation-name: rollOut; + -ms-animation-name: rollOut; + -o-animation-name: rollOut; + animation-name: rollOut; +} diff --git a/vendor/assets/javascripts/anythingslider/anythingslider.css b/vendor/assets/javascripts/anythingslider/anythingslider.css new file mode 100644 index 0000000..32e4921 --- /dev/null +++ b/vendor/assets/javascripts/anythingslider/anythingslider.css @@ -0,0 +1,291 @@ +/* + AnythingSlider v1.8+ Default theme + By Chris Coyier: http://css-tricks.com + with major improvements by Doug Neiner: http://pixelgraphics.us/ + based on work by Remy Sharp: http://jqueryfordesigners.com/ +*/ + +/***************************** + SET DEFAULT DIMENSIONS HERE + *****************************/ +/* change the ID & dimensions to match your slider */ +#slider { + width: 700px; + height: 390px; + list-style: none; + /* Prevent FOUC (see FAQ page) and keep things readable if javascript is disabled */ + overflow-y: auto; + overflow-x: hidden; +} + +/****************** + SET STYLING HERE + ****************** + ================================= + Default state (no keyboard focus) + ==================================*/ +/* Overall Wrapper */ +.anythingSlider-default { + margin: 0 auto; + /* 45px right & left padding for the arrows, 28px @ bottom for navigation */ + padding: 0 45px 28px 45px; +} +/* slider window - top & bottom borders, default state */ +.anythingSlider-default .anythingWindow { + border-top: 3px solid #777; + border-bottom: 3px solid #777; +} +/* Navigation buttons + start/stop button, default state */ +.anythingSlider-default .anythingControls a { + /* top shadow */ + background: #777 url(../images/default.png) center -288px repeat-x; + color: #000; + border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; +} +/* Make sure navigation text is visible */ +.anythingSlider-default .anythingControls a span { + visibility: visible; +} +/* Navigation current button, default state */ +.anythingSlider-default .anythingControls a.cur { + background: #888; + color: #000; +} + +/* start-stop button, stopped, default state */ +.anythingSlider-default .anythingControls a.start-stop { + background-color: #040; + color: #ddd; +} +/* start-stop button, playing, default state */ +.anythingSlider-default .anythingControls a.start-stop.playing { + background-color: #800; +} + +/* start-stop button, default hovered text color (when visible) */ +/* hide nav/start-stop background image shadow on hover - makes the button appear to come forward */ +.anythingSlider-default .anythingControls a.start-stop:hover, +.anythingSlider-default .anythingControls a.start-stop.hover, +.anythingSlider-default .anythingControls a.start-stop .anythingControls ul a:hover { + background-image: none; + color: #ddd; +} + +/* + ================================= + Active State (has keyboard focus) + ================================= +*/ +/* slider window - top & bottom borders, active state */ +.anythingSlider-default.activeSlider .anythingWindow { + border-color: #7C9127; +} +/* Navigation buttons, active state */ +.anythingSlider-default.activeSlider .anythingControls a { + /* background image = top shadow */ + background-color: #7C9127; +} +/* Navigation current & hovered button, active state */ +.anythingSlider-default.activeSlider .anythingControls a.cur, +.anythingSlider-default.activeSlider .anythingControls a:hover { + /* background image removed */ + background: #7C9127; +} + +/* start-stop button, stopped, active state */ +.anythingSlider-default.activeSlider .anythingControls a.start-stop { + background-color: #080; + color: #fff; +} +/* start-stop button, playing, active state */ +.anythingSlider-default.activeSlider .anythingControls a.start-stop.playing { + background-color: #d00; + color: #fff; +} +/* start-stop button, active slider hovered text color (when visible) */ +.anythingSlider-default.activeSlider .start-stop:hover, +.anythingSlider-default.activeSlider .start-stop.hover { + color: #fff; +} + +/************************ + NAVIGATION POSITIONING + ************************/ +/* Navigation Arrows */ +.anythingSlider-default .arrow { + top: 50%; + position: absolute; + display: block; +} + +.anythingSlider-default .arrow a { + display: block; + width: 45px; + height: 140px; + margin: -70px 0 0 0; /* half height of image */ + text-align: center; + outline: 0; + background: url(../images/default.png) no-repeat; +} + +/* back arrow */ +.anythingSlider-default .back { left: 0; } +.anythingSlider-default .back a { background-position: left top; } +.anythingSlider-default .back a:hover, +.anythingSlider-default .back a.hover { background-position: left -140px; } +/* forward arrow */ +.anythingSlider-default .forward { right: 0; } +.anythingSlider-default .forward a { background-position: right top; } +.anythingSlider-default .forward a:hover, +.anythingSlider-default .forward a.hover { background-position: right -140px; } + +/* Navigation Links */ +.anythingSlider-default .anythingControls { outline: 0; display: none; } +.anythingSlider-default .anythingControls ul { margin: 0; padding: 0; float: left; } +.anythingSlider-default .anythingControls ul li { display: inline; } +.anythingSlider-default .anythingControls ul a { + font: 11px/18px Georgia, Serif; + display: inline-block; + text-decoration: none; + padding: 2px 8px; + height: 18px; + margin: 0 5px 0 0; + text-align: center; + outline: 0; +} + +/* navigationSize window */ +.anythingSlider-default .anythingControls .anythingNavWindow { + overflow: hidden; + float: left; +} + +/* Autoplay Start/Stop button */ +.anythingSlider-default .anythingControls .start-stop { + padding: 2px 5px; + width: 40px; + text-align: center; + text-decoration: none; + float: right; + z-index: 100; + outline: 0; +} + +/*********************** + IE8 AND OLDER STYLING + ***********************/ + +/* Navigation Arrows */ +.as-oldie .anythingSlider-default .arrow { + top: 30%; +} +.as-oldie .anythingSlider-default .arrow a { + margin: 0; +} + +/* margin between nav buttons just looks better */ +.as-oldie .anythingSlider-default .anythingControls li { + margin-left: 3px; +} + +/* When using the navigationSize option, the side margins need to be zero + None of the navigation panels look good in IE7 now =( */ +.as-oldie .anythingSlider-default .anythingControls a { + margin: 0; +} +.as-oldie .anythingSlider-default .anythingNavWindow { + margin: 0 2px; +} +.as-oldie .anythingSlider-default .anythingNavWindow li { + padding: 3px 0 0 0; +} + +/*********************** + COMMON SLIDER STYLING + ***********************/ +/* Overall Wrapper */ +.anythingSlider { + display: block; + overflow: visible !important; + position: relative; +} +/* anythingSlider viewport window */ +.anythingSlider .anythingWindow { + overflow: hidden; + position: relative; + width: 100%; + height: 100%; +} +/* anythingSlider base (original element) */ +.anythingSlider .anythingBase { + background: transparent; + list-style: none; + position: absolute; + overflow: visible !important; + top: 0; + left: 0; + margin: 0; + padding: 0; +} + +/* Navigation arrow text; indent moved to span inside "a", for IE7; + apparently, a negative text-indent on an "a" link moves the link as well as the text */ +.anythingSlider .arrow span { + display: block; + visibility: hidden; +} +/* disabled arrows, hide or reduce opacity: opacity: .5; filter: alpha(opacity=50); */ +.anythingSlider .arrow.disabled { + display: none; +} +/* all panels inside the slider; horizontal mode */ +.anythingSlider .panel { + background: transparent; + display: block; + overflow: hidden; + float: left; + padding: 0; + margin: 0; +} +/* vertical mode */ +.anythingSlider .vertical .panel { + float: none; +} +/* fade mode */ +.anythingSlider .fade .panel { + float: none; + position: absolute; + top: 0; + left: 0; + z-index: -1; +} +/* fade mode active page - visible & on top */ +.anythingSlider .fade .activePage { + z-index: 0; +} + +/*********************** + RTL STYLING + ***********************/ +/* slider autoplay right-to-left, reverse order of nav links to look better */ +.anythingSlider.rtl .anythingWindow { + direction: ltr; + unicode-bidi: bidi-override; +} +.anythingSlider.rtl .anythingControls ul { float: left; } /* move nav link group to left */ +.anythingSlider.rtl .anythingControls ul a { float: right; } /* reverse order of nav links */ +.anythingSlider.rtl .start-stop { /* float: right; */ } /* move start/stop button - in case you want to switch sides */ + +/* probably not necessary, but added just in case */ +.anythingSlider, +.anythingSlider .anythingWindow, +.anythingSlider .anythingControls ul a, +.anythingSlider .arrow a, +.anythingSlider .start-stop { + transition-duration: 0; + -o-transition-duration: 0; + -moz-transition-duration: 0; + -webkit-transition-duration: 0; +} diff --git a/vendor/assets/javascripts/anythingslider/images/arrows-metallic.png b/vendor/assets/javascripts/anythingslider/images/arrows-metallic.png new file mode 100644 index 0000000000000000000000000000000000000000..c3a8f4afbd2b081f613ceaa93e4e0abce27de5de GIT binary patch literal 17088 zcmcJ$Wl$Z_*Y4T4yE_B|1b25QI0O&w!GpWILvV-S?(XjH?k>TdIsZGirrulkom({@ zrt0+R>e^DfSFgQ$?dP{TOi^AE2_7FF001OuDKTZxSqpS@!a{@o8@zCnKqojmDNP3e zK*0FV0S2UH-~s@=f`zE4qN2I2qpgFvtsSYfs3@u3Z(CCfD-!^4UCmT6`=N4z&HuQ0 zCn6K-`$xuB84H$FStP<2Gmesm3=Z{sC|T|bmQoLzxHu%ia84*hbhK|ImJ%IeIQ%lq zK3QILKz?ZW=TLa74eKmz(>MuvNUB0Zo_<#RX(_+~z(dVm4if5@=Fa^e6| z43khXz?>H-pHd4K2Q-)fOjDVDZeW=nV3Jlhl>(}pfbL0DgjxU=5nxgZ4f+N^dI0*v zhA%VCM|2~y9{p(-^ye2t!@ZA#sWLku0N8Q#p823- zti$)^h4!`n$oqN;X|9Wqbo?YCpSF9)?_>)Ir{duP4c8B2B;T44KHrGuzVu5Q zwrJ2`?kS<$M~kIJ-m(;Y2@{F`Ht==!(|C7_?iE5{iyf%`B>?6TM_;UC1o0q4g{tA$ zz556NH*K~(^VF~qzUBctQ!bxZg713Dkp&=sR#_%T{1I0Op-VmW>^)xrdK zJ-Bq;(1blu>pci>`W%5G6#cy-s3P#jzJ$N^zm@xoPzO&`6Vd21&I=K-bt{<%C)gn~ z^r|)^^V^}k7{F%rP`CTRK?)DUVi=IEhJqP}Ymi67;-m&Wk@ZMHqDN4Wj)Y<=eUXV{ zmts~9|3RuMMRdde8=O1jr$lQU?=ZmP{}$XX$^6H!R*8Qeu|c$@m=ixxA`fBO*pWFc z20JHx`gc7(e&=nzx)F)j>izZDb1V4p}07ad%J(OAuwa>TMh{A#sw zh_3O2M=I8Hc-K&4))FA2pm^^~n> z&;7WDEX*MqQgq~t=rI_Ks2-uB{hSo&VWKQlEwSLzHGhB1qR&dq+9;Es(3PaKN#T+ta~$(Wi>hPCRZc>h&vZVq+qOop-?kwymVX`Tr)fu+^Q7WLcF;MyrCaVoXlq_N2w^OwyGL5 zjWnKEaij2w-xDbl31}F9l#~{hZk8gb-l~rMh$+!k@v4+iWmVZLftyb%Q!UL@JX0Z1 zF)QIM4km(@^DAgMaj3`;hUIO-*&$d6tc;- zFq{0eEKN#I(kPQEQ!0}@>)@!oD9SAC5O33b^+OgO`cCzeO42N55-RgZWkqG92)+ng zj-ThglA+YHfFQR`%%#hw=rSd%Q`a|3*0yNVt>fs0(2Mc?$Gi1Q(Y++126P=F1@s!? zBre|oyS*(R5#!L>KP6F}J|WQpgG7Vmoxr%38NU1li6{w_NQ=RrdlY-tgVuxjl+cu9 zlrnOsa+hh!axI153VCIDWrrrlC-Np1Q`yt`nU`3O(vQ-Y(zlxQwOqC68jBm7O{8o0 zwF)&a8{2Jyw74}3G*q>8>Le;ME50taRkRhM6}8AG$d_d;n)OxxYaD4TX~L^MScYD! zY_x9lGB7j5F>4yA?7K|pNbqX)ihAdVK?+$xE+f(+@^+~Ijme|Nvza!TaVh9EaF=w# zXr?iRIcMNB231Aj3HToA)R1wW4L4gyW_pR&W`)+ zeP()HdhbQ?TGb`TrNw2)diFS5_O~oeR)^`nVbN`+gBd}D>_jHZt#WS#Q3XGb(Fh5~GZSdD8cTcjeXhEJelZV=s3*pF|7GW&m82<|YgPsa9^WpQ@3bMze zl*zbB3*;b0@8iX37=uHDh(2#bs-Tb{^@)(U48QnRIa}FU1qT^SHOCh;GBu>FWC*z#Xev2utU9;eE^b41Gj|d8JaAGN zhjr}SawmK5f{L(97|`i>l7wVK<+=V`3!~B$V@H0y!EpH+4e!=V)NA&IafV|ibXoK# z4YB-<6pfsF{CQkEyBoy-YXRLsOCVKAY`ZLy>_$3I7IvC5sWl5fPX}{Ad|a%(NGX|I zLZjKK*`cZPSh-11?Z<#kL=z)%BFu-*Jq=)%X9%kB2SHwE>q{3p3L1=>TMY&;!I=aCSYhFn zm}@x6SU$_t>#hd`A-1Dksq260OUn9NjHgUzO-~Lt>9e$vlS-2hlaXzZR#xkgw$$n` z?jOY07?UTc*V+OaMO*T__?p{Iibf_Ucm;p_{c-o>_&sZ(v!{1C4oo#1Kat+ zns)o+yTC~2nkty8+=A(X$*c5h-J@V-Sn0`A(yO&jg}k->#Sp|S#5)W*a^q6V`~uM| z{}1JuMcOk-A~Pb! zUm|HYX%guwX|LLb+N}!X0yB%Jo9=ItYa}QcYs-9XMO5;%J-2l zr!dr((Uw-(^3$^A(!Ha>!}RflAd7Qy1X{TB9y_iw8A z$+5N-7plvOc7=AmJE05V715251wrkP_2sK|pI_ZBIkz+Gl8?|q0aG7w_c17*~ChTMFhv%ZIjy)6^&;>u~frwK{fycI9p*^Ja==q%IC34K5baa4{+bkA6RWsIV9Y zDr~5jkzpPkyaDsSWa@3`+9@G@=#y2OO+?#V!u$l$bqbgGZtXn9)itk@jvr;C|jiCXT$rSt9jFwxHc$1cR zRF*lW$S)$Hw;@kzO*c2cgHgff9#U)R)F)GUKXV-hBNG5SAjRsX&lHRW!ME%5l;p1Y zWNLoIWlOEOTsy{RSKh5R3{DoGUuVR$Qtj2J3e6a^`dQk*Kb-1_7Y> zPSgvgvZR4^Z@I7i72X@levK=%P?z{(Aoc|f^eZlfmzy)df2@E`Z)J6po6D6@Z6k@3 z!c8mHal35UdOcoTqeQBGnWGm<54NA`x}KHW`urHk4$I>jy?X3By3JkK@>i4+<{}I( zl>ieOO@iA1SS(kmOMYSQNa5zj`m6aMcnXlbePBz)vz^AvP4E_sZ5Uj~X_l7l?%r`rz=t05qXvF_1%Yso_E0K>7=t zrv+zy{ff(B#nrx_@whX4_SRWs?J_ejt6g#ETn2co{f#6>pE zQ$kmFlW1}(1eqw9*=P^|V8Q%*NCC`r{iC#Uv`&laZ?RBwg+J#8clDWI4SDSL2BYdm zM4R5;-gqhHK&@MiP_il0TO20w+TxGgUSZJ1(OQX(y1V@Xx^MXeKHnT-Qw9c1i|C*= zf-MdX4xoYfDBHB192_bf%3*Q9UBl(L^eks2Czs_rNfuL<2!O~>qI z`R^RAbQ5r97_<0Dt{8}d0r&xQ0~3$2gmimLeRcMEWt^mE>I zG?U1r^EMT2Tlgj;qnne`)n><@5H@6Plm#NjlAvZ%RXV%J zM- z*58gEO279C791sJ$Y{%yZ_0zQ>ut0)v1~I%S6P`RZHca+o_XoqvB(ePuq;&uC-&cf z#=n1my!D-O7U|g!sG5M9&@a04U6MB4>lB7LSwFWIQT;XKOovbRxT8+9E<)#KC?R9E z<96jEep!;nkJ$%WQ~jHve7e7L|3#&g^=PdKI2nhI4l% zxD8JLn-nxe9@p=UFK?x!I_+Y3`&ofLg%q|IWzB~68#_#9R87E<+b9e@ zZs*fM!R_n)nIua50E3^L#3pQJQw{{$DgNsMD0%_{YJIVY%Pf?QL>WOZ8nwMjU4O`OjIh#myl2%I}>U zi&z;MkFcuF#_3Bku^g1sdJbxG`e^ezL|E_TwFRP;O%2%(_ z-Lgaw>;F^m1xqdY&!2HN&CDdnYKOz5M>NQtLB|H}Z_CIh+-K)AoD(TZ97(Mg5rpXR zzl63UU&=w+f^P_kxAFOkSxjfxLnIIWow9{vJvD4^lmZ`jm%6|r+%&%^Ck++ehF zG)>2U>8wWJDAAT}=L$BhZZEN9qVx)4e>F1W11Y4?vC@uur*r$-Ip0AcwzUg(dd*LY z+cLahv`IdPYp<|#C(&#?Ugr$zk(*4%-D1{s(oiG2KglSn$?9f~G6;;C%~=l6Q)6Ewyx#U*)r4ad>>{pU_(ikOkFYh&L7erzf$KwUHYYJHK%=6Pf5=MPYvR8Plqu%pm(~E4X z@-~;oT6dbk;%1y#N5?&(nVw7hY-J|l3(Dwf+Ez)_9BY*`IxY&SR`+oxn%9{*V;9nW zgHU$d+}sJ9-|zkLOIdObe7Kx zzV2;$T#;yk3OG2>(AuI+50iP@W^m#B?e6`drm%U#b|BM;n1AonC#Cl?$%gDWQ_3wF zsk~qhtG%8m*ggxsRQ`>Z|FWt;qA3*dV|LgX!rR?py~R+-GL2tup~Xl(gTkI%GP-pj zjQ-3xly0nPn(Ek-(o%8ZfiyjC?TNtVX{&Qy+YR7@%M<5;ze^bc2W+1HMR|c7I?5$$ z3tW4t4ch9LV*7v_%xp1hm*$fp^VBVd`C~y{Y6h&a2hip<>*QEF?l~|L5@Dq=1P0i| z2uku+t2W%G%0W!rz6Ay$;0%mN5>EeT5J^c$l^8H6^iZ*KU5~T9y&_sw?LY7r@G&cd z6?5*m4=XXTZ~B6fy4Y6OTm4t~rUu4_ij|fcAyy4ThxS^sCKZfVX=rHePwy;VKZ9+A zR8?_<f%eR49pRfY@pv!-JQ%6pYM14#-rTC8dNauU10-kRBKd|+0 ze{8NgK+uzLj}asawkHt>I>a4iI?myb#d0$I~a-7l-qGR_?j$>nK9eL_p)4GgV?uk265+S zRCImlLE?uBo@6A;|6{IG{PpgHS2u~jybq!VS}bYSEbbxQWTo%nWX{F&WiJ@s*Vn|b z_U5o{O;OX0jaGscG2wREsBTc}#sDHSIhiwV66P;~5D~Xp5c`!6yc~8xpH>pfrfCbQtXp9dKT)h)`lo7Bdp~d9QfIOe>ueE zx}K~?lk)OP$O{DkV@Vyl z=G`u8G=*OMT^4aE+i9Tx>zqg75Xr?!-%fC3|vtiIX=to!UfT0Ufg zsK7kU>eJsBbI0a86BBsMm{iNrIgugKG)X0>~T;Ybz|2$o)8KyS2YQ}4`l@R&=#{7F{+D|+5{6Kb+|vM%3>W8^0^C#mtVdr zI}tE3orB_QLB|z+W}A{W%0vgd{=R8Mb#{Gp0h6OByZ9ZR%p4rQj|QB~Fh=&u`wc4` zNieh$91((Yaf%k-Ps?VD4aUTh^N}|iUP%8HC;$- zW3^u9QO=f$R0P+XlCQb2Ef+#IEE;T0r4NsI!99iKO0aTK!*lYfn=lZGXgSQ_=h@_t zcJblbRQ7h-!?D@fSLb0+41Pv~+=7f-4NFQ8Ph*mL01brbE~)_q>d;dU3t;dYmEq18 z&FBFGn5du;QxZdI;9tJ7S_}E?uwn~FrnU#;iJtK?&+(Y6ce#01bYk6nendNFARV%) ztG*a535FF&4w~5&r>KIYpa%N+-zZxkp+#af7EXjTUer>6W9JsfmAw&{iBe{0aL;d! z!tzpIf(_6nzCn(;_Z(I$BB2rDv_XL4bU*dLZSV(@Pbb)>8puAFdwFO_TLN>QJ7;_q zP1O*W4<}fjxK+P#CPaKE=!$SO7qoyl;olK}v_B;l#a)pmI`m9HC@P%p(tLi(62sFk zqu+$n@f6t2ENQUQ2r|OUgvYU<8w7~q0>}J%`ael4!oj2s6?>U4x);;^I0XeFr3oYA z%pM$|R(q3*ZaRPH$;QTH53c%9LTehp`FD~|Km3Kl4F;RKolgCUn}I_ZMv3Hw*N7Hq zgmK`SDO4ARdvTNBe~E9$)SN~7Q)%`M3C#%M7guzE#O?_89aP+$AdYSy(K$N_Q9p%f zFL(aSDsC)?S+^*wmJI~W!_|(_!c$-L`*hejeC;LL%q*%pJxFK7(xsAMG z_MD?mHC_4> zmT8Y`s_{;F23yD;tQ|V>u}OFE%HKwF;*rL+iUvrwKoPRztYva+f13UlZv$o=%dL0F zSDKC673}GU_l>_|)t-IHun{fW9{X!Out+R$==Jj@ng=YMmQkp6Q}EL852y6mIZ89f zSI^ctaAXD^G}Ki9!qq1kg)ItiIc50}G#;RZh~=H<;&$YygF5gPQU015BW2$2dmNW6DJiH*mwUHE3D zr_Ls>)D78ZuaB_^vH#c~pZy60akC)Oi#(FaLgo9>qd$61&l>7QQ)P zZcz;5NW{3cilfVKSjRmBEVBzWLBym0XYy*2UuKdnYsu=;>93DU?T+M z?-zVoUoo;>b3RFCj`TF6=uny&A_C?$imZ`0WB%2)vYsq>W-{68Zb3-dV>e1V!2b3O z22G7O>$KJKZ?JceFFe@}g>R)tE{mCvEGpjO99x)l5VBCg&0Mf}l6&^m9Vp6OJCe~L zI!MM6#&ol5hlU^&DTit8qXft9EF?|xS^W3ZXHU4OKoH#eVhX7xKQw`%WuX@Sp2#ts zt62PH3UZYcG6TXK+`kngk(wIcx9JLRg={$x^=-ck#!&xL0O<2|l8(~43NVw(|1PV%@`>*MnZXri(ncF!nS02E zoK7M@a4&~s&gVqv=GIdAZky1h7=+{~E@}5w99n>MQvG^l%!+H4J9E*Ob(-|0TSmRZ;c%Pa(OvKlf)_`32-w{xV(XzNYUl zkMd>&^{9PzI`Xms>+8$@g9(ZC2x*EOuw?ftMVoU%A=_e0_Z`+SXZCm;M=yvz7xsZ# z8$FbPzF&9hlYCnm4i5|Ai<%^BwDLc)&v`AtD~6PtkaOr`wZXmTmp+O%HY$}^KcE|E z#`^zE3lWr-UfS?>heE7g;Mmv{OK_q0wwCnmbz?76NBV;G8V?=kCnoCgK=&3y=udb~ zbt;;?xv-3y;R-{56GTBg2b|AEvQDNj52Rv;8?h$C1y_|J2xV{*CS-6NU3)l%@%sLEeZywr_?SUm;T}O}*)F zysjB8a)=8zUK9k(gAeB8*eUcp<{~QRQWkjr$wf-0972d_r_6;M?$i#ftH5leM(*bk%jyhYmpWhFY zRp6!1?Z@^dNgon|Lt;$-QNEOFTIkSgBY zBU#+Q`*y2h^uT>ZjjY{iKQmpwG1G-P1VaJCapB~=<-@ddD;PeaMBxsQh$rgtGmo^i zv>!^^+89p9bx`%fVAhI4Ydkuj>x%O7CrQdBVxDRocs{~3uhfdCBBnXoXhLbkJ8~1& zGj_SP0VY{BZ#z*@3~)bvi7l_Q7+aga7_Nu3h9?f7Y1r^Bw_pzKlndx4S*qAbQF^Hx zh-qzoiF~zAaRW)8&WVZqKd<2HE%=mFom9*O88d&Cm6g4}P5FFa@W0fj0TSO=?el4;=Se|O{m`_?Nu5N@c72i9 zNQj{~3~)W0w{`vxRD6EvUHr>&2?AwZ{e(2A48=6CFRrO|j!Pu8=GVbl86g~n7RRcb z4)^c*de7ys!bIAns^6*G7qg~@OP6Vr))cV7-f&!>Ew33(F`-_OMa^=NOgW5HT~Ef5X!lCRlhr# zFHw<+U&){wkN{bPzuaPVagvQ17x4%G%ken3WQ-ck{C0AQ@n0G;@3}T5;&189RJgD| zoJ_OX0L^-kyl-aeB0P^MhXAC^2G>lI0t(#sKMbDb&0vCG-O zvC?2B9G0~8uQu9>OkVCR>fS+>Go`ZBdB4D{%~UkMpwMy<1l!YT8DT zU3GZO_`Sbs6<4<|5@xgpj#x0Y_0$*O0nvoq>pV`Q`{H_D_a?2YZ|e^i+M*?h>sF_OUhIxw0zmTZxhWH$$&Jrx3S*;!k5?k}D4|LAyD z$ZNg~Q))e&o}R`dT{qCGy?JZ$yi1wM`Py%Hcbcmh?Y-NOG&VLGK3?iPKo$_L(YMdE z%UMt+*n;mvb~dsHT*6G7uOf=TI$yqFdUw74-W?naenmOo!jVgyumH1;+Ew8DHzt>> zc#QEpoC39Psj2O->FW=65G$ zWJDp3fibiyy1s5g+ZVgcrVhJy<+JzNfdT_Laeo*F)vwN%)3FE+pXQNlX&)BNCUM}n zib2Qo7_^)v|0DDnKbsKt_6BR$Wi(!aP^v#mH_s#rbwpd{0iurFLh~RsA3(Z5n%5}U z)W0EQ5&_4RS#@s@>bXFibR>kua$O}&ZFPrK(rXf#cu46#q_E(wSukV2pBh=Xm9jOG zAf|3nA;IEtX|cb-z6~`vu_sq(cI2_7wTkBYrQ(`dpLBz?D)Be=CEZ7aq=Q3X zxCwh3*S(qc7p61b_HDL%l7=n}&}DGk^>G~#6(RV%uXmT$RWA$*kEY_G7R8-}Jp51} z9tnr|!Srjf0MFz!=~#(i1GSS@0UzDx40#XyCI`-Isu^q@Q9NIk=*OQySGsNPml>Mc zt-JkiE=XaOf1)e-1hWg2><5rcKX1Z3tCn~{b6bWdcT!n9Pzv;|d7KZ|PE&E#mgclkwR zSY}D@Gyk!w{dARhxK`G(FwzvbZrbFqn11?q(1@- z^r@{d^?`RPXMijTVXJ(TV zCB+Tg+5#6>LPZYpv!SltlqMYme)sMydnM-T03W?1Mg zBT@u-J+$EHB~X-1|Gtro;z1ynhy+k+Ij~{tMc}>(y`Bzl!B=DaIigj>gz^(Ad&gY^ zkwp7NO|vy#qT$+~Pj3i}9l;MyZ9FLEGGmu1Y|oMH?d`l7*&t?yXfznfEGkcmiwJIw z6{%9$yb?t^hsBQoV8R3ld%z6Z?+vc(=W2UZf&#`V!O!(k9L#)cK_&M#nTq!Ibskd=m zAXIej9cE~C^c~oC%i=d1Z%)*xJ8gCRO=87E*Zk=h@^W~1sB6=~D2>iX%w0Kr;R^=A zY|snoZWKoxs+!s~sx*|yb%E?WCm^^hQ#jk`XMmgG^YM(!Wrun!Fj|YbG_=0HK2{`` zzR8){mLL~0AsT}0lgf-%A6_;TiMHp=cD3aLFmyf{-d)axRGRDgH`0u36t2PDEtl5* zG+Yf9@Ol}=pwbNogIN6zHC$_z%#%nlLy0n0J3ejDrzdf$nx&$()C1^~c%A>-sio7C zBoG#irVbY&TsF&?A&9`~YCWDEV`y@&nS`2-n7v?llv?LQkcpAg{tdQWJ63i4eiN^b zbAP$Pi)`HLNZiL{|DIs-+^Si3gs8CK%%REwLX1~O6?!oynoqY0LQjKyD+}V`)#FlnT$9OxMAGVyAOR0oP+gNAjNgaVrsg#I{?mv1=%Lj&8pI z*{e;jEQQ1cE1E$8&5tuUf6|{aU@6zU{@rT{>4)1p9d9?ZV``P|M()zmC91Rae`Y1h zYQ6s7so-MLaLtGbx5cx1jO2eq1v}8n)Uww#cifPPW2h>LrT;4yw7R(cY3$q{3(jka zXFp?HM(Uw(n}*Bh8tO7Ix`6QVNMaX+1Uc5b7spGd_w`z2ompI5yiUb{eJ!r%Hd~8H z7&VZjaYIe{7cvil5ln}wrnh&`^#CJd=2n%SpnEKxGn^I6jl^*~6j7++l2DiT`@sNX z7muJ|m%b|jv#TrL@6m!Xb3{ntr=6;7??zFzI-;7E=H{bvSB|1il#qkeY4Oq9TZG`Q zTE`WPf`WoPh;z@;`!O~*QJlAiQS~*_!0J;o%Z<X8jv87XM9vDg!`Leb0voli zW?)){++{dD9H*O(QxnK+JcuL1NwbsMNqDIV^#a{}D1s~x=XH`>VjdEiN@Qu#*dWgJ zFO2HwQ9AHjdMHuA6rm?cACo`(mk0)L2UFSY9;LRkkNv{*A{0E9`5Q5@@P%*EQvMW5 zxo!-IL_Fgja|*Vpo6cr6nyR7l`|7NS@6cJmTm-PEQpNoqjtGO6ksWI}93$r&vM%;%KPk1}#g-QA@YQ?Yz#l6t{qNd@@J! zLDt9AVZnbkKFDO9xC4@pL9$I%=l$Xuj7kV*VLXa->=1RmK-WbhFEk1s&)qLtS9D0Q z%#J9uC?rrrvvKNIr4S+QxgXpuEeRGg3I&E{FIljXC=%!UZI`*4^eW{^@ztw_bz(Iu z&QX`G9;3$f3s#U@aINcEY*s&kuSUt?f+h27&#?XNZ2+~7CbtLE7OsjD4$%RoXb*r~m45^qigzCs8 zqT2_4tKbHoFs)Di)%0-Vd0hMt5X^O1O)CDI5c)7Di9P)#k*#*aH+z%Ng~3D5(!FV5 zlE7h?B8&jEEu)vW(xehK*6a)t5I$n%ZX{^{B}^0)bPR6U^?g1RY>tYSyQgW_OG)|> z-)aEeNP?X;wiXsu&RAFU)lMCj-G$Ht+8HjSQ9QTlL5$e9e1d+?dOYbPVM2{C)oWBb zl2l{k>KUHR!@*93!1lwFLp=mU@w74ZICbd^|3vE!)TeU$SqnvY8r9Q`$!@nEmU-JzYzKyuM|6D7J zZZT3D!$-eo@N6{lcjXR+Bmb>MqMEvOn=|_(m$RAYw2EXdlMM!dEQU0C>dwJ33Fppw)!{sx4baeE8CxVU_E3&=<&gayd zKA-Oz!cfu7_lk0_*cWp}SFV~5)yOFQ_^6uSv&C0!lT1+7iWIi~ox~8(0O)1=60jc+ zO^^RaBFO6udi7gD;zIkA`h!8JswOPLN>P%i6t45m=Fa5>EP!Jn-Tfwza!YF-CKRDBabB6eAEy@wu&k zu%wIrdm3nlb&vKHFMc1a@Aq=G0r`i+o9p0>fgwH&+nD`2w<8ZLQ7mT~=@>DJaSRMJ zSl-O}_X1=>F7x_6vqoR+@nk5rgl%36c9}y&@HP^}F@wF}D6TB%Wj1HZ!g8d$|8TlG zI!l~Jd3G|;b|45vU>$K0T=T~NNGwofr@5CgwH}m1u_LdZ2%ZAXx8gE;dy52-tBA`- zC6d(6v7FA~70UwZi*D>eyYc+qkl+}NT;dJq>+ZL&aq>UZ4aSnX0!+B2Y7sSWME+0& z_8Nc$4EbxB{|5KPt18Pk1ofeT>V(Eaf~v=xFwuofq&MZ1mhS1S<5G5BCI`_Y0H7o} zM;@!n($e0=E?X#E?0C99@*|-?6k@7G!XUNVUE(+op-XT&caCttIC}92fiawyqm0f$ z5ss|%6!j|{F*i&+9Ry+oz4k{m#)9g9;e6au3ky^=Ua!$yu~5?BU=ZR;wUu$=O<*AD zFaKc5nEB|5w{Qw#H+rHJFBnW*NvK=M&bQKbCxYs1+N`Q+|9Gi z7Jxelz(;*u6RM+I3t2R8a=zJ@e!I;kY4az9mqbOR`5ze14WkJ*U`~Ia&w)^(4zHPx36@uIrFEcKPMGVOA8bSbWaYr66TJ* ztgK|O!TE9x1O}D7*yqRl&nZdfRum*h+q8#Pf`re13Le|}!i~191hUX{L;golp~_bG z3SV-JrtVMRe129fY5zZ{P606wHt7IeH^cz<+8;Ixr~9|Hg{=rIrnnykJgRFhf1S&D z_d&8wxNrb8B}8iz5*v{_Z&XQX>EHtq?@wVM6pY!Y0W*KrR~QYs!rbnznmST!_6puzwVB-CDRS^=;QWA=Gu; zxS_MTm$A$dw6jKEmAz{G<1m(6tvy6y$!DnjqkB0J`+Sew(xoXzwu>$Bzr>-U54`%5 za`~BJFs~j+*1VFB=}N^@S$qWNj@I#vU?W13g@aQlIYN1iZ8hzzmbrlzjrl>}dVc$z zTs-atPV~8~!%P>1?v&PBaem*7 z&|P(9(z7TbQs4VC&XpDfTHIV=N@zcHM3cm^r%HB_aRGvUXLTsu(Azq^q`ns< z0yJ2fyT><<=|EHuhbDi2k@2Sih~bfuhQ41};CR3vMOd;SZ#$hCM;!%cwB2csg0c&^ zpgzU%p>6Z(3Ro5@PMjEit;4&He75P2Mn?n8pr9bv?T>HQt`4hyR>wS;;wKFM;cKS# zRZ3>;;!3ONrj*NkjNN+^J>z&NWQ?3tm4OZ7h6u;*FW43~52BdjZ&tGtHF0V9gntyd z7{Jd*3rkDufWHn9>Zi-*mM+VfVPd&~y?4HlSx5F;^SnLwbf*MqyZ;rhSy_QIBd*)O zDs-op2_iY%T~r=|XEk8`Z0k7s5@#;+Si@snmv+P@+w$rR$_UBUM2KS$ur*jCHb2dI z35E_7HCXpvQ|PXt!~7a(&bDeT6e419#89qQp^0$b*!>0b#wA&2#+(kNw}$Sr<%|O| z0BnA7u}4~sGv@-lEVwVBxT;E$x_J9x%|`4m0f-VVs&!34nfDEKO zMYGHB=vULb;=PDPvYhg!6|~kcE_r;G2gQl??~vd_J1=LIe$?Ofc~kN%ZESibb@UvU zIivR!IraqD*w}J%YnW}aroY!IpI6oUfru`a8|5@K**2jN2I>!0)qHh}Z-s(f4Wb~X z^>lTW9Rl|L3i8dxuk61%P=bY35?*zDcAxB9eIax_Gn3G;f#_^5U9S%)oYtU!DV|5x z7jyZPCFeeHJ^wHko*a*kq?Z&O2t)J)9uU~r=J)PS@b?c6S|7UPK18rMrm?WFLI$Hq zY)SSJ#mez^=hz$cH7LI=*IW@4-!6#GIr92++h@FU${b*ocWv-Ac|0=k^w}hqseRj4 zr4{V(Seh(NxBU=I?#B|oAHfIVc2MflnR{E8lTJwGnYoPxGv~(drXlc_ni{l)g`#mN zu3tZq2g3CJ!|-GnJ17Q&OH{5ba&-7M;$ZVwt=QR}U?IU%KDOtZ&6JK2K#Ct*>Ywj( zY;u}iAN*Q8<@E6<$rol7AUX2HDge8Wv~n!WB33&s-Tr3(+bWbCH9=tP%m3(5)GqJr zMVH4*+H5)FjP;l08LBd-I>?-$CE@H_#s5muPN1ZMk#%fQ>Y-}4w)_){o*ej4o z+#k03*(zr{a!XGy8zCaOayGnoR(VKzcTkDboMRxYz(qNQY7sZ1)zrLCaAEV2eJg&G zJOt6~btNbX^iA(Yu!D@Q8N(MUl!H|yztHR*LiwcvnzB%WFrPeb_^6&!|9O5yjR53n zqD%E$)hBMvR;z~-B-4o*jqGcA{30OeD!>cooG=!` zvjI=11l`Ptg@SAinGo4FYmfJv{L#YGrK=^px@zq59*XNtS7-byeuM;1u*`}oD#_8w zn2*iDVFev>UhCA@|2H!Gq2(n?E+#Cr(uZRFrV(6dQ6ZB=SJ<#f!)$oMs#7f?u1$mm zbdN>otrl2lNu=^+?J*twV_`y!SY5rt91crH?~CteUgdd^8i*rO+fO_>2YoV&@!P>+ zrb^EgA%y0C!)3JAm1c7FwY9q>sXslseLp~QYH`_^?BTcZyKr(zbclDUm2r0v?_x$w zNF-UGo(>cut^2-Y`~Ght$`O3Za{z0?{+pT+5e)FO*V;h9+Ttt|LE_|euL;Rl!v{+9 zZyOyYu5^J~rHRfdJuRH{*5z4HQ&)d|&i;I(;yJfr2aC+}Vkc>Bv>N8a2CgT0ZPh`J z;{73a2U38FOIzWhb!aj_QtWSx@3XIw8lngm=bU;gcH5nwf8peu+{~-l>jT}vPYzC& ztjv)Kkf4X#WAUh7`pZ$>h2ZFR!RvWe2EigGH)!_AImqqgB5UlNvCt-{kQk=##gOd_vV+L6dkM&Mj*ZWL=wy+!ug z*@Csk(naow10B-Wet&qUDU%gfX9Z+ffuBt_^zX1gSicg$A;`62`Xi=oK>_X0hXj(e zv@`W{8r+^Jfa(4ji^}HgD3$WgAXA>RP?Z+>n9p z1ci^&D9{^Wp1(HtlA1AF`^?lfZ$A(ux^JB#k7%?x-y^^vpW7BdcbooI;$WBVxi3!b zv+&xBT3~bx2@Dj;<&4YuMU_5$t-~wmm5hph{=LunYO~>Gp+KgyFlEK}iDs-MsotUX z|2rc){?cusdhhs8=s2$f@U=jBdt+p0XXkC3Uejo^*&y%}>(@`f^FEy)`Kn{^gLK;c zEv^=ik>_WN>8NGsmx)$C%w?rfON&CC&f3&2S7uam{!J_|9;eg!cw-JK8PWuhHBc!;n|-|Xz)tDhi={3`~d;CaX4sj)yx$txw%Gx=lv>Vs=CyR z;p4@{MRlGr(yp$9>poWEw0F=Hq{ke-H!o|n3Rz9X)U^AP*Z5@&`xf6DSZ;Gs7`r=} zGktxh58;jDt8x}YZp_!Vzb8?%;y~QfXdL{Zu5O*pb5J=1l2y&!aOD8c6L&ldsn9uu zf2m9TxuP)ISDj~*Lm=?mXtu`K#}r-hv*s-z`ux)TG7Q9s81do1A=EWj{IOp9=(M|; zveDbWUC^vmJOck+q^j+#Ch6>}10(eKe46JX-|932TD!1K>tx9=m9a0^9-ZpRON>;Q zG`5;|-q{0VPZ8s3*UTnpUY{MN1gs|{X#n~3rrLy&OfBow(&%$z=MIYiaA1ng^)w%E zu1JpGt(M2y8AGI$v)so=j;67QCH=ee`7$=hpi>1#{aO4T*S8*5x{msvo!B(xmFzG@ z3($4yj~X-X&^Y$OKZ-Sx|#-=BL5T;cRuYR z5c0YDdY8=@D<|}|9pCJpBUfA4{vD|=nc;B;#raR?byLa*V;l?qGWM~)PKZd%M{&Z9C9Zk> zZ|GAIJ!m~uDr6!&kv5rej*Wijt!?V4Z?nVWq$!OMO|QrmJM%nF1I-wN-owesX$1Od z6^qupi!RgqZ{6+ymz};|eM!wf? z&y~*)RU|D^pGFUy-koaA)S-Zk48q}Bn5{pQW=v8N0Hg`GX`3qEH$r5irAYOUy@%(!VUfvtvs> z9JVf~gue67b@!zg0UVi#Cls^^oA>-oRZubU_2kGhgDI;o(I+`BLo!;Dh*mP`$y%-_^&*R#Hs<#Kl zLO4ba0_<`S@2YLAJY*5x7EGdmi>DSwg}mmoy@)dKOc!>32s7cn=0g!iB@L@FjPvjI z`3a(FD`^X~G<7Y!cp|We6Y0re_KQi#<4`z1`}G_yoVxTiZIFFE2fZ`6*At=0c;7Sr fe@0}VKETOv--O3oO(p0PK|oquUaV3?-~aytPPgts literal 0 HcmV?d00001 diff --git a/vendor/assets/javascripts/anythingslider/images/arrows-minimalist.png b/vendor/assets/javascripts/anythingslider/images/arrows-minimalist.png new file mode 100644 index 0000000000000000000000000000000000000000..64b64ad1824ba185fa2a24d050233bc34c280290 GIT binary patch literal 5667 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

C$zx8MkH* z2T*me<{-csGm+BiZG)%h1YCap?`Uw`uo+7)TnRhe+(Ym2Q}7-?Wq7<=ltHSB>MqMc zfF-49uA9=@(TzQweQX{E52#gvopO2GueS{h!`FA(RBonnNvDF;NJ}r2GLJyz(q5~@ zq||eA-r2(X%IraHojO1{0O$9b0>hTlVtHo^ik$nDh*lc`{-(T>K`FZd_t6(ENj)d$ zLvAf~M=i>untrYaR$vb2!`9B1;J2vRsa!%~{d-_o(Vnx>rtI#_r=EXYuqq4*)Rk^0t5M>pP9s&K}FP za)p)-5Rqu8#iN7v^}lLbh*U<+?R(!~_wkSCu=n1Qo&p~}clwNJRaL3(^c1ER

ci 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 L73n%j(~$oGGx=K> literal 0 HcmV?d00001 diff --git a/vendor/assets/javascripts/anythingslider/jquery.anythingslider.fx.min.js b/vendor/assets/javascripts/anythingslider/jquery.anythingslider.fx.min.js new file mode 100644 index 0000000..e8af997 --- /dev/null +++ b/vendor/assets/javascripts/anythingslider/jquery.anythingslider.fx.min.js @@ -0,0 +1,6 @@ +/* + * AnythingSlider Slide FX 1.6 minified for AnythingSlider v1.7.11+ + * By Rob Garrison (aka Mottie & Fudgey) + * Dual licensed under the MIT and GPL licenses. + */ +(function(h){h.fn.anythingSliderFx=function(q,r){var n=h(this).closest(".anythingSlider"),i=n.width(),o=n.height(),p=function(a){var b=a,l;a&&"string"===typeof a&&0

');a.$el.data("AnythingSlider",a);a.init=function(){a.options=b=d.extend({},d.anythingSlider.defaults,k);a.initialized=!1;d.isFunction(b.onBeforeInitialize)&&a.$el.bind("before_initialize",b.onBeforeInitialize);a.$el.trigger("before_initialize",a);d('<\!--[if lte IE 8]>