├── .gitignore ├── img ├── arrow.png ├── bird.png ├── cake.png ├── clouds.png ├── fall.png ├── flash.png ├── ground.png ├── hearts.png ├── house.png ├── leaves.png ├── party.png ├── ribbon.png ├── arrow@2x.png ├── balloon.png ├── bird@2x.png ├── cake@2x.png ├── fall@2x.png ├── flash@2x.png ├── house@2x.png ├── meeting.png ├── party@2x.png ├── proposal.png ├── slowpoke.png ├── balloon@2x.png ├── clouds@2x.png ├── dark_cloud1.png ├── dark_cloud2.png ├── dark_cloud3.png ├── ground@2x.png ├── hearts@2x.png ├── leaves@2x.png ├── meeting@2x.png ├── proposal@2x.png ├── ribbon@2x.png ├── slowpoke@2x.png ├── dark_cloud1@2x.png ├── dark_cloud2@2x.png └── dark_cloud3@2x.png ├── webfonts ├── 266176_0_0.eot ├── 266176_0_0.ttf └── 266176_0_0.woff ├── apple-touch-icon-precomposed.png ├── apple-touch-icon-57x57-precomposed.png ├── apple-touch-icon-72x72-precomposed.png ├── apple-touch-icon-114x114-precomposed.png ├── apple-touch-icon-144x144-precomposed.png ├── js ├── plugins.js ├── main.js └── vendor │ └── modernizr-2.6.2.min.js ├── css ├── MyFontsWebfontsOrderM4551871.css ├── normalize.css └── main.css └── index.html /.gitignore: -------------------------------------------------------------------------------- 1 | /nbproject/private/ -------------------------------------------------------------------------------- /img/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/arrow.png -------------------------------------------------------------------------------- /img/bird.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/bird.png -------------------------------------------------------------------------------- /img/cake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/cake.png -------------------------------------------------------------------------------- /img/clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/clouds.png -------------------------------------------------------------------------------- /img/fall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/fall.png -------------------------------------------------------------------------------- /img/flash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/flash.png -------------------------------------------------------------------------------- /img/ground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/ground.png -------------------------------------------------------------------------------- /img/hearts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/hearts.png -------------------------------------------------------------------------------- /img/house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/house.png -------------------------------------------------------------------------------- /img/leaves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/leaves.png -------------------------------------------------------------------------------- /img/party.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/party.png -------------------------------------------------------------------------------- /img/ribbon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/ribbon.png -------------------------------------------------------------------------------- /img/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/arrow@2x.png -------------------------------------------------------------------------------- /img/balloon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/balloon.png -------------------------------------------------------------------------------- /img/bird@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/bird@2x.png -------------------------------------------------------------------------------- /img/cake@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/cake@2x.png -------------------------------------------------------------------------------- /img/fall@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/fall@2x.png -------------------------------------------------------------------------------- /img/flash@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/flash@2x.png -------------------------------------------------------------------------------- /img/house@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/house@2x.png -------------------------------------------------------------------------------- /img/meeting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/meeting.png -------------------------------------------------------------------------------- /img/party@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/party@2x.png -------------------------------------------------------------------------------- /img/proposal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/proposal.png -------------------------------------------------------------------------------- /img/slowpoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/slowpoke.png -------------------------------------------------------------------------------- /img/balloon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/balloon@2x.png -------------------------------------------------------------------------------- /img/clouds@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/clouds@2x.png -------------------------------------------------------------------------------- /img/dark_cloud1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/dark_cloud1.png -------------------------------------------------------------------------------- /img/dark_cloud2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/dark_cloud2.png -------------------------------------------------------------------------------- /img/dark_cloud3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/dark_cloud3.png -------------------------------------------------------------------------------- /img/ground@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/ground@2x.png -------------------------------------------------------------------------------- /img/hearts@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/hearts@2x.png -------------------------------------------------------------------------------- /img/leaves@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/leaves@2x.png -------------------------------------------------------------------------------- /img/meeting@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/meeting@2x.png -------------------------------------------------------------------------------- /img/proposal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/proposal@2x.png -------------------------------------------------------------------------------- /img/ribbon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/ribbon@2x.png -------------------------------------------------------------------------------- /img/slowpoke@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/slowpoke@2x.png -------------------------------------------------------------------------------- /img/dark_cloud1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/dark_cloud1@2x.png -------------------------------------------------------------------------------- /img/dark_cloud2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/dark_cloud2@2x.png -------------------------------------------------------------------------------- /img/dark_cloud3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/img/dark_cloud3@2x.png -------------------------------------------------------------------------------- /webfonts/266176_0_0.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/webfonts/266176_0_0.eot -------------------------------------------------------------------------------- /webfonts/266176_0_0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/webfonts/266176_0_0.ttf -------------------------------------------------------------------------------- /webfonts/266176_0_0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/webfonts/266176_0_0.woff -------------------------------------------------------------------------------- /apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /apple-touch-icon-57x57-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/apple-touch-icon-57x57-precomposed.png -------------------------------------------------------------------------------- /apple-touch-icon-72x72-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/apple-touch-icon-72x72-precomposed.png -------------------------------------------------------------------------------- /apple-touch-icon-114x114-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/apple-touch-icon-114x114-precomposed.png -------------------------------------------------------------------------------- /apple-touch-icon-144x144-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gandhi-wibowo/gandhi-wibowo.github.io/master/apple-touch-icon-144x144-precomposed.png -------------------------------------------------------------------------------- /js/plugins.js: -------------------------------------------------------------------------------- 1 | // Avoid `console` errors in browsers that lack a console. 2 | (function() { 3 | var method; 4 | var noop = function () {}; 5 | var methods = [ 6 | 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 7 | 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 8 | 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 9 | 'timeStamp', 'trace', 'warn' 10 | ]; 11 | var length = methods.length; 12 | var console = (window.console = window.console || {}); 13 | 14 | while (length--) { 15 | method = methods[length]; 16 | 17 | // Only stub undefined methods. 18 | if (!console[method]) { 19 | console[method] = noop; 20 | } 21 | } 22 | }()); -------------------------------------------------------------------------------- /css/MyFontsWebfontsOrderM4551871.css: -------------------------------------------------------------------------------- 1 | /* @license 2 | * MyFonts Webfont Build ID 2515318, 2013-03-27T05:29:10-0400 3 | * 4 | * The fonts listed in this notice are subject to the End User License 5 | * Agreement(s) entered into by the website owner. All other parties are 6 | * explicitly restricted from using the Licensed Webfonts(s). 7 | * 8 | * You may obtain a valid license at the URLs below. 9 | * 10 | * Webfont: Sreda by Glen Jan 11 | * URL: http://www.myfonts.com/fonts/glen-jan/sreda/regular/ 12 | * Copyright: Copyright (c) 2011-2012 by Glenjan. All rights reserved. 13 | * Licensed pageviews: Unlimited 14 | * 15 | * 16 | * License: http://www.myfonts.com/viewlicense?type=web&buildid=2515318 17 | * 18 | * © 2013 MyFonts Inc 19 | */ 20 | 21 | 22 | 23 | 24 | 25 | @font-face {font-family: 'Sreda';src: url('../webfonts/266176_0_0.eot');src: url('../webfonts/266176_0_0.eot?#iefix') format('embedded-opentype'),url('../webfonts/266176_0_0.woff') format('woff'),url('../webfonts/266176_0_0.ttf') format('truetype'),url('../webfonts/266176_0_0.svg#wf') format('svg');} -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Gandhi and Anis are getting married 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
Good day
24 | 25 |
26 |
27 |
9 Aug
28 |
Anis
29 |
Gandhi
30 |
2020
31 |
32 |
33 | 45 |
46 |

Scroll down

47 |

48 | HayKisah yang ditentukan allah untuk kami sangatlah menarik... 49 |

50 |
51 | 52 |
53 |

Dari tidak saling kenalDisuatu workshop kami dipertemukan, Gandhi sebagai pembawa materi, dan Anis salah satu pesertanya .

54 |

Hingga mulai bertemanSemenjak saat itu, kami mulai dekat dan saling berkomunikasi, dari yang awalnya hanya menanyakan perihal pekerjaan, hingga akhirnya saling menceritakan keluh kesah.

55 |
56 |
57 | 58 |
59 |

Lalu rasa yakin datang 60 | Kedekatan itu membuat Gandhi pun memantapkan pandangannya, dan memilih Anis sebagai Wanita pendamping hidupnya. 61 |

62 |
63 |
64 | 65 |
66 |

BismillahHati sudah memantapkan pilihan, Gandhi memperjuangkan kemantapan hatinya dengan menemui orang tua Anis, Dan mengatakan Tujuannya : Yaitu meminta izin untuk Menikahi anak mereka (Anis).

67 |
68 |
69 | 70 |
71 |

Kendala munculPadahal rencana - rencana indah sudah disusun.

72 |

CoronaIya, engkau mengambil peran dalam kisah kami ini.

73 |
74 |
75 |
76 |
77 |
78 |
79 |

AlhamdulillahKeadaan mulai membaik, New Normal diberlakukan, Dan Kami langsung menyusun ulang rencana terbaik untuk hubungan kami.

80 |
81 |
82 |
83 |

Yap, Ini rencana kami ! 84 | Kami akan melakukan pernikahan pada tanggal 9 Agustus 2020.
85 | Mohon doa terbaiknya ya.
86 | Terimakasih

87 |

TAPIIII ! 88 | Karena anjuran PSBB maka kami mohon maaf yang sebesar - besarnya, karena tidak bisa mengundang teman-teman dalam acara kami ini.
89 | Atas perhatiannya, kami ucapkan terimakasih banyak. 90 |

91 |
92 |
93 |
94 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | var animationMethods = { 2 | slideInFromTheSide: function(callback) { 3 | return function() { 4 | if ($(this).hasClass('right')) { 5 | $(this).animate({"margin-right": '0px'}, 500, callback); 6 | } else if ($(this).hasClass('left')) { 7 | $(this).animate({"margin-left": '0px'}, 500, callback); 8 | } 9 | } 10 | }, 11 | slideBackToTheSide: function(callback) { 12 | return function() { 13 | if ($(this).hasClass('right')) { 14 | $(this).animate({"margin-right": '-1800px'}, 500, callback); 15 | } else if ($(this).hasClass('left')) { 16 | $(this).animate({"margin-left": '-1800px'}, 500, callback); 17 | } 18 | } 19 | }, 20 | selectNavItem: function() { 21 | $("nav li").removeClass("selected"); 22 | $("nav a[href=#"+$(this).attr('id')+"]").parent().addClass("selected"); 23 | } 24 | } 25 | 26 | var BeginningZone = function($element) { 27 | this.moveIn = function() { 28 | $element.each(animationMethods.selectNavItem); 29 | } 30 | 31 | this.moveOut = function() {}; 32 | } 33 | 34 | var MeetingZone = function($element) { 35 | var $meeting = $element.find("#the-meeting"); 36 | var $text = $element.find("p"); 37 | var that = this; 38 | 39 | this.moveIn = function() { 40 | $.each($text, animationMethods.slideInFromTheSide()); 41 | $meeting.animate({opacity: 1.0}, 'quick'); 42 | $element.each(animationMethods.selectNavItem); 43 | } 44 | 45 | this.moveOut = function() { 46 | $.each($text, animationMethods.slideBackToTheSide()); 47 | $meeting.animate({opacity: 0.0}, 'quick'); 48 | } 49 | } 50 | 51 | var InLoveZone = function($element) { 52 | var that = this; 53 | var $lovers = $element.find("#lovers"); 54 | var $text = $element.find("p"); 55 | 56 | this.moveIn = function() { 57 | $.each($text, animationMethods.slideInFromTheSide()); 58 | $.each($lovers, animationMethods.slideInFromTheSide()); 59 | $element.each(animationMethods.selectNavItem); 60 | } 61 | 62 | this.moveOut = function() { 63 | $.each($text, animationMethods.slideBackToTheSide()); 64 | $.each($lovers, animationMethods.slideBackToTheSide()); 65 | } 66 | } 67 | 68 | var StormZone = function($element) { 69 | var that = this; 70 | var $dominant_cloud = $element.find(".dark-cloud-2"); 71 | var $left_cloud = $element.find(".dark-cloud-1"); 72 | var $right_cloud = $element.find(".dark-cloud-3"); 73 | var $lightning = $element.find(".lightning"); 74 | var $text = $element.find("p"); 75 | 76 | this.moveIn = function() { 77 | $dominant_cloud.each(animationMethods.slideInFromTheSide(function() { 78 | $lightning.show(); 79 | })); 80 | $([$left_cloud, $right_cloud]).each(animationMethods.slideInFromTheSide()); 81 | $text.each(animationMethods.slideInFromTheSide()); 82 | $element.each(animationMethods.selectNavItem); 83 | } 84 | 85 | this.moveOut = function() { 86 | $lightning.hide(); 87 | $([$dominant_cloud, $left_cloud]).each(animationMethods.slideBackToTheSide()); 88 | $right_cloud.each(animationMethods.slideBackToTheSide()); 89 | $text.each(animationMethods.slideBackToTheSide()); 90 | } 91 | } 92 | 93 | var MoveInZone = function($element) { 94 | var that = this; 95 | var $text = $element.find("p"); 96 | 97 | this.moveIn = function() { 98 | $text.each(animationMethods.slideInFromTheSide()); 99 | $element.each(animationMethods.selectNavItem); 100 | } 101 | 102 | this.moveOut = function() { 103 | $text.each(animationMethods.slideBackToTheSide()); 104 | } 105 | } 106 | 107 | var ProposalZone = function($element) { 108 | var that = this; 109 | var $text = $element.find("p"); 110 | 111 | this.moveIn = function() { 112 | $text.each(animationMethods.slideInFromTheSide()); 113 | $element.each(animationMethods.selectNavItem); 114 | } 115 | 116 | this.moveOut = function() { 117 | $text.each(animationMethods.slideBackToTheSide()); 118 | } 119 | } 120 | 121 | var MarriageZone = function($element) { 122 | var that = this; 123 | var $text = $element.find("p"); 124 | 125 | this.moveIn = function() { 126 | $text.each(animationMethods.slideInFromTheSide()); 127 | $element.each(animationMethods.selectNavItem); 128 | } 129 | 130 | this.moveOut = function() { 131 | $text.each(animationMethods.slideBackToTheSide()); 132 | } 133 | } 134 | 135 | $(document).ready(function() { 136 | var RAISE_THRESHOLD = 950; 137 | var DESCENT_THRESHOLD = 240; 138 | var HIDDEN_HEIGHT_AT_ARRIVAL = 190; 139 | 140 | var atArrival = $(window).scrollTop() < 30; 141 | var atDeparture = $(document).height() - $(window).scrollTop() - $(window).height() < 30; 142 | var lastScrollTop = 0; 143 | var activeZone = null; 144 | var $balloon = $("#balloon"); 145 | 146 | var CLOUDS = [ 147 | {top: "400", offset: "-450px", css_class: "cloud-1", delay: .8}, 148 | {top: "500", offset: "320px", css_class: "cloud-3", delay: 1.2}, 149 | {top: "400", offset: "450px", css_class: "cloud-bird", delay: .3}, 150 | {top: "900", offset: "-320px", css_class: "cloud-2", delay: .2}, 151 | {top: "1500", offset: "280px", css_class: "cloud-2", delay: .8}, 152 | {top: "2250", offset: "-380px", css_class: "cloud-4", delay: 1.2}, 153 | {top: "2950", offset: "-380px", css_class: "cloud-1", delay: .8}, 154 | {top: "3750", offset: "380px", css_class: "cloud-6", delay: .7}, 155 | {top: "4050", offset: "-380px", css_class: "cloud-5", delay: 1.2}, 156 | {top: "4565", offset: "360px", css_class: "cloud-3", delay: .9}, 157 | {top: "4999", offset: "-430px", css_class: "cloud-1", delay: 1.4}, 158 | {top: "5445", offset: "330px", css_class: "cloud-2", delay: .8}, 159 | {top: "5629", offset: "-430px", css_class: "cloud-4", delay: .5}, 160 | {top: "5629", offset: "-430px", css_class: "cloud-2", delay: .1} 161 | ]; 162 | 163 | var zoneControllers = { 164 | "zone-beginning" : new BeginningZone($("#zone-beginning")), 165 | "zone-meeting" : new MeetingZone($("#zone-meeting")), 166 | "zone-in-love" : new InLoveZone($("#zone-in-love")), 167 | "zone-storm" : new StormZone($("#zone-storm")), 168 | "zone-move-in" : new MoveInZone($("#zone-move-in")), 169 | "zone-proposal" : new ProposalZone($("#zone-proposal")), 170 | "zone-marriage" : new MarriageZone($("#zone-marriage")), 171 | "zone-blank" : new MarriageZone($("#zone-blank")) 172 | } 173 | 174 | $.each(zoneControllers, function(index, controller) { 175 | controller.moveOut(); 176 | }); 177 | 178 | var zones = []; 179 | 180 | $(".moment").each(function(index, moment) { 181 | var offset = $(moment).offset(); 182 | zones.push({ 183 | start: offset.top, 184 | end: offset.top + $(moment).height(), 185 | moment: $(moment), 186 | controller: zoneControllers[moment.id], 187 | name: $(moment).find("strong").text() 188 | }); 189 | }); 190 | 191 | function createClouds() { 192 | var cloudIndex = 0; 193 | $moments = $(".moment").not(".bad"); 194 | 195 | $.each(CLOUDS, function(index, cloud) { 196 | var $cloud = $("
").addClass("clouding"). 197 | addClass(cloud.css_class). 198 | addClass("cloud"). 199 | attr('id', 'cloud-' + index). 200 | css("top", cloud.top + 'px'). 201 | css("margin-left", cloud.offset); 202 | $("body").append($cloud); 203 | 204 | $(window).scroll(function() { 205 | $cloud.css({ 206 | top: function(index, value) { 207 | return (cloud.top - $(window).scrollTop() * cloud.delay); 208 | } 209 | }); 210 | }); 211 | }); 212 | } 213 | 214 | var animationHandler = function(e) { 215 | var scrollTop = $(this).scrollTop(); 216 | var isMovingDown = scrollTop > lastScrollTop; 217 | var isMovingUp = !isMovingDown; 218 | var scrollBottom = $(document).height() - scrollTop - $(window).height(); 219 | var maxBalloons = $(window).height() / 940; 220 | var marginTopArrival = -HIDDEN_HEIGHT_AT_ARRIVAL; 221 | var marginTopFlying = maxBalloons < 1 ? -((1 - maxBalloons) * 940) : 0; 222 | var marginTopDeparture = -((1 - maxBalloons) * 940); 223 | 224 | var isReturningToArrivalPoint = scrollTop < 30 && isMovingUp; 225 | var isArriving = scrollTop > 30 && isMovingDown; 226 | var isDeparturing = scrollBottom < 30 && isMovingDown; 227 | var isLeavingDeparturePoint = scrollBottom > 30 && isMovingUp; 228 | 229 | var flagOffset = scrollTop + parseInt($balloon.css('margin-top')); 230 | var basketOffset = flagOffset + 940; 231 | 232 | var edgePoint = isMovingUp ? flagOffset + RAISE_THRESHOLD : basketOffset - DESCENT_THRESHOLD; 233 | 234 | $.each(zones, function(index, zone) { 235 | if ((!activeZone || activeZone != zone) && edgePoint >= zone.start && edgePoint <= zone.end) { 236 | if (activeZone && activeZone.controller) { 237 | activeZone.controller.moveOut(); 238 | } 239 | activeZone = zone; 240 | if (activeZone && activeZone.controller) { 241 | activeZone.controller.moveIn(); 242 | } 243 | return false; 244 | } 245 | }); 246 | 247 | if (atArrival && isArriving) { 248 | atArrival = false; 249 | $balloon.removeClass('soaring').addClass('rocking'); 250 | $balloon.animate({"margin-top": marginTopFlying + 'px'}, 1000); 251 | setTimeout(function() { 252 | $balloon.removeClass('rocking').addClass('soaring'); 253 | }, 2000); 254 | } else if (!atArrival && isReturningToArrivalPoint) { 255 | atArrival = true; 256 | $balloon.animate({"margin-top": marginTopArrival + 'px'}, 1000); 257 | } else if (!atDeparture && isDeparturing) { 258 | atDeparture = true; 259 | $balloon.animate({"margin-top" : marginTopDeparture + 'px'}, 1000); 260 | } else if (atDeparture && isLeavingDeparturePoint) { 261 | atDeparture = false; 262 | $("#balloon").animate({"margin-top": marginTopFlying + 'px'}, 1000); 263 | } 264 | 265 | lastScrollTop = scrollTop; 266 | } 267 | 268 | function setUpAnimations() { 269 | $(window).scroll(animationHandler); 270 | } 271 | 272 | function setUpNavigation() { 273 | $("nav li").click(function(e) { 274 | var $moment = $($(this).find('a').attr('href')); 275 | var balloonMarginTop = parseInt($balloon.css('margin-top')) 276 | var hiddenBalloonHeight = balloonMarginTop < 0 ? -1 * balloonMarginTop : 0; 277 | 278 | $moment.each(animationMethods.selectNavItem); 279 | 280 | $('html, body').animate({ 281 | scrollTop: $moment.offset().top - $moment.height() / 2 + hiddenBalloonHeight - 100 282 | }, 1000); 283 | 284 | e.preventDefault(); 285 | return false; 286 | }) 287 | } 288 | 289 | createClouds(); 290 | setUpAnimations(); 291 | setUpNavigation(); 292 | 293 | setTimeout(function() { 294 | $(window).trigger('scroll') 295 | }, 200); 296 | }); -------------------------------------------------------------------------------- /css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v1.1.1 | MIT License | git.io/normalize */ 2 | 3 | /* ========================================================================== 4 | HTML5 display definitions 5 | ========================================================================== */ 6 | 7 | /** 8 | * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. 9 | */ 10 | 11 | article, 12 | aside, 13 | details, 14 | figcaption, 15 | figure, 16 | footer, 17 | header, 18 | hgroup, 19 | main, 20 | nav, 21 | section, 22 | summary { 23 | display: block; 24 | } 25 | 26 | /** 27 | * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. 28 | */ 29 | 30 | audio, 31 | canvas, 32 | video { 33 | display: inline-block; 34 | *display: inline; 35 | *zoom: 1; 36 | } 37 | 38 | /** 39 | * Prevent modern browsers from displaying `audio` without controls. 40 | * Remove excess height in iOS 5 devices. 41 | */ 42 | 43 | audio:not([controls]) { 44 | display: none; 45 | height: 0; 46 | } 47 | 48 | /** 49 | * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. 50 | * Known issue: no IE 6 support. 51 | */ 52 | 53 | [hidden] { 54 | display: none; 55 | } 56 | 57 | /* ========================================================================== 58 | Base 59 | ========================================================================== */ 60 | 61 | /** 62 | * 1. Prevent system color scheme's background color being used in Firefox, IE, 63 | * and Opera. 64 | * 2. Prevent system color scheme's text color being used in Firefox, IE, and 65 | * Opera. 66 | * 3. Correct text resizing oddly in IE 6/7 when body `font-size` is set using 67 | * `em` units. 68 | * 4. Prevent iOS text size adjust after orientation change, without disabling 69 | * user zoom. 70 | */ 71 | 72 | html { 73 | background: #fff; /* 1 */ 74 | color: #000; /* 2 */ 75 | font-size: 100%; /* 3 */ 76 | -webkit-text-size-adjust: 100%; /* 4 */ 77 | -ms-text-size-adjust: 100%; /* 4 */ 78 | } 79 | 80 | /** 81 | * Address `font-family` inconsistency between `textarea` and other form 82 | * elements. 83 | */ 84 | 85 | html, 86 | button, 87 | input, 88 | select, 89 | textarea { 90 | font-family: sans-serif; 91 | } 92 | 93 | /** 94 | * Address margins handled incorrectly in IE 6/7. 95 | */ 96 | 97 | body { 98 | margin: 0; 99 | } 100 | 101 | /* ========================================================================== 102 | Links 103 | ========================================================================== */ 104 | 105 | /** 106 | * Address `outline` inconsistency between Chrome and other browsers. 107 | */ 108 | 109 | a:focus { 110 | outline: thin dotted; 111 | } 112 | 113 | /** 114 | * Improve readability when focused and also mouse hovered in all browsers. 115 | */ 116 | 117 | a:active, 118 | a:hover { 119 | outline: 0; 120 | } 121 | 122 | /* ========================================================================== 123 | Typography 124 | ========================================================================== */ 125 | 126 | /** 127 | * Address font sizes and margins set differently in IE 6/7. 128 | * Address font sizes within `section` and `article` in Firefox 4+, Safari 5, 129 | * and Chrome. 130 | */ 131 | 132 | h1 { 133 | font-size: 2em; 134 | margin: 0.67em 0; 135 | } 136 | 137 | h2 { 138 | font-size: 1.5em; 139 | margin: 0.83em 0; 140 | } 141 | 142 | h3 { 143 | font-size: 1.17em; 144 | margin: 1em 0; 145 | } 146 | 147 | h4 { 148 | font-size: 1em; 149 | margin: 1.33em 0; 150 | } 151 | 152 | h5 { 153 | font-size: 0.83em; 154 | margin: 1.67em 0; 155 | } 156 | 157 | h6 { 158 | font-size: 0.67em; 159 | margin: 2.33em 0; 160 | } 161 | 162 | /** 163 | * Address styling not present in IE 7/8/9, Safari 5, and Chrome. 164 | */ 165 | 166 | abbr[title] { 167 | border-bottom: 1px dotted; 168 | } 169 | 170 | /** 171 | * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. 172 | */ 173 | 174 | b, 175 | strong { 176 | font-weight: bold; 177 | } 178 | 179 | blockquote { 180 | margin: 1em 40px; 181 | } 182 | 183 | /** 184 | * Address styling not present in Safari 5 and Chrome. 185 | */ 186 | 187 | dfn { 188 | font-style: italic; 189 | } 190 | 191 | /** 192 | * Address differences between Firefox and other browsers. 193 | * Known issue: no IE 6/7 normalization. 194 | */ 195 | 196 | hr { 197 | -moz-box-sizing: content-box; 198 | box-sizing: content-box; 199 | height: 0; 200 | } 201 | 202 | /** 203 | * Address styling not present in IE 6/7/8/9. 204 | */ 205 | 206 | mark { 207 | background: #ff0; 208 | color: #000; 209 | } 210 | 211 | /** 212 | * Address margins set differently in IE 6/7. 213 | */ 214 | 215 | p, 216 | pre { 217 | margin: 1em 0; 218 | } 219 | 220 | /** 221 | * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. 222 | */ 223 | 224 | code, 225 | kbd, 226 | pre, 227 | samp { 228 | font-family: monospace, serif; 229 | _font-family: 'courier new', monospace; 230 | font-size: 1em; 231 | } 232 | 233 | /** 234 | * Improve readability of pre-formatted text in all browsers. 235 | */ 236 | 237 | pre { 238 | white-space: pre; 239 | white-space: pre-wrap; 240 | word-wrap: break-word; 241 | } 242 | 243 | /** 244 | * Address CSS quotes not supported in IE 6/7. 245 | */ 246 | 247 | q { 248 | quotes: none; 249 | } 250 | 251 | /** 252 | * Address `quotes` property not supported in Safari 4. 253 | */ 254 | 255 | q:before, 256 | q:after { 257 | content: ''; 258 | content: none; 259 | } 260 | 261 | /** 262 | * Address inconsistent and variable font size in all browsers. 263 | */ 264 | 265 | small { 266 | font-size: 80%; 267 | } 268 | 269 | /** 270 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 271 | */ 272 | 273 | sub, 274 | sup { 275 | font-size: 75%; 276 | line-height: 0; 277 | position: relative; 278 | vertical-align: baseline; 279 | } 280 | 281 | sup { 282 | top: -0.5em; 283 | } 284 | 285 | sub { 286 | bottom: -0.25em; 287 | } 288 | 289 | /* ========================================================================== 290 | Lists 291 | ========================================================================== */ 292 | 293 | /** 294 | * Address margins set differently in IE 6/7. 295 | */ 296 | 297 | dl, 298 | menu, 299 | ol, 300 | ul { 301 | margin: 1em 0; 302 | } 303 | 304 | dd { 305 | margin: 0 0 0 40px; 306 | } 307 | 308 | /** 309 | * Address paddings set differently in IE 6/7. 310 | */ 311 | 312 | menu, 313 | ol, 314 | ul { 315 | padding: 0 0 0 40px; 316 | } 317 | 318 | /** 319 | * Correct list images handled incorrectly in IE 7. 320 | */ 321 | 322 | nav ul, 323 | nav ol { 324 | list-style: none; 325 | list-style-image: none; 326 | } 327 | 328 | /* ========================================================================== 329 | Embedded content 330 | ========================================================================== */ 331 | 332 | /** 333 | * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. 334 | * 2. Improve image quality when scaled in IE 7. 335 | */ 336 | 337 | img { 338 | border: 0; /* 1 */ 339 | -ms-interpolation-mode: bicubic; /* 2 */ 340 | } 341 | 342 | /** 343 | * Correct overflow displayed oddly in IE 9. 344 | */ 345 | 346 | svg:not(:root) { 347 | overflow: hidden; 348 | } 349 | 350 | /* ========================================================================== 351 | Figures 352 | ========================================================================== */ 353 | 354 | /** 355 | * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. 356 | */ 357 | 358 | figure { 359 | margin: 0; 360 | } 361 | 362 | /* ========================================================================== 363 | Forms 364 | ========================================================================== */ 365 | 366 | /** 367 | * Correct margin displayed oddly in IE 6/7. 368 | */ 369 | 370 | form { 371 | margin: 0; 372 | } 373 | 374 | /** 375 | * Define consistent border, margin, and padding. 376 | */ 377 | 378 | fieldset { 379 | border: 1px solid #c0c0c0; 380 | margin: 0 2px; 381 | padding: 0.35em 0.625em 0.75em; 382 | } 383 | 384 | /** 385 | * 1. Correct color not being inherited in IE 6/7/8/9. 386 | * 2. Correct text not wrapping in Firefox 3. 387 | * 3. Correct alignment displayed oddly in IE 6/7. 388 | */ 389 | 390 | legend { 391 | border: 0; /* 1 */ 392 | padding: 0; 393 | white-space: normal; /* 2 */ 394 | *margin-left: -7px; /* 3 */ 395 | } 396 | 397 | /** 398 | * 1. Correct font size not being inherited in all browsers. 399 | * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, 400 | * and Chrome. 401 | * 3. Improve appearance and consistency in all browsers. 402 | */ 403 | 404 | button, 405 | input, 406 | select, 407 | textarea { 408 | font-size: 100%; /* 1 */ 409 | margin: 0; /* 2 */ 410 | vertical-align: baseline; /* 3 */ 411 | *vertical-align: middle; /* 3 */ 412 | } 413 | 414 | /** 415 | * Address Firefox 3+ setting `line-height` on `input` using `!important` in 416 | * the UA stylesheet. 417 | */ 418 | 419 | button, 420 | input { 421 | line-height: normal; 422 | } 423 | 424 | /** 425 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 426 | * All other form control elements do not inherit `text-transform` values. 427 | * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. 428 | * Correct `select` style inheritance in Firefox 4+ and Opera. 429 | */ 430 | 431 | button, 432 | select { 433 | text-transform: none; 434 | } 435 | 436 | /** 437 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 438 | * and `video` controls. 439 | * 2. Correct inability to style clickable `input` types in iOS. 440 | * 3. Improve usability and consistency of cursor style between image-type 441 | * `input` and others. 442 | * 4. Remove inner spacing in IE 7 without affecting normal text inputs. 443 | * Known issue: inner spacing remains in IE 6. 444 | */ 445 | 446 | button, 447 | html input[type="button"], /* 1 */ 448 | input[type="reset"], 449 | input[type="submit"] { 450 | -webkit-appearance: button; /* 2 */ 451 | cursor: pointer; /* 3 */ 452 | *overflow: visible; /* 4 */ 453 | } 454 | 455 | /** 456 | * Re-set default cursor for disabled elements. 457 | */ 458 | 459 | button[disabled], 460 | html input[disabled] { 461 | cursor: default; 462 | } 463 | 464 | /** 465 | * 1. Address box sizing set to content-box in IE 8/9. 466 | * 2. Remove excess padding in IE 8/9. 467 | * 3. Remove excess padding in IE 7. 468 | * Known issue: excess padding remains in IE 6. 469 | */ 470 | 471 | input[type="checkbox"], 472 | input[type="radio"] { 473 | box-sizing: border-box; /* 1 */ 474 | padding: 0; /* 2 */ 475 | *height: 13px; /* 3 */ 476 | *width: 13px; /* 3 */ 477 | } 478 | 479 | /** 480 | * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 481 | * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome 482 | * (include `-moz` to future-proof). 483 | */ 484 | 485 | input[type="search"] { 486 | -webkit-appearance: textfield; /* 1 */ 487 | -moz-box-sizing: content-box; 488 | -webkit-box-sizing: content-box; /* 2 */ 489 | box-sizing: content-box; 490 | } 491 | 492 | /** 493 | * Remove inner padding and search cancel button in Safari 5 and Chrome 494 | * on OS X. 495 | */ 496 | 497 | input[type="search"]::-webkit-search-cancel-button, 498 | input[type="search"]::-webkit-search-decoration { 499 | -webkit-appearance: none; 500 | } 501 | 502 | /** 503 | * Remove inner padding and border in Firefox 3+. 504 | */ 505 | 506 | button::-moz-focus-inner, 507 | input::-moz-focus-inner { 508 | border: 0; 509 | padding: 0; 510 | } 511 | 512 | /** 513 | * 1. Remove default vertical scrollbar in IE 6/7/8/9. 514 | * 2. Improve readability and alignment in all browsers. 515 | */ 516 | 517 | textarea { 518 | overflow: auto; /* 1 */ 519 | vertical-align: top; /* 2 */ 520 | } 521 | 522 | /* ========================================================================== 523 | Tables 524 | ========================================================================== */ 525 | 526 | /** 527 | * Remove most spacing between table cells. 528 | */ 529 | 530 | table { 531 | border-collapse: collapse; 532 | border-spacing: 0; 533 | } -------------------------------------------------------------------------------- /js/vendor/modernizr-2.6.2.min.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.6.2 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load 3 | */ 4 | ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f