",{"class":"nivo-lightbox-title-wrap"});var u=0;if(u)t.addClass("nivo-lightbox-ie");n.append(r);n.append(o);t.append(n);t.append(i);t.append(s);e("body").append(t);var a=this;t.on("click",function(t){if(t.target===this||e(t.target).hasClass("nivo-lightbox-content")||e(t.target).hasClass("nivo-lightbox-image"))a.destructLightbox()});s.on("click",function(e){e.preventDefault();a.destructLightbox()});return t},destructLightbox:function(){var t=this;this.options.beforeHideLightbox.call(this);e(".nivo-lightbox-overlay").removeClass("nivo-lightbox-open");e(".nivo-lightbox-nav").hide();e("body").removeClass("nivo-lightbox-body-effect-"+t.options.effect);var n=0;if(n){e(".nivo-lightbox-overlay iframe").attr("src"," ");e(".nivo-lightbox-overlay iframe").remove()}e(".nivo-lightbox-prev").off("click");e(".nivo-lightbox-next").off("click");this.options.afterHideLightbox.call(this)},isHidpi:function(){var e="(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)";if(t.devicePixelRatio>1)return true;if(t.matchMedia&&t.matchMedia(e).matches)return true;return false}};e.fn[i]=function(t){return this.each(function(){if(!e.data(this,i)){e.data(this,i,new o(this,t))}})}})(jQuery,window,document)
--------------------------------------------------------------------------------
/css/pnotify.custom.min.css:
--------------------------------------------------------------------------------
1 | .ui-pnotify{top:36px;right:36px;position:absolute;height:auto;z-index:2}body>.ui-pnotify{position:fixed;z-index:100040}.ui-pnotify-modal-overlay{background-color:rgba(0,0,0,.4);top:0;left:0;position:absolute;height:100%;width:100%;z-index:1}body>.ui-pnotify-modal-overlay{position:fixed;z-index:100039}.ui-pnotify.ui-pnotify-in{display:block!important}.ui-pnotify.ui-pnotify-move{transition:left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-slow{transition:opacity .6s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-slow.ui-pnotify.ui-pnotify-move{transition:opacity .6s linear,left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-normal{transition:opacity .4s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-normal.ui-pnotify.ui-pnotify-move{transition:opacity .4s linear,left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-fast{transition:opacity .2s linear;opacity:0}.ui-pnotify.ui-pnotify-fade-fast.ui-pnotify.ui-pnotify-move{transition:opacity .2s linear,left .5s ease,top .5s ease,right .5s ease,bottom .5s ease}.ui-pnotify.ui-pnotify-fade-in{opacity:1}.ui-pnotify .ui-pnotify-shadow{-webkit-box-shadow:0 6px 28px 0 rgba(0,0,0,.1);-moz-box-shadow:0 6px 28px 0 rgba(0,0,0,.1);box-shadow:0 6px 28px 0 rgba(0,0,0,.1)}.ui-pnotify-container{background-position:0 0;padding:.8em;height:100%;margin:0}.ui-pnotify-container:after{content:" ";visibility:hidden;display:block;height:0;clear:both}.ui-pnotify-container.ui-pnotify-sharp{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.ui-pnotify-title{display:block;margin-bottom:.4em;margin-top:0}.ui-pnotify-text{display:block}.ui-pnotify-icon,.ui-pnotify-icon span{display:block;float:left;margin-right:.2em}.ui-pnotify.stack-bottomleft,.ui-pnotify.stack-topleft{left:25px;right:auto}.ui-pnotify.stack-bottomleft,.ui-pnotify.stack-bottomright{bottom:25px;top:auto}.ui-pnotify.stack-modal{left:50%;right:auto;margin-left:-150px}.brighttheme{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.brighttheme.ui-pnotify-container{padding:18px}.brighttheme .ui-pnotify-title{margin-bottom:12px}.brighttheme-notice{background-color:#FFFFA2;border:0 solid #FF0;color:#4F4F00}.brighttheme-info{background-color:#8FCEDD;border:0 solid #0286A5;color:#012831}.brighttheme-success{background-color:#AFF29A;border:0 solid #35DB00;color:#104300}.brighttheme-error{background-color:#FFABA2;background-image:repeating-linear-gradient(135deg,transparent,transparent 35px,rgba(255,255,255,.3) 35px,rgba(255,255,255,.3) 70px);border:0 solid #FF1800;color:#4F0800}.brighttheme-icon-closer,.brighttheme-icon-info,.brighttheme-icon-notice,.brighttheme-icon-sticker,.brighttheme-icon-success{position:relative;width:16px;height:16px;font-size:12px;font-weight:700;line-height:16px;font-family:"Courier New",Courier,monospace;border-radius:50%}.brighttheme-icon-closer:after,.brighttheme-icon-info:after,.brighttheme-icon-notice:after,.brighttheme-icon-sticker:after,.brighttheme-icon-success:after{position:absolute;top:0;left:4px}.brighttheme-icon-notice{background-color:#2E2E00;color:#FFFFA2;margin-top:2px}.brighttheme-icon-notice:after{content:"!"}.brighttheme-icon-info{background-color:#012831;color:#8FCEDD;margin-top:2px}.brighttheme-icon-info:after{content:"i"}.brighttheme-icon-success{background-color:#104300;color:#AFF29A;margin-top:2px}.brighttheme-icon-success:after{content:"\002713"}.brighttheme-icon-error{position:relative;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:16px solid #2E0400;font-size:0;line-height:0;color:#FFABA2;margin-top:1px}.brighttheme-icon-error:after{position:absolute;top:1px;left:-4px;font-size:12px;font-weight:700;line-height:16px;font-family:"Courier New",Courier,monospace;content:"!"}.brighttheme-icon-closer,.brighttheme-icon-sticker{display:inline-block}.brighttheme-icon-closer:after{top:-4px;content:"\002715"}.brighttheme-icon-sticker:after{top:-5px;content:"\01D1BC";-moz-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);-o-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.brighttheme-icon-sticker.brighttheme-icon-stuck:after{-moz-transform:rotate(180deg);-webkit-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.brighttheme .ui-pnotify-action-bar{padding-top:12px}.brighttheme .ui-pnotify-action-bar input,.brighttheme .ui-pnotify-action-bar textarea{display:block;width:100%;margin-bottom:12px!important}.brighttheme .ui-pnotify-action-button{text-transform:uppercase;font-weight:700;padding:4px 8px;border:none;background:0 0}.brighttheme .ui-pnotify-action-button.btn-primary{border:none;border-radius:0}.brighttheme-notice .ui-pnotify-action-button.btn-primary{background-color:#FF0;color:#4F4F00}.brighttheme-info .ui-pnotify-action-button.btn-primary{background-color:#0286A5;color:#012831}.brighttheme-success .ui-pnotify-action-button.btn-primary{background-color:#35DB00;color:#104300}.brighttheme-error .ui-pnotify-action-button.btn-primary{background-color:#FF1800;color:#4F0800}.ui-pnotify-closer,.ui-pnotify-sticker{float:right;margin-left:.2em}.ui-pnotify-history-container{position:absolute;top:0;right:18px;width:70px;border-top:none;padding:0;-webkit-border-top-left-radius:0;-moz-border-top-left-radius:0;border-top-left-radius:0;-webkit-border-top-right-radius:0;-moz-border-top-right-radius:0;border-top-right-radius:0;z-index:10000}.ui-pnotify-history-container.ui-pnotify-history-fixed{position:fixed}.ui-pnotify-history-container .ui-pnotify-history-header{padding:2px;text-align:center}.ui-pnotify-history-container button{cursor:pointer;display:block;width:100%}.ui-pnotify-history-container .ui-pnotify-history-pulldown{display:block;margin:0 auto}.ui-pnotify-container{position:relative;left:0}@media (max-width:480px){.ui-pnotify-mobile-able.ui-pnotify{position:fixed;top:0;right:0;left:0;width:auto!important;font-size:1.2em;-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased;-ms-font-smoothing:antialiased;font-smoothing:antialiased}.ui-pnotify-mobile-able.ui-pnotify .ui-pnotify-shadow{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-bottom-width:5px}.ui-pnotify-mobile-able .ui-pnotify-container{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.ui-pnotify-mobile-able.ui-pnotify.stack-bottomleft,.ui-pnotify-mobile-able.ui-pnotify.stack-topleft{left:0;right:0}.ui-pnotify-mobile-able.ui-pnotify.stack-bottomleft,.ui-pnotify-mobile-able.ui-pnotify.stack-bottomright{left:0;right:0;bottom:0;top:auto}.ui-pnotify-mobile-able.ui-pnotify.stack-bottomleft .ui-pnotify-shadow,.ui-pnotify-mobile-able.ui-pnotify.stack-bottomright .ui-pnotify-shadow{border-top-width:5px;border-bottom-width:1px}}
--------------------------------------------------------------------------------
/test/qunit/qunit-1.18.0.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * QUnit 1.18.0
3 | * http://qunitjs.com/
4 | *
5 | * Copyright jQuery Foundation and other contributors
6 | * Released under the MIT license
7 | * http://jquery.org/license
8 | *
9 | * Date: 2015-04-03T10:23Z
10 | */
11 |
12 | /** Font Family and Sizes */
13 |
14 | #qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
15 | font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
16 | }
17 |
18 | #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
19 | #qunit-tests { font-size: smaller; }
20 |
21 |
22 | /** Resets */
23 |
24 | #qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
25 | margin: 0;
26 | padding: 0;
27 | }
28 |
29 |
30 | /** Header */
31 |
32 | #qunit-header {
33 | padding: 0.5em 0 0.5em 1em;
34 |
35 | color: #8699A4;
36 | background-color: #0D3349;
37 |
38 | font-size: 1.5em;
39 | line-height: 1em;
40 | font-weight: 400;
41 |
42 | border-radius: 5px 5px 0 0;
43 | }
44 |
45 | #qunit-header a {
46 | text-decoration: none;
47 | color: #C2CCD1;
48 | }
49 |
50 | #qunit-header a:hover,
51 | #qunit-header a:focus {
52 | color: #FFF;
53 | }
54 |
55 | #qunit-testrunner-toolbar label {
56 | display: inline-block;
57 | padding: 0 0.5em 0 0.1em;
58 | }
59 |
60 | #qunit-banner {
61 | height: 5px;
62 | }
63 |
64 | #qunit-testrunner-toolbar {
65 | padding: 0.5em 1em 0.5em 1em;
66 | color: #5E740B;
67 | background-color: #EEE;
68 | overflow: hidden;
69 | }
70 |
71 | #qunit-userAgent {
72 | padding: 0.5em 1em 0.5em 1em;
73 | background-color: #2B81AF;
74 | color: #FFF;
75 | text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
76 | }
77 |
78 | #qunit-modulefilter-container {
79 | float: right;
80 | padding: 0.2em;
81 | }
82 |
83 | .qunit-url-config {
84 | display: inline-block;
85 | padding: 0.1em;
86 | }
87 |
88 | .qunit-filter {
89 | display: block;
90 | float: right;
91 | margin-left: 1em;
92 | }
93 |
94 | /** Tests: Pass/Fail */
95 |
96 | #qunit-tests {
97 | list-style-position: inside;
98 | }
99 |
100 | #qunit-tests li {
101 | padding: 0.4em 1em 0.4em 1em;
102 | border-bottom: 1px solid #FFF;
103 | list-style-position: inside;
104 | }
105 |
106 | #qunit-tests > li {
107 | display: none;
108 | }
109 |
110 | #qunit-tests li.running,
111 | #qunit-tests li.pass,
112 | #qunit-tests li.fail,
113 | #qunit-tests li.skipped {
114 | display: list-item;
115 | }
116 |
117 | #qunit-tests.hidepass li.running,
118 | #qunit-tests.hidepass li.pass {
119 | visibility: hidden;
120 | position: absolute;
121 | width: 0px;
122 | height: 0px;
123 | padding: 0;
124 | border: 0;
125 | margin: 0;
126 | }
127 |
128 | #qunit-tests li strong {
129 | cursor: pointer;
130 | }
131 |
132 | #qunit-tests li.skipped strong {
133 | cursor: default;
134 | }
135 |
136 | #qunit-tests li a {
137 | padding: 0.5em;
138 | color: #C2CCD1;
139 | text-decoration: none;
140 | }
141 |
142 | #qunit-tests li p a {
143 | padding: 0.25em;
144 | color: #6B6464;
145 | }
146 | #qunit-tests li a:hover,
147 | #qunit-tests li a:focus {
148 | color: #000;
149 | }
150 |
151 | #qunit-tests li .runtime {
152 | float: right;
153 | font-size: smaller;
154 | }
155 |
156 | .qunit-assert-list {
157 | margin-top: 0.5em;
158 | padding: 0.5em;
159 |
160 | background-color: #FFF;
161 |
162 | border-radius: 5px;
163 | }
164 |
165 | .qunit-collapsed {
166 | display: none;
167 | }
168 |
169 | #qunit-tests table {
170 | border-collapse: collapse;
171 | margin-top: 0.2em;
172 | }
173 |
174 | #qunit-tests th {
175 | text-align: right;
176 | vertical-align: top;
177 | padding: 0 0.5em 0 0;
178 | }
179 |
180 | #qunit-tests td {
181 | vertical-align: top;
182 | }
183 |
184 | #qunit-tests pre {
185 | margin: 0;
186 | white-space: pre-wrap;
187 | word-wrap: break-word;
188 | }
189 |
190 | #qunit-tests del {
191 | background-color: #E0F2BE;
192 | color: #374E0C;
193 | text-decoration: none;
194 | }
195 |
196 | #qunit-tests ins {
197 | background-color: #FFCACA;
198 | color: #500;
199 | text-decoration: none;
200 | }
201 |
202 | /*** Test Counts */
203 |
204 | #qunit-tests b.counts { color: #000; }
205 | #qunit-tests b.passed { color: #5E740B; }
206 | #qunit-tests b.failed { color: #710909; }
207 |
208 | #qunit-tests li li {
209 | padding: 5px;
210 | background-color: #FFF;
211 | border-bottom: none;
212 | list-style-position: inside;
213 | }
214 |
215 | /*** Passing Styles */
216 |
217 | #qunit-tests li li.pass {
218 | color: #3C510C;
219 | background-color: #FFF;
220 | border-left: 10px solid #C6E746;
221 | }
222 |
223 | #qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
224 | #qunit-tests .pass .test-name { color: #366097; }
225 |
226 | #qunit-tests .pass .test-actual,
227 | #qunit-tests .pass .test-expected { color: #999; }
228 |
229 | #qunit-banner.qunit-pass { background-color: #C6E746; }
230 |
231 | /*** Failing Styles */
232 |
233 | #qunit-tests li li.fail {
234 | color: #710909;
235 | background-color: #FFF;
236 | border-left: 10px solid #EE5757;
237 | white-space: pre;
238 | }
239 |
240 | #qunit-tests > li:last-child {
241 | border-radius: 0 0 5px 5px;
242 | }
243 |
244 | #qunit-tests .fail { color: #000; background-color: #EE5757; }
245 | #qunit-tests .fail .test-name,
246 | #qunit-tests .fail .module-name { color: #000; }
247 |
248 | #qunit-tests .fail .test-actual { color: #EE5757; }
249 | #qunit-tests .fail .test-expected { color: #008000; }
250 |
251 | #qunit-banner.qunit-fail { background-color: #EE5757; }
252 |
253 | /*** Skipped tests */
254 |
255 | #qunit-tests .skipped {
256 | background-color: #EBECE9;
257 | }
258 |
259 | #qunit-tests .qunit-skipped-label {
260 | background-color: #F4FF77;
261 | display: inline-block;
262 | font-style: normal;
263 | color: #366097;
264 | line-height: 1.8em;
265 | padding: 0 0.5em;
266 | margin: -0.4em 0.4em -0.4em 0;
267 | }
268 |
269 | /** Result */
270 |
271 | #qunit-testresult {
272 | padding: 0.5em 1em 0.5em 1em;
273 |
274 | color: #2B81AF;
275 | background-color: #D2E0E6;
276 |
277 | border-bottom: 1px solid #FFF;
278 | }
279 | #qunit-testresult .module-name {
280 | font-weight: 700;
281 | }
282 |
283 | /** Fixture */
284 |
285 | #qunit-fixture {
286 | position: absolute;
287 | top: -10000px;
288 | left: -10000px;
289 | width: 1000px;
290 | height: 1000px;
291 | }
292 |
--------------------------------------------------------------------------------
/course-listings.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
MSCschedulizer
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
--------------------------------------------------------------------------------
/js/datepair.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * datepair.js v0.4.14 - A javascript plugin for intelligently selecting date and time ranges inspired by Google Calendar.
3 | * Copyright (c) 2015 Jon Thornton - http://jonthornton.github.com/Datepair.js
4 | * License: MIT
5 | */
6 |
7 | !function(a,b){"use strict";function c(a,b){var c=b||{};for(var d in a)d in c||(c[d]=a[d]);return c}function d(a,c){if(h)h(a).trigger(c);else{var d=b.createEvent("CustomEvent");d.initCustomEvent(c,!0,!0,{}),a.dispatchEvent(d)}}function e(a,b){return h?h(a).hasClass(b):a.classList.contains(b)}function f(a,b){this.dateDelta=null,this.timeDelta=null,this._defaults={startClass:"start",endClass:"end",timeClass:"time",dateClass:"date",defaultDateDelta:0,defaultTimeDelta:36e5,anchor:"start",parseTime:function(a){return h(a).timepicker("getTime")},updateTime:function(a,b){h(a).timepicker("setTime",b)},setMinTime:function(a,b){h(a).timepicker("option","minTime",b)},parseDate:function(a){return a.value&&h(a).datepicker("getDate")},updateDate:function(a,b){h(a).datepicker("update",b)}},this.container=a,this.settings=c(this._defaults,b),this.startDateInput=this.container.querySelector("."+this.settings.startClass+"."+this.settings.dateClass),this.endDateInput=this.container.querySelector("."+this.settings.endClass+"."+this.settings.dateClass),this.startTimeInput=this.container.querySelector("."+this.settings.startClass+"."+this.settings.timeClass),this.endTimeInput=this.container.querySelector("."+this.settings.endClass+"."+this.settings.timeClass),this.refresh(),this._bindChangeHandler()}var g=864e5,h=a.Zepto||a.jQuery;f.prototype={constructor:f,option:function(a,b){if("object"==typeof a)this.settings=c(this.settings,a);else if("string"==typeof a&&"undefined"!=typeof b)this.settings[a]=b;else if("string"==typeof a)return this.settings[a];this._updateEndMintime()},getTimeDiff:function(){var a=this.dateDelta+this.timeDelta;return!(0>a)||this.startDateInput&&this.endDateInput||(a+=g),a},refresh:function(){if(this.startDateInput&&this.startDateInput.value&&this.endDateInput&&this.endDateInput.value){var a=this.settings.parseDate(this.startDateInput),b=this.settings.parseDate(this.endDateInput);a&&b&&(this.dateDelta=b.getTime()-a.getTime())}if(this.startTimeInput&&this.startTimeInput.value&&this.endTimeInput&&this.endTimeInput.value){var c=this.settings.parseTime(this.startTimeInput),d=this.settings.parseTime(this.endTimeInput);c&&d&&(this.timeDelta=d.getTime()-c.getTime(),this._updateEndMintime())}},remove:function(){this._unbindChangeHandler()},_bindChangeHandler:function(){h?h(this.container).on("change.datepair",h.proxy(this.handleEvent,this)):this.container.addEventListener("change",this,!1)},_unbindChangeHandler:function(){h?h(this.container).off("change.datepair"):this.container.removeEventListener("change",this,!1)},handleEvent:function(a){this._unbindChangeHandler(),e(a.target,this.settings.dateClass)?""!=a.target.value?(this._dateChanged(a.target),this._timeChanged(a.target)):this.dateDelta=null:e(a.target,this.settings.timeClass)&&(""!=a.target.value?this._timeChanged(a.target):this.timeDelta=null),this._validateRanges(),this._updateEndMintime(),this._bindChangeHandler()},_dateChanged:function(a){if(this.startDateInput&&this.endDateInput){var b=this.settings.parseDate(this.startDateInput),c=this.settings.parseDate(this.endDateInput);if(b&&c)if("start"==this.settings.anchor&&e(a,this.settings.startClass)){var d=new Date(b.getTime()+this.dateDelta);this.settings.updateDate(this.endDateInput,d)}else if("end"==this.settings.anchor&&e(a,this.settings.endClass)){var d=new Date(c.getTime()-this.dateDelta);this.settings.updateDate(this.startDateInput,d)}else if(b>c){var f=e(a,this.settings.startClass)?this.endDateInput:this.startDateInput,h=this.settings.parseDate(a);this.dateDelta=0,this.settings.updateDate(f,h)}else this.dateDelta=c.getTime()-b.getTime();else if(null!==this.settings.defaultDateDelta){if(b){var i=new Date(b.getTime()+this.settings.defaultDateDelta*g);this.settings.updateDate(this.endDateInput,i)}else if(c){var j=new Date(c.getTime()-this.settings.defaultDateDelta*g);this.settings.updateDate(this.startDateInput,j)}this.dateDelta=this.settings.defaultDateDelta*g}else this.dateDelta=null}},_timeChanged:function(a){if(this.startTimeInput&&this.endTimeInput){var b=this.settings.parseTime(this.startTimeInput),c=this.settings.parseTime(this.endTimeInput);if(b&&c)if("start"==this.settings.anchor&&e(a,this.settings.startClass)){var d=new Date(b.getTime()+this.timeDelta);this.settings.updateTime(this.endTimeInput,d),c=this.settings.parseTime(this.endTimeInput),this._doMidnightRollover(b,c)}else if("end"==this.settings.anchor&&e(a,this.settings.endClass)){var d=new Date(c.getTime()-this.timeDelta);this.settings.updateTime(this.startTimeInput,d),b=this.settings.parseTime(this.startTimeInput),this._doMidnightRollover(b,c)}else{this._doMidnightRollover(b,c);var f,g;if(this.startDateInput&&this.endDateInput&&(f=this.settings.parseDate(this.startDateInput),g=this.settings.parseDate(this.endDateInput)),+f==+g&&b>c){var h=e(a,this.settings.endClass)?this.endTimeInput:this.startTimeInput,i=e(a,this.settings.startClass)?this.endTimeInput:this.startTimeInput,j=this.settings.parseTime(h);this.timeDelta=0,this.settings.updateTime(i,j)}else this.timeDelta=c.getTime()-b.getTime()}else if(null!==this.settings.defaultTimeDelta){if(b){var k=new Date(b.getTime()+this.settings.defaultTimeDelta);this.settings.updateTime(this.endTimeInput,k)}else if(c){var l=new Date(c.getTime()-this.settings.defaultTimeDelta);this.settings.updateTime(this.startTimeInput,l)}this.timeDelta=this.settings.defaultTimeDelta}else this.timeDelta=null}},_doMidnightRollover:function(a,b){if(this.startDateInput&&this.endDateInput){var c=this.settings.parseDate(this.endDateInput),d=this.settings.parseDate(this.startDateInput),e=b.getTime()-a.getTime(),f=a>b?g:-1*g;null!==this.dateDelta&&this.dateDelta+this.timeDelta<=g&&this.dateDelta+e!=0&&(f>0||0!=this.dateDelta)&&(e>=0&&this.timeDelta<0||0>e&&this.timeDelta>=0)&&("start"==this.settings.anchor?(this.settings.updateDate(this.endDateInput,new Date(c.getTime()+f)),this._dateChanged(this.endDateInput)):"end"==this.settings.anchor&&(this.settings.updateDate(this.startDateInput,new Date(d.getTime()-f)),this._dateChanged(this.startDateInput))),this.timeDelta=e}},_updateEndMintime:function(){if("function"==typeof this.settings.setMinTime){var a=null;"start"==this.settings.anchor&&(!this.dateDelta||this.dateDelta
=0?d(this.container,"rangeSelected"):d(this.container,"rangeError"))}},a.Datepair=f}(window,document);
--------------------------------------------------------------------------------
/js/jquery.migrate.js:
--------------------------------------------------------------------------------
1 | /*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */
2 | jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e(" ",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window);
--------------------------------------------------------------------------------
/js/jquery-migrate-1.2.1.min.js:
--------------------------------------------------------------------------------
1 | /*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */
2 | jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e(" ",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window);
--------------------------------------------------------------------------------
/js/jquery.datepair.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * datepair.js v0.4.14 - A javascript plugin for intelligently selecting date and time ranges inspired by Google Calendar.
3 | * Copyright (c) 2015 Jon Thornton - http://jonthornton.github.com/Datepair.js
4 | * License: MIT
5 | */
6 |
7 | !function(a,b){"use strict";function c(a,b){var c=b||{};for(var d in a)d in c||(c[d]=a[d]);return c}function d(a,c){if(h)h(a).trigger(c);else{var d=b.createEvent("CustomEvent");d.initCustomEvent(c,!0,!0,{}),a.dispatchEvent(d)}}function e(a,b){return h?h(a).hasClass(b):a.classList.contains(b)}function f(a,b){this.dateDelta=null,this.timeDelta=null,this._defaults={startClass:"start",endClass:"end",timeClass:"time",dateClass:"date",defaultDateDelta:0,defaultTimeDelta:36e5,anchor:"start",parseTime:function(a){return h(a).timepicker("getTime")},updateTime:function(a,b){h(a).timepicker("setTime",b)},setMinTime:function(a,b){h(a).timepicker("option","minTime",b)},parseDate:function(a){return a.value&&h(a).datepicker("getDate")},updateDate:function(a,b){h(a).datepicker("update",b)}},this.container=a,this.settings=c(this._defaults,b),this.startDateInput=this.container.querySelector("."+this.settings.startClass+"."+this.settings.dateClass),this.endDateInput=this.container.querySelector("."+this.settings.endClass+"."+this.settings.dateClass),this.startTimeInput=this.container.querySelector("."+this.settings.startClass+"."+this.settings.timeClass),this.endTimeInput=this.container.querySelector("."+this.settings.endClass+"."+this.settings.timeClass),this.refresh(),this._bindChangeHandler()}var g=864e5,h=a.Zepto||a.jQuery;f.prototype={constructor:f,option:function(a,b){if("object"==typeof a)this.settings=c(this.settings,a);else if("string"==typeof a&&"undefined"!=typeof b)this.settings[a]=b;else if("string"==typeof a)return this.settings[a];this._updateEndMintime()},getTimeDiff:function(){var a=this.dateDelta+this.timeDelta;return!(0>a)||this.startDateInput&&this.endDateInput||(a+=g),a},refresh:function(){if(this.startDateInput&&this.startDateInput.value&&this.endDateInput&&this.endDateInput.value){var a=this.settings.parseDate(this.startDateInput),b=this.settings.parseDate(this.endDateInput);a&&b&&(this.dateDelta=b.getTime()-a.getTime())}if(this.startTimeInput&&this.startTimeInput.value&&this.endTimeInput&&this.endTimeInput.value){var c=this.settings.parseTime(this.startTimeInput),d=this.settings.parseTime(this.endTimeInput);c&&d&&(this.timeDelta=d.getTime()-c.getTime(),this._updateEndMintime())}},remove:function(){this._unbindChangeHandler()},_bindChangeHandler:function(){h?h(this.container).on("change.datepair",h.proxy(this.handleEvent,this)):this.container.addEventListener("change",this,!1)},_unbindChangeHandler:function(){h?h(this.container).off("change.datepair"):this.container.removeEventListener("change",this,!1)},handleEvent:function(a){this._unbindChangeHandler(),e(a.target,this.settings.dateClass)?""!=a.target.value?(this._dateChanged(a.target),this._timeChanged(a.target)):this.dateDelta=null:e(a.target,this.settings.timeClass)&&(""!=a.target.value?this._timeChanged(a.target):this.timeDelta=null),this._validateRanges(),this._updateEndMintime(),this._bindChangeHandler()},_dateChanged:function(a){if(this.startDateInput&&this.endDateInput){var b=this.settings.parseDate(this.startDateInput),c=this.settings.parseDate(this.endDateInput);if(b&&c)if("start"==this.settings.anchor&&e(a,this.settings.startClass)){var d=new Date(b.getTime()+this.dateDelta);this.settings.updateDate(this.endDateInput,d)}else if("end"==this.settings.anchor&&e(a,this.settings.endClass)){var d=new Date(c.getTime()-this.dateDelta);this.settings.updateDate(this.startDateInput,d)}else if(b>c){var f=e(a,this.settings.startClass)?this.endDateInput:this.startDateInput,h=this.settings.parseDate(a);this.dateDelta=0,this.settings.updateDate(f,h)}else this.dateDelta=c.getTime()-b.getTime();else if(null!==this.settings.defaultDateDelta){if(b){var i=new Date(b.getTime()+this.settings.defaultDateDelta*g);this.settings.updateDate(this.endDateInput,i)}else if(c){var j=new Date(c.getTime()-this.settings.defaultDateDelta*g);this.settings.updateDate(this.startDateInput,j)}this.dateDelta=this.settings.defaultDateDelta*g}else this.dateDelta=null}},_timeChanged:function(a){if(this.startTimeInput&&this.endTimeInput){var b=this.settings.parseTime(this.startTimeInput),c=this.settings.parseTime(this.endTimeInput);if(b&&c)if("start"==this.settings.anchor&&e(a,this.settings.startClass)){var d=new Date(b.getTime()+this.timeDelta);this.settings.updateTime(this.endTimeInput,d),c=this.settings.parseTime(this.endTimeInput),this._doMidnightRollover(b,c)}else if("end"==this.settings.anchor&&e(a,this.settings.endClass)){var d=new Date(c.getTime()-this.timeDelta);this.settings.updateTime(this.startTimeInput,d),b=this.settings.parseTime(this.startTimeInput),this._doMidnightRollover(b,c)}else{this._doMidnightRollover(b,c);var f,g;if(this.startDateInput&&this.endDateInput&&(f=this.settings.parseDate(this.startDateInput),g=this.settings.parseDate(this.endDateInput)),+f==+g&&b>c){var h=e(a,this.settings.endClass)?this.endTimeInput:this.startTimeInput,i=e(a,this.settings.startClass)?this.endTimeInput:this.startTimeInput,j=this.settings.parseTime(h);this.timeDelta=0,this.settings.updateTime(i,j)}else this.timeDelta=c.getTime()-b.getTime()}else if(null!==this.settings.defaultTimeDelta){if(b){var k=new Date(b.getTime()+this.settings.defaultTimeDelta);this.settings.updateTime(this.endTimeInput,k)}else if(c){var l=new Date(c.getTime()-this.settings.defaultTimeDelta);this.settings.updateTime(this.startTimeInput,l)}this.timeDelta=this.settings.defaultTimeDelta}else this.timeDelta=null}},_doMidnightRollover:function(a,b){if(this.startDateInput&&this.endDateInput){var c=this.settings.parseDate(this.endDateInput),d=this.settings.parseDate(this.startDateInput),e=b.getTime()-a.getTime(),f=a>b?g:-1*g;null!==this.dateDelta&&this.dateDelta+this.timeDelta<=g&&this.dateDelta+e!=0&&(f>0||0!=this.dateDelta)&&(e>=0&&this.timeDelta<0||0>e&&this.timeDelta>=0)&&("start"==this.settings.anchor?(this.settings.updateDate(this.endDateInput,new Date(c.getTime()+f)),this._dateChanged(this.endDateInput)):"end"==this.settings.anchor&&(this.settings.updateDate(this.startDateInput,new Date(d.getTime()-f)),this._dateChanged(this.startDateInput))),this.timeDelta=e}},_updateEndMintime:function(){if("function"==typeof this.settings.setMinTime){var a=null;"start"==this.settings.anchor&&(!this.dateDelta||this.dateDelta=0?d(this.container,"rangeSelected"):d(this.container,"rangeError"))}},a.Datepair=f}(window,document),function(a){a&&(a.fn.datepair=function(b){var c;return this.each(function(){var d=a(this),e=d.data("datepair"),f="object"==typeof b&&b;e||(e=new Datepair(this,f),d.data("datepair",e)),"string"==typeof b&&(c=e[b]())}),c||this},a("[data-datepair]").each(function(){var b=a(this);b.datepair(b.data())}))}(window.Zepto||window.jQuery);
--------------------------------------------------------------------------------
/js/jquery.textillate.js:
--------------------------------------------------------------------------------
1 | /*
2 | * textillate.js
3 | * http://jschr.github.com/textillate
4 | * MIT licensed
5 | *
6 | * Copyright (C) 2012-2013 Jordan Schroter
7 | */
8 |
9 | (function ($) {
10 | "use strict";
11 |
12 | function isInEffect (effect) {
13 | return /In/.test(effect) || $.inArray(effect, $.fn.textillate.defaults.inEffects) >= 0;
14 | };
15 |
16 | function isOutEffect (effect) {
17 | return /Out/.test(effect) || $.inArray(effect, $.fn.textillate.defaults.outEffects) >= 0;
18 | };
19 |
20 | // custom get data api method
21 | function getData (node) {
22 | var attrs = node.attributes || []
23 | , data = {};
24 |
25 | if (!attrs.length) return data;
26 |
27 | $.each(attrs, function (i, attr) {
28 | if (/^data-in-*/.test(attr.nodeName)) {
29 | data.in = data.in || {};
30 | data.in[attr.nodeName.replace(/data-in-/, '')] = attr.nodeValue;
31 | } else if (/^data-out-*/.test(attr.nodeName)) {
32 | data.out = data.out || {};
33 | data.out[attr.nodeName.replace(/data-out-/, '')] = attr.nodeValue;
34 | } else if (/^data-*/.test(attr.nodeName)) {
35 | data[attr.nodeName] = attr.nodeValue;
36 | }
37 | })
38 |
39 | return data;
40 | }
41 |
42 | function shuffle (o) {
43 | for (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
44 | return o;
45 | }
46 |
47 | function animate ($c, effect, cb) {
48 | $c.addClass('animated ' + effect)
49 | .css('visibility', 'visible')
50 | .show();
51 |
52 | $c.one('animationend webkitAnimationEnd oAnimationEnd', function () {
53 | $c.removeClass('animated ' + effect);
54 | cb && cb();
55 | });
56 | }
57 |
58 | function animateChars ($chars, options, cb) {
59 | var that = this
60 | , count = $chars.length;
61 |
62 | if (!count) {
63 | cb && cb();
64 | return;
65 | }
66 |
67 | if (options.shuffle) $chars = shuffle($chars);
68 | if (options.reverse) $chars = $chars.toArray().reverse();
69 |
70 | $.each($chars, function (i, c) {
71 | var $char = $(c);
72 |
73 | function complete () {
74 | if (isInEffect(options.effect)) {
75 | $char.css('visibility', 'visible');
76 | } else if (isOutEffect(options.effect)) {
77 | $char.css('visibility', 'hidden');
78 | }
79 | count -= 1;
80 | if (!count && cb) cb();
81 | }
82 |
83 | var delay = options.sync ? options.delay : options.delay * i * options.delayScale;
84 |
85 | $char.text() ?
86 | setTimeout(function () { animate($char, options.effect, complete) }, delay) :
87 | complete();
88 | });
89 | };
90 |
91 | var Textillate = function (element, options) {
92 | var base = this
93 | , $element = $(element);
94 |
95 | base.init = function () {
96 | base.$texts = $element.find(options.selector);
97 |
98 | if (!base.$texts.length) {
99 | base.$texts = $('');
100 | $element.html(base.$texts);
101 | }
102 |
103 | base.$texts.hide();
104 |
105 | base.$current = $('')
106 | .text(base.$texts.find(':first-child').html())
107 | .prependTo($element);
108 |
109 | if (isInEffect(options.effect)) {
110 | base.$current.css('visibility', 'hidden');
111 | } else if (isOutEffect(options.effect)) {
112 | base.$current.css('visibility', 'visible');
113 | }
114 |
115 | base.setOptions(options);
116 |
117 | setTimeout(function () {
118 | base.options.autoStart && base.start();
119 | }, base.options.initialDelay)
120 | };
121 |
122 | base.setOptions = function (options) {
123 | base.options = options;
124 | };
125 |
126 | base.triggerEvent = function (name) {
127 | var e = $.Event(name + '.tlt');
128 | $element.trigger(e, base);
129 | return e;
130 | };
131 |
132 | base.in = function (index, cb) {
133 | index = index || 0;
134 |
135 | var $elem = base.$texts.find(':nth-child(' + (index + 1) + ')')
136 | , options = $.extend({}, base.options, getData($elem))
137 | , $chars;
138 |
139 | $elem.addClass('current');
140 |
141 | base.triggerEvent('inAnimationBegin');
142 |
143 | base.$current
144 | .text($elem.html())
145 | .lettering('words');
146 |
147 | base.$current.find('[class^="word"]')
148 | .css({
149 | 'display': 'inline-block',
150 | // fix for poor ios performance
151 | '-webkit-transform': 'translate3d(0,0,0)',
152 | '-moz-transform': 'translate3d(0,0,0)',
153 | '-o-transform': 'translate3d(0,0,0)',
154 | 'transform': 'translate3d(0,0,0)'
155 | })
156 | .each(function () { $(this).lettering() });
157 |
158 | $chars = base.$current
159 | .find('[class^="char"]')
160 | .css('display', 'inline-block');
161 |
162 | if (isInEffect(options.in.effect)) {
163 | $chars.css('visibility', 'hidden');
164 | } else if (isOutEffect(options.in.effect)) {
165 | $chars.css('visibility', 'visible');
166 | }
167 |
168 | base.currentIndex = index;
169 |
170 | animateChars($chars, options.in, function () {
171 | base.triggerEvent('inAnimationEnd');
172 | if (options.in.callback) options.in.callback();
173 | if (cb) cb(base);
174 | });
175 | };
176 |
177 | base.out = function (cb) {
178 | var $elem = base.$texts.find(':nth-child(' + (base.currentIndex + 1) + ')')
179 | , $chars = base.$current.find('[class^="char"]')
180 | , options = $.extend({}, base.options, getData($elem));
181 |
182 | base.triggerEvent('outAnimationBegin');
183 |
184 | animateChars($chars, options.out, function () {
185 | $elem.removeClass('current');
186 | base.triggerEvent('outAnimationEnd');
187 | if (options.out.callback) options.out.callback();
188 | if (cb) cb(base);
189 | });
190 | };
191 |
192 | base.start = function (index) {
193 | base.triggerEvent('start');
194 |
195 | (function run (index) {
196 | base.in(index, function () {
197 | var length = base.$texts.children().length;
198 |
199 | index += 1;
200 |
201 | if (!base.options.loop && index >= length) {
202 | if (base.options.callback) base.options.callback();
203 | base.triggerEvent('end');
204 | } else {
205 | index = index % length;
206 |
207 | setTimeout(function () {
208 | base.out(function () {
209 | run(index)
210 | });
211 | }, base.options.minDisplayTime);
212 | }
213 | });
214 | }(index || 0));
215 | };
216 |
217 | base.init();
218 | }
219 |
220 | $.fn.textillate = function (settings, args) {
221 | return this.each(function () {
222 | var $this = $(this)
223 | , data = $this.data('textillate')
224 | , options = $.extend(true, {}, $.fn.textillate.defaults, getData(this), typeof settings == 'object' && settings);
225 |
226 | if (!data) {
227 | $this.data('textillate', (data = new Textillate(this, options)));
228 | } else if (typeof settings == 'string') {
229 | data[settings].apply(data, [].concat(args));
230 | } else {
231 | data.setOptions.call(data, options);
232 | }
233 | })
234 | };
235 |
236 | $.fn.textillate.defaults = {
237 | selector: '.texts',
238 | loop: false,
239 | minDisplayTime: 2000,
240 | initialDelay: 0,
241 | in: {
242 | effect: 'fadeInLeftBig',
243 | delayScale: 1.5,
244 | delay: 50,
245 | sync: false,
246 | reverse: false,
247 | shuffle: false,
248 | callback: function () {}
249 | },
250 | out: {
251 | effect: 'hinge',
252 | delayScale: 1.5,
253 | delay: 50,
254 | sync: false,
255 | reverse: false,
256 | shuffle: false,
257 | callback: function () {}
258 | },
259 | autoStart: true,
260 | inEffects: [],
261 | outEffects: [ 'hinge' ],
262 | callback: function () {}
263 | };
264 |
265 | }(jQuery));
266 |
--------------------------------------------------------------------------------
/css/jade.css:
--------------------------------------------------------------------------------
1 | a {
2 | color: #0bb586;
3 | }
4 |
5 | .accent-color {
6 | color: #0bb586;
7 | }
8 |
9 | .accent-color-bg {
10 | background-color: #0bb586;
11 | }
12 |
13 | .top-bar a:hover {
14 | color: #0bb586;
15 | }
16 |
17 | .section-overlay {
18 | background: rgba(11, 181, 134, 0.4);
19 | }
20 |
21 | .top-bar.color-bar {
22 | background-color: #0bb586;
23 | }
24 |
25 | .service-box .read-more {
26 | color: #0bb586;
27 | }
28 |
29 | a.main-button, input[type="submit"] {
30 | background-color: #0bb586;
31 | }
32 | .slicknav_btn {
33 | border-color: #0bb586;
34 | }
35 | .slicknav_btn:hover {
36 | background: #0bb586;
37 | }
38 | .slicknav_menu .slicknav_icon-bar {
39 | background: #0bb586;
40 | }
41 | .slicknav_nav a:hover,
42 | .slicknav_nav .active {
43 | color: #0bb586;
44 | }
45 | .navbar-default .navbar-nav > li:hover > a,
46 | .navbar-default .navbar-nav > li > a.active {
47 | color: #0bb586;
48 | }
49 |
50 | .dropdown > li:hover > a, .sup-dropdown li:hover > a {
51 | color: #0bb586;
52 | }
53 |
54 | .navbar .search-form form input{
55 | border: 2px solid #0bb586;
56 | }
57 | .navbar-default .navbar-nav > li > a:after {
58 | background-color: #0bb586;
59 | }
60 |
61 | .navbar-default .navbar-nav > li > a.active, .navbar-default .navbar-nav > li:hover > a {
62 | border-color: #0bb586;
63 | }
64 |
65 | .dropdown li a.active, .sup-dropdown li a.active {
66 | color: #0bb586;
67 | }
68 |
69 | ul.breadcrumbs li a:hover {
70 | color: #0bb586;
71 | }
72 |
73 | .full-width-recent-projects .portfolio-item:hover .portfolio-thumb .thumb-overlay {
74 | background-color: #0bb586;
75 | }
76 |
77 | .tp-caption.color-bg {
78 | background-color: #0bb586;
79 | }
80 |
81 | .team-member .member-social a.mail:hover i {
82 | background-color: #0bb586;
83 | }
84 |
85 | .post-share a.mail:hover {
86 | background-color: #0bb586;
87 | }
88 |
89 | .progress .progress-bar.progress-bar-primary {
90 | background-color: #0bb586;
91 | }
92 |
93 | .latest-posts-classic .left-meta-post .post-type i {
94 | background-color: #0bb586;
95 | }
96 |
97 | .latest-posts-classic .post-title a:hover {
98 | color: #0bb586;
99 | }
100 |
101 | .latest-posts-classic .read-more {
102 | color: #0bb586;
103 | }
104 |
105 | .panel-title a {
106 | color: #0bb586;
107 | }
108 |
109 | .panel-title a:hover {
110 | color: #0bb586;
111 | }
112 |
113 | .milestone-block .milestone-icon {
114 | background-color: #0bb586;
115 | }
116 |
117 | .milestone-block .milestone-icon:after {
118 | background-color: #0bb586;
119 | }
120 |
121 | .milestone-block .milestone-number {
122 | color: #0bb586;
123 | }
124 |
125 | .pricing-tables .pricing-table.highlight-plan .plan-name h3 {
126 | //color: #0bb586;
127 | }
128 |
129 | .pricing-tables .pricing-table.highlight-plan .plan-signup {
130 | background-color: #0bb586;
131 | }
132 |
133 | .pricing-tables .pricing-table.highlight-plan .plan-name {
134 | background-color: #0bb586;
135 | }
136 |
137 | .btn-system {
138 | background-color: #0bb586;
139 | }
140 |
141 | .btn-system.border-btn {
142 | border-color: #0bb586;
143 | color: #0bb586;
144 | }
145 |
146 | .btn-system.border-btn:hover {
147 | background-color: #0bb586;
148 | }
149 |
150 | .btn-system.border-btn.btn-wite:hover {
151 | color: #0bb586;
152 | }
153 |
154 | .btn-system.btn-wite{
155 | color: #0bb586;
156 | }
157 |
158 | ul.icons-list li i {
159 | color: #0bb586;
160 | }
161 |
162 | .nav-tabs > li > a:hover, .nav-tabs > li > a:focus {
163 | background-color: #0bb586;
164 | }
165 |
166 | .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover {
167 | color: #0bb586;
168 | }
169 |
170 | .icon-small {
171 | text-shadow: 0 0 0 #0bb586;
172 | }
173 |
174 | .icon-small:hover, .service-box:hover .icon-small {
175 | color: #0bb586;
176 | }
177 | .icon-medium {
178 | text-shadow: 0 0 0 #0bb586;
179 | }
180 |
181 | .icon-medium:hover, .service-box:hover .icon-medium {
182 | color: #0bb586;
183 | }
184 |
185 | .icon-large {
186 | text-shadow: 0 0 0 #0bb586;
187 | }
188 |
189 | .icon-large:hover, .service-box:hover .icon-large {
190 | color: #0bb586;
191 | }
192 |
193 | .icon-effect-1 {
194 | box-shadow: 0 0 0 3px #0bb586;
195 | -o-box-shadow: 0 0 0 3px #0bb586;
196 | -moz-box-shadow: 0 0 0 3px #0bb586;
197 | -webkit-box-shadow: 0 0 0 3px #0bb586;
198 | }
199 |
200 | .icon-effect-1:after {
201 | background-color: #0bb586;
202 | }
203 |
204 | .icon-effect-1:hover, .service-box:hover .icon-effect-1 {
205 | color: #0bb586;
206 | }
207 |
208 | .icon-effect-2 {
209 | color: #0bb586;
210 | box-shadow: 0 0 0 3px #0bb586;
211 | -o-box-shadow: 0 0 0 3px #0bb586;
212 | -moz-box-shadow: 0 0 0 3px #0bb586;
213 | -webkit-box-shadow: 0 0 0 3px #0bb586;
214 | }
215 |
216 | .icon-effect-2:after {
217 | background-color: #0bb586;
218 | }
219 |
220 | .icon-effect-3 {
221 | color: #0bb586;
222 | box-shadow: 0 0 0 3px #0bb586;
223 | -o-box-shadow: 0 0 0 3px #0bb586;
224 | -moz-box-shadow: 0 0 0 3px #0bb586;
225 | -webkit-box-shadow: 0 0 0 3px #0bb586;
226 | }
227 |
228 | .icon-effect-4 {
229 | color: #0bb586;
230 | box-shadow: 0 0 0 3px #0bb586;
231 | -o-box-shadow: 0 0 0 3px #0bb586;
232 | -moz-box-shadow: 0 0 0 3px #0bb586;
233 | -webkit-box-shadow: 0 0 0 3px #0bb586;
234 | }
235 |
236 | .icon-effect-5 {
237 | color: #0bb586;
238 | box-shadow: 0 0 0 3px #0bb586;
239 | -o-box-shadow: 0 0 0 3px #0bb586;
240 | -moz-box-shadow: 0 0 0 3px #0bb586;
241 | -webkit-box-shadow: 0 0 0 3px #0bb586;
242 | }
243 |
244 | .icon-effect-6 {
245 | color: #0bb586;
246 | box-shadow: 0 0 0 3px #0bb586;
247 | -o-box-shadow: 0 0 0 3px #0bb586;
248 | -moz-box-shadow: 0 0 0 3px #0bb586;
249 | -webkit-box-shadow: 0 0 0 3px #0bb586;
250 | }
251 |
252 | .team-member .member-photo .member-name span {
253 | background-color: #0bb586;
254 | }
255 |
256 | .classic-title span {
257 | border-bottom-color: #0bb586;
258 | }
259 |
260 | .portfolio-filter li a:hover {
261 | color: #0bb586;
262 | }
263 |
264 | .portfolio-filter li a.selected {
265 | border-color: #0bb586;
266 | background-color: #0bb586;
267 | }
268 |
269 | .portfolio-item:hover .portfolio-details h4 {
270 | color: #0bb586;
271 | }
272 |
273 | .project-content h4 span {
274 | border-bottom-color: #0bb586;
275 | }
276 |
277 | .recent-projects h4.title span {
278 | border-bottom-color: #0bb586;
279 | }
280 |
281 | ul.post-meta li a:hover {
282 | color: #0bb586;
283 | }
284 |
285 | #pagination span.current {
286 | border-color: #0bb586;
287 | background-color: #0bb586;
288 | }
289 |
290 | #pagination a:hover {
291 | color: #0bb586;
292 | }
293 |
294 | .post-tags-list a:hover {
295 | background-color: #0bb586;
296 | }
297 |
298 | .post-share a.mail {
299 | background-color: #0bb586;
300 | }
301 |
302 | .sidebar a:hover {
303 | color: #0bb586;
304 | }
305 |
306 | .widget-search .search-btn {
307 | background-color: #0bb586;
308 | }
309 |
310 | .sidebar .tagcloud a:hover {
311 | background-color: #0bb586;
312 | }
313 |
314 | .back-to-top:hover i {
315 | background-color: #0bb586;
316 | }
317 |
318 | .touch-slider .owl-controls.clickable .owl-buttons div:hover {
319 | background-color: #0bb586;
320 | }
321 |
322 | .touch-carousel .owl-controls.clickable .owl-buttons div:hover {
323 | background-color: #0bb586;
324 | }
325 |
326 | .testimonials-carousel .owl-controls.clickable .owl-buttons div {
327 | background-color: #0bb586;
328 | }
329 |
330 | .testimonials-carousel .owl-controls.clickable .owl-buttons div:hover i {
331 | color: #0bb586;
332 | }
333 |
334 |
335 | #portfolio-list li .portfolio-item-content {
336 | background: rgba(11, 181, 134, 0.9);
337 | }
338 |
339 | .services-3-icon i {
340 | background-color: #0bb586;
341 | }
342 |
343 | .services-2-icon i {
344 | background-color: #0bb586;
345 | }
346 |
347 | #main-slide .animated2 strong {
348 | color: #0bb586;
349 | }
350 | #main-slide .animated4 strong {
351 | color: #0bb586;
352 | }
353 | #main-slide .animated7 strong {
354 | color: #0bb586;
355 | }
356 |
357 | #main-slide .carousel-control i:hover{
358 | background-color: #0bb586;
359 | }
360 | .slider.btn {
361 | background-color: #0bb586;
362 | }
363 |
364 | #main-slide .carousel-indicators .active {
365 | background-color: #0bb586;
366 | }
367 |
368 |
369 | .counter-item i {
370 | color: #0bb586;
371 | }
372 |
373 | .timer {
374 | color: #0bb586;
375 | }
376 |
377 | .progress-bar {
378 | background-color: #0bb586;
379 | }
380 |
381 | .team-member.modern .member-photo:after {
382 | background-color: #0bb586;
383 | }
384 |
385 |
386 | .twitter-widget a {
387 | color: #0bb586;
388 | }
389 |
390 | .dot1, .dot2 {
391 | background-color: #0bb586;
392 | }
--------------------------------------------------------------------------------
/js/jquery.weekLine.min.js:
--------------------------------------------------------------------------------
1 | (function ($) {
2 |
3 | $.fn.weekLine = function (params) {
4 | if (methods[params]) {
5 | return methods[params].apply(this, Array.prototype.slice.call(arguments, 1));
6 | } else if (typeof params === 'object' || !params) {
7 | return methods.init.apply(this, arguments);
8 | } else {
9 | $.error('Method ' + params + ' does not exist on jQuery.weekLine');
10 | }
11 | };
12 |
13 | $.fn.weekLine.defaultSettings = {
14 | dayLabels: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
15 | mousedownSel: true,
16 | startDate: null,
17 | singleDaySelect: false,
18 | allowDeselect: true,
19 | // dark, white, jquery-ui
20 | theme: "dark",
21 | onChange: null
22 | };
23 |
24 | var methods = {
25 | init: function (options) {
26 | return this.each(function () {
27 | var $week = $(this),
28 | mouseDown = false,
29 | selectedDay = "selectedDay",
30 | weekDaysStyle = "",
31 | weekHTML = "";
32 | $week.settings =
33 | $.extend({}, $.fn.weekLine.defaultSettings, options);
34 | var theme = $week.settings.theme;
35 | for (i in $week.settings.dayLabels) {
36 | weekHTML += "" : "'>") +
38 | $week.settings.dayLabels[i] + " ";
39 | }
40 |
41 | if (theme == "jquery-ui") {
42 | weekDaysStyle = "ui-widget ui-WeekDays";
43 | selectedDay = "ui-state-active";
44 | } else {
45 | weekDaysStyle = "cleanslate weekDays-" + theme;
46 | }
47 |
48 | $week.settings.selectedDay = selectedDay;
49 | $week.data("weekLine", $week.settings);
50 |
51 | $week
52 | .addClass(weekDaysStyle)
53 | .html(weekHTML)
54 | .mouseup(function () {
55 | mouseDown = false;
56 | return false;
57 | });
58 |
59 | $days = $week.children()
60 | .bind("mousedown", function () {
61 | if ($week.settings.mousedownSel) {
62 | mouseDown = true;
63 | }
64 |
65 | //do not select the day if disabled
66 | if(!$(this).attr('disabled')){
67 | selectDay(this)
68 | };
69 | return false;
70 | })
71 | .bind("mouseenter", function () {
72 | if (!mouseDown) {
73 | return false;
74 | }
75 | //do not select the day if disabled
76 | if(!$(this).attr('disabled')){
77 | selectDay(this)
78 | };
79 | return false;
80 | });
81 |
82 | if (theme == "jquery-ui") {
83 | $days.bind("hover", function () {
84 | $(this).toggleClass("ui-state-hover");
85 | });
86 | }
87 |
88 | function selectDay(day) {
89 | if ($week.settings.singleDaySelect) {
90 | $(day).siblings().removeClass(selectedDay);
91 | }
92 |
93 | if ($week.settings.allowDeselect || !$(day).hasClass(selectedDay))
94 | {
95 | $(day).toggleClass(selectedDay);
96 | }
97 |
98 | // Check if set (because its default is null)
99 | if ($.isFunction($week.settings.onChange)) {
100 | $week.settings.onChange.call($week);
101 | }
102 | }
103 | });
104 | },
105 | // Returns selected days in various formats
106 | getSelected: function (format, date) {
107 | var $settings = $(this).data("weekLine"),
108 | $prev = null,
109 | selected = "";
110 |
111 | this.children().each(function () {
112 | $day = $(this);
113 |
114 | if ($day.hasClass($settings.selectedDay)) {
115 | switch (format) {
116 | case "indexes":
117 | selected += $day.data('indexNumber') + ",";
118 | break;
119 | case "dates":
120 | selected +=
121 | addDays(date ? date :
122 | ($settings.startDate ? $settings.startDate : new Date()),
123 | $day.data('indexNumber')) + ",";
124 | break;
125 | case "descriptive":
126 | if ($prev == null) {
127 | selected = $day.html();
128 | }
129 | else {
130 | if ($day.data('indexNumber') - $prev.data('indexNumber') == 1) {
131 | var parts =
132 | selected.split(',')[selected.split(',').length - 1].split('-');
133 |
134 | if (parts.length > 1) {
135 | selected =
136 | selected.replace(parts[parts.length - 1], $day.html());
137 | } else {
138 | selected += "-" + $day.html();
139 | }
140 | } else {
141 | selected += ", " + $day.html();
142 | }
143 | }
144 |
145 | $prev = $day;
146 | break;
147 | case "labels":
148 | default:
149 | selected += $day.html() + ",";
150 | break;
151 | }
152 | }
153 | });
154 |
155 | return selected.replace(/,+$/, '');
156 | },
157 | setSelected: function (selectedDays) {
158 | var $this = $(this),
159 | $settings = $this.data("weekLine"),
160 | $days = $this.children(),
161 | selDays = selectedDays.split(',');
162 |
163 | // Reset selected days
164 | $days.removeClass($settings.selectedDay);
165 |
166 | for (i in selDays) {
167 | $days.filter(isNaN(selDays[i]) ?
168 | "a:contains('" + selDays[i] + "')" :
169 | "a[data-index-number='" + selDays[i] + "']").addClass($settings.selectedDay);
170 | }
171 | },
172 |
173 | setDisabled: function (disabledDays) {
174 | var $this = $(this),
175 | $settings = $this.data("weekLine"),
176 | $days = $this.children(),
177 | selDays = disabledDays.split(',');
178 |
179 | // Reset disabled days
180 | $days.removeAttr( "disabled" );
181 |
182 | for (i in selDays) {
183 | $days.filter(isNaN(selDays[i]) ?
184 | "a:contains('" + selDays[i] + "')" :
185 | "a[data-index-number='" + selDays[i] + "']").attr( "disabled", true );
186 | }
187 | }
188 |
189 | };
190 |
191 | function addDays(strDt, days) {
192 | var dt = new Date(strDt),
193 | dt = new Date(dt.setDate(dt.getDate() + Number(days))),
194 | d = dt.getDate(),
195 | m = dt.getMonth() + 1,
196 | y = dt.getFullYear();
197 |
198 | // Return date in ISO 8601 format
199 | return y + "/" + (m < 10 ? '0' + m : m) + "/" + (d < 10 ? '0' + d : d);
200 | }
201 |
202 | })(jQuery);
203 |
204 | // Helper function for getting the next week day
205 | // Monday (0) to Sunday (6)
206 | function nextDay(dayNum) {
207 | return function(date) {
208 | var dt = new Date(date || new Date());
209 | return new Date(dt.getTime() + ((dayNum - dt.getDay() + 7) % 7 + 1) * 86400000);
210 | };
211 | }
212 |
--------------------------------------------------------------------------------
/css/responsive.css:
--------------------------------------------------------------------------------
1 | @media (max-width: 1200px) {
2 |
3 | .navbar-default .navbar-toggle, .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
4 | background: #fff;
5 | padding: 8px 5px 6px 5px;
6 | }
7 |
8 | .navbar-default .navbar-toggle i {
9 | color: #bbb;
10 | font-size: 2em;
11 | }
12 |
13 | .quote-buttons span {
14 | margin: 0 2px;
15 | }
16 |
17 | .flickr-widget ul li {
18 | margin-left: 0px;
19 | margin-right: 7px;
20 | }
21 |
22 | .subscribe-widget form input[type="text"] {
23 | margin-bottom: 10px;
24 | }
25 |
26 | .history-content p {
27 | max-height: 36px;
28 | line-height: 20px;
29 | overflow: hidden;
30 | }
31 |
32 | .projects-carousel {
33 | width: 950px!important;
34 | }
35 | }
36 |
37 | @media (max-width: 991px) {
38 |
39 | .boxed-page, .boxed-page header {
40 | width: 100%;
41 | }
42 |
43 | .classic-testimonials {
44 | margin-bottom: 25px!important;
45 | }
46 |
47 | .tp-caption a.btn-system {
48 | font-size: 11px;
49 | padding: 4px 8px;
50 | }
51 |
52 | .contact-details {
53 | display: none!important;
54 | }
55 |
56 | .navbar-brand {
57 | padding: 25px 15px;
58 | }
59 |
60 | .navbar-default .navbar-nav {
61 | margin: 0 !important;
62 | top: 0;
63 | }
64 |
65 | ul.social-list {
66 | float: none !important;
67 | text-align: center;
68 | }
69 |
70 | ul.social-list li {
71 | float: none !important;
72 | display: inline-block;
73 | }
74 |
75 | .quote-buttons {
76 | text-align: center;
77 | }
78 |
79 | .copyright-section {
80 | text-align: center;
81 | }
82 |
83 | ul.footer-nav {
84 | display: block;
85 | float: none !important;
86 | text-align: center;
87 | margin-top: 10px;
88 | }
89 |
90 | ul.footer-nav li {
91 | display: inline-block;
92 | float: none;
93 | margin-left: 15px;
94 | }
95 |
96 | .page-banner {
97 | text-align: center;
98 | }
99 |
100 | ul.breadcrumbs {
101 | float: none;
102 | }
103 |
104 | ul.breadcrumbs li {
105 | float: none;
106 | display: inline-block;
107 | float: left\0/;
108 | }
109 |
110 | .portfolio-4 .portfolio-item {
111 | width: 49.99%!important;
112 | padding-left: 15px;
113 | padding-right: 15px;
114 | margin-bottom: 30px;
115 | }
116 |
117 | .projects-carousel {
118 | width: 100% !important;
119 | }
120 |
121 | .pricing-tables .pricing-table {
122 | //width: 50% !important;
123 | margin-bottom: 15px;
124 | }
125 |
126 | .pricing-tables .highlight-plan {
127 | margin: 0;
128 | }
129 |
130 | .pricing-tables .pricing-table.highlight-plan .plan-name {
131 | padding: 15px 0;
132 | }
133 |
134 | .pricing-tables .pricing-table.highlight-plan .plan-signup {
135 | padding:25px 0;
136 | }
137 |
138 | .pricing-tables .pricing-table:hover {
139 | top: 0;
140 | }
141 |
142 | .milestone-block {
143 | margin-bottom: 25px;
144 | margin-right: 40px;
145 | }
146 |
147 | .fittext {
148 | font-size: 30px;
149 | line-height: 38px;
150 | }
151 |
152 | .team-member {
153 | text-align: center;
154 | margin-bottom: 30px;
155 | }
156 |
157 | .member-photo {
158 | display: inline-block;
159 | margin: 0 auto;
160 | }
161 |
162 | .easyPieChart {
163 | margin: 0 40px 20px 0;
164 | }
165 |
166 | .right-sidebar {
167 | /*margin-top: 60px;*/
168 | padding-top: 60px;
169 | border-top: 1px solid #eee;
170 | }
171 |
172 | .sidebar .widget {
173 | margin-bottom: 35px;
174 | }
175 |
176 | }
177 |
178 | @media (max-width: 768px) {
179 |
180 | .tp-leftarrow,
181 | .tp-rightarrow {
182 | display: none!important;
183 | }
184 |
185 | .tp-caption a.btn-system {
186 | display: none;
187 | }
188 |
189 | .history-box img {
190 | float: none;
191 | width: 100%;
192 | }
193 |
194 | .history-content {
195 | float: none;
196 | width: 100% !important;
197 | }
198 |
199 | .history-box span.history-date {
200 | right: inherit;
201 | left: 15px;
202 | }
203 |
204 | .portfolio-filter li {
205 | margin-bottom: 8px;
206 | }
207 |
208 | .portfolio-4 .portfolio-item {
209 | width: 100%!important;
210 | padding-left: 15px;
211 | padding-right: 15px;
212 | margin-bottom: 20px;
213 | }
214 |
215 | .milestone-block {
216 | margin-bottom: 20px;
217 | margin-right: 45px;
218 | }
219 |
220 | }
221 | @media only screen and (max-width: 479px) {
222 |
223 | .top-bar {
224 | text-align: center;
225 | }
226 |
227 | .navbar-default .navbar-nav {
228 | padding: 15px 0;
229 | }
230 |
231 | .show-search, .search-form {
232 | display: none;
233 | }
234 |
235 | ul.social-list li {
236 | margin: 0 3px;
237 | }
238 |
239 | ul.social-list li a i {
240 | font-size: 0.9em;
241 | display: block;
242 | width: auto;
243 | line-height: 30px;
244 | border: none!important;
245 | }
246 |
247 | ul.social-list li a:hover {
248 | background-color: transparent!important;
249 | }
250 |
251 | ul.social-list li a.facebook:hover {
252 | color: #507CBE !important;
253 | }
254 |
255 | ul.social-list li a.twitter:hover {
256 | color: #63CDF1 !important;
257 | }
258 |
259 | ul.social-list li a.google:hover {
260 | color: #F16261 !important;
261 | }
262 |
263 | ul.social-list li a.dribbble:hover {
264 | color: #E46387 !important;
265 | }
266 |
267 | ul.social-list li a.linkedin:hover {
268 | color: #90CADD !important;
269 | }
270 |
271 | ul.social-list li a.tumblr:hover {
272 | color: #4D7EA3 !important;
273 | }
274 |
275 | ul.social-list li a.flickr:hover {
276 | color: #E474AF !important;
277 | }
278 |
279 | ul.social-list li a.instagram:hover {
280 | color: #4D4F54 !important;
281 | }
282 |
283 | ul.social-list li a.github:hover {
284 | color: #4D4F54 !important;
285 | }
286 |
287 | ul.social-list li a.api:hover {
288 | color: #3353a5 !important;
289 | }
290 |
291 | ul.social-list li a.trello:hover {
292 | color: #298FCA !important;
293 | }
294 |
295 | ul.social-list li a.vimeo:hover {
296 | color: #87D3E0 !important;
297 | }
298 |
299 | ul.social-list li a.skype:hover {
300 | color: #36C4F3 !important;
301 | }
302 |
303 | ul.social-list li a.share:hover {
304 | color: #0bb586 !important;
305 | }
306 | ul.social-list li a.android:hover {
307 | color: #A4C639 !important;
308 | }
309 |
310 | .navbar-default .navbar-toggle {
311 | margin-top: 15px;
312 | outline: none;
313 | }
314 |
315 | .navbar-default .navbar-nav > li > a {
316 | border: none;
317 | padding: 5px 10px;
318 | display: block;
319 | border: none !important;
320 | padding-right: 0;
321 | }
322 |
323 | .navbar-default .navbar-nav > li > a:after {
324 | display: none;
325 | }
326 |
327 | .navbar-default .navbar-nav > li > a:hover {
328 | opacity: 0.7;
329 | }
330 |
331 | .navbar-default .navbar-nav > li {
332 | margin-left: 0;
333 | display: block;
334 | margin-bottom: 5px;
335 | width: 100%
336 | }
337 |
338 | .navbar-default .navbar-nav > li.drop > a {
339 | padding-right: 10px;
340 | }
341 |
342 | .navbar-default .navbar-nav > li.drop > a {
343 | border-radius: 2px;
344 | }
345 |
346 | ul.dropdown, ul.sup-dropdown {
347 | opacity: 1!important;
348 | position: relative !important;
349 | visibility: visible !important;
350 | width: 100% !important;
351 | top: inherit !important;
352 | left: 0 !important;
353 | margin-top: 0 !important;
354 | background: #fff !important;
355 | padding-left: 20px !important;
356 | box-shadow: none !important;
357 | }
358 |
359 | ul.dropdown li, ul.sup-dropdown li {
360 | border-top: none;
361 | }
362 |
363 | .milestone-block {
364 | display: block;
365 | clear: left;
366 | margin-right: 0;
367 | }
368 |
369 | .btn-system {
370 | margin-bottom: 10px;
371 | }
372 |
373 | .easyPieChart {
374 | font-size: 24px;
375 | font-weight: 400;
376 | position: relative;
377 | text-align: center;
378 | display: inline-block;
379 | margin: 0 0 20px 0;
380 | overflow: hidden;
381 | }
382 |
383 | }
384 |
385 |
386 |
387 |
388 | @media (min-width : 992px) {
389 |
390 | #main-slide .slider-content h2{
391 | font-size: 68px;
392 | }
393 | }
394 |
395 |
396 | @media (min-width : 768px) and (max-width: 991px) {
397 |
398 | #main-slide .slider-content h2{
399 | font-size: 52px;
400 | }
401 | #main-slide .slider-content h3{
402 | font-size: 24px;
403 | margin-top: 12px;
404 | }
405 |
406 | .slider.btn{
407 | padding: 5px 25px;
408 | margin-top: 5px;
409 | font-size: 16px;
410 | }
411 |
412 | }
413 |
414 |
415 | @media (max-width : 767px) {
416 |
417 | #main-slide .slider-content h2{
418 | font-size: 28px;
419 | line-height: normal;
420 | margin-bottom: 0;
421 | }
422 | #main-slide .slider-content h3{
423 | font-size: 14px;
424 | margin-top: 5px;
425 | }
426 | .slider.btn{
427 | padding: 0 15px;
428 | margin-top: 0;
429 | font-size: 12px;
430 | }
431 | #main-slide .carousel-indicators{
432 | display: none;
433 | }
434 |
435 | }
436 |
437 |
438 | /*@media (max-width : 479px) {
439 |
440 | #main-slide .item .slider-content{
441 | display: none;
442 | }
443 |
444 | }
445 | */
446 | @media screen and (max-width: 767px) {
447 | .navbar-toggle{
448 | display: none;
449 | }
450 | .navbar-header{
451 | position: relative;
452 | }
453 | .margo-logo-wrapper{
454 | position: absolute;
455 | top: 0;
456 | }
457 | .navbar-brand{
458 | position: absolute;
459 | top: 0;
460 | }
461 | /* #menu is the original menu */
462 | .js #wpb-mobile-menu {
463 | display:none;
464 | }
465 |
466 | .js .slicknav_menu {
467 | display:block;
468 | }
469 | }
470 | /* SlickMenu responsive */
471 | @media screen and (min-width: 768px) {
472 | .slicknav_menu{
473 | display: none;
474 | }
475 | }
--------------------------------------------------------------------------------
/js/jquery.easypiechart.js:
--------------------------------------------------------------------------------
1 | /**!
2 | * easyPieChart
3 | * Lightweight plugin to render simple, animated and retina optimized pie charts
4 | *
5 | * @license
6 | * @author Robert Fleischmann (http://robert-fleischmann.de)
7 | * @version 2.1.5
8 | **/
9 |
10 | (function(root, factory) {
11 | if(typeof exports === 'object') {
12 | module.exports = factory();
13 | }
14 | else if(typeof define === 'function' && define.amd) {
15 | define([], factory);
16 | }
17 | else {
18 | root['EasyPieChart'] = factory();
19 | }
20 | }(this, function() {
21 |
22 | /**
23 | * Renderer to render the chart on a canvas object
24 | * @param {DOMElement} el DOM element to host the canvas (root of the plugin)
25 | * @param {object} options options object of the plugin
26 | */
27 | var CanvasRenderer = function(el, options) {
28 | var cachedBackground;
29 | var canvas = document.createElement('canvas');
30 |
31 | el.appendChild(canvas);
32 |
33 | if (typeof(G_vmlCanvasManager) !== 'undefined') {
34 | G_vmlCanvasManager.initElement(canvas);
35 | }
36 |
37 | var ctx = canvas.getContext('2d');
38 |
39 | canvas.width = canvas.height = options.size;
40 |
41 | // canvas on retina devices
42 | var scaleBy = 1;
43 | if (window.devicePixelRatio > 1) {
44 | scaleBy = window.devicePixelRatio;
45 | canvas.style.width = canvas.style.height = [options.size, 'px'].join('');
46 | canvas.width = canvas.height = options.size * scaleBy;
47 | ctx.scale(scaleBy, scaleBy);
48 | }
49 |
50 | // move 0,0 coordinates to the center
51 | ctx.translate(options.size / 2, options.size / 2);
52 |
53 | // rotate canvas -90deg
54 | ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI);
55 |
56 | var radius = (options.size - options.lineWidth) / 2;
57 | if (options.scaleColor && options.scaleLength) {
58 | radius -= options.scaleLength + 2; // 2 is the distance between scale and bar
59 | }
60 |
61 | // IE polyfill for Date
62 | Date.now = Date.now || function() {
63 | return +(new Date());
64 | };
65 |
66 | /**
67 | * Draw a circle around the center of the canvas
68 | * @param {strong} color Valid CSS color string
69 | * @param {number} lineWidth Width of the line in px
70 | * @param {number} percent Percentage to draw (float between -1 and 1)
71 | */
72 | var drawCircle = function(color, lineWidth, percent) {
73 | percent = Math.min(Math.max(-1, percent || 0), 1);
74 | var isNegative = percent <= 0 ? true : false;
75 |
76 | ctx.beginPath();
77 | ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, isNegative);
78 |
79 | ctx.strokeStyle = color;
80 | ctx.lineWidth = lineWidth;
81 |
82 | ctx.stroke();
83 | };
84 |
85 | /**
86 | * Draw the scale of the chart
87 | */
88 | var drawScale = function() {
89 | var offset;
90 | var length;
91 |
92 | ctx.lineWidth = 1;
93 | ctx.fillStyle = options.scaleColor;
94 |
95 | ctx.save();
96 | for (var i = 24; i > 0; --i) {
97 | if (i % 6 === 0) {
98 | length = options.scaleLength;
99 | offset = 0;
100 | } else {
101 | length = options.scaleLength * 0.6;
102 | offset = options.scaleLength - length;
103 | }
104 | ctx.fillRect(-options.size/2 + offset, 0, length, 1);
105 | ctx.rotate(Math.PI / 12);
106 | }
107 | ctx.restore();
108 | };
109 |
110 | /**
111 | * Request animation frame wrapper with polyfill
112 | * @return {function} Request animation frame method or timeout fallback
113 | */
114 | var reqAnimationFrame = (function() {
115 | return window.requestAnimationFrame ||
116 | window.webkitRequestAnimationFrame ||
117 | window.mozRequestAnimationFrame ||
118 | function(callback) {
119 | window.setTimeout(callback, 1000 / 60);
120 | };
121 | }());
122 |
123 | /**
124 | * Draw the background of the plugin including the scale and the track
125 | */
126 | var drawBackground = function() {
127 | if(options.scaleColor) drawScale();
128 | if(options.trackColor) drawCircle(options.trackColor, options.lineWidth, 1);
129 | };
130 |
131 | /**
132 | * Canvas accessor
133 | */
134 | this.getCanvas = function() {
135 | return canvas;
136 | };
137 |
138 | /**
139 | * Canvas 2D context 'ctx' accessor
140 | */
141 | this.getCtx = function() {
142 | return ctx;
143 | };
144 |
145 | /**
146 | * Clear the complete canvas
147 | */
148 | this.clear = function() {
149 | ctx.clearRect(options.size / -2, options.size / -2, options.size, options.size);
150 | };
151 |
152 | /**
153 | * Draw the complete chart
154 | * @param {number} percent Percent shown by the chart between -100 and 100
155 | */
156 | this.draw = function(percent) {
157 | // do we need to render a background
158 | if (!!options.scaleColor || !!options.trackColor) {
159 | // getImageData and putImageData are supported
160 | if (ctx.getImageData && ctx.putImageData) {
161 | if (!cachedBackground) {
162 | drawBackground();
163 | cachedBackground = ctx.getImageData(0, 0, options.size * scaleBy, options.size * scaleBy);
164 | } else {
165 | ctx.putImageData(cachedBackground, 0, 0);
166 | }
167 | } else {
168 | this.clear();
169 | drawBackground();
170 | }
171 | } else {
172 | this.clear();
173 | }
174 |
175 | ctx.lineCap = options.lineCap;
176 |
177 | // if barcolor is a function execute it and pass the percent as a value
178 | var color;
179 | if (typeof(options.barColor) === 'function') {
180 | color = options.barColor(percent);
181 | } else {
182 | color = options.barColor;
183 | }
184 |
185 | // draw bar
186 | drawCircle(color, options.lineWidth, percent / 100);
187 | }.bind(this);
188 |
189 | /**
190 | * Animate from some percent to some other percentage
191 | * @param {number} from Starting percentage
192 | * @param {number} to Final percentage
193 | */
194 | this.animate = function(from, to) {
195 | var startTime = Date.now();
196 | options.onStart(from, to);
197 | var animation = function() {
198 | var process = Math.min(Date.now() - startTime, options.animate.duration);
199 | var currentValue = options.easing(this, process, from, to - from, options.animate.duration);
200 | this.draw(currentValue);
201 | options.onStep(from, to, currentValue);
202 | if (process >= options.animate.duration) {
203 | options.onStop(from, to);
204 | } else {
205 | reqAnimationFrame(animation);
206 | }
207 | }.bind(this);
208 |
209 | reqAnimationFrame(animation);
210 | }.bind(this);
211 | };
212 |
213 | var EasyPieChart = function(el, opts) {
214 | var defaultOptions = {
215 | barColor: '#ef1e25',
216 | trackColor: '#f9f9f9',
217 | scaleColor: '#dfe0e0',
218 | scaleLength: 5,
219 | lineCap: 'round',
220 | lineWidth: 3,
221 | size: 110,
222 | rotate: 0,
223 | animate: {
224 | duration: 1000,
225 | enabled: true
226 | },
227 | easing: function (x, t, b, c, d) { // more can be found here: http://gsgd.co.uk/sandbox/jquery/easing/
228 | t = t / (d/2);
229 | if (t < 1) {
230 | return c / 2 * t * t + b;
231 | }
232 | return -c/2 * ((--t)*(t-2) - 1) + b;
233 | },
234 | onStart: function(from, to) {
235 | return;
236 | },
237 | onStep: function(from, to, currentValue) {
238 | return;
239 | },
240 | onStop: function(from, to) {
241 | return;
242 | }
243 | };
244 |
245 | // detect present renderer
246 | if (typeof(CanvasRenderer) !== 'undefined') {
247 | defaultOptions.renderer = CanvasRenderer;
248 | } else if (typeof(SVGRenderer) !== 'undefined') {
249 | defaultOptions.renderer = SVGRenderer;
250 | } else {
251 | throw new Error('Please load either the SVG- or the CanvasRenderer');
252 | }
253 |
254 | var options = {};
255 | var currentValue = 0;
256 |
257 | /**
258 | * Initialize the plugin by creating the options object and initialize rendering
259 | */
260 | var init = function() {
261 | this.el = el;
262 | this.options = options;
263 |
264 | // merge user options into default options
265 | for (var i in defaultOptions) {
266 | if (defaultOptions.hasOwnProperty(i)) {
267 | options[i] = opts && typeof(opts[i]) !== 'undefined' ? opts[i] : defaultOptions[i];
268 | if (typeof(options[i]) === 'function') {
269 | options[i] = options[i].bind(this);
270 | }
271 | }
272 | }
273 |
274 | // check for jQuery easing
275 | if (typeof(options.easing) === 'string' && typeof(jQuery) !== 'undefined' && jQuery.isFunction(jQuery.easing[options.easing])) {
276 | options.easing = jQuery.easing[options.easing];
277 | } else {
278 | options.easing = defaultOptions.easing;
279 | }
280 |
281 | // process earlier animate option to avoid bc breaks
282 | if (typeof(options.animate) === 'number') {
283 | options.animate = {
284 | duration: options.animate,
285 | enabled: true
286 | };
287 | }
288 |
289 | if (typeof(options.animate) === 'boolean' && !options.animate) {
290 | options.animate = {
291 | duration: 1000,
292 | enabled: options.animate
293 | };
294 | }
295 |
296 | // create renderer
297 | this.renderer = new options.renderer(el, options);
298 |
299 | // initial draw
300 | this.renderer.draw(currentValue);
301 |
302 | // initial update
303 | if (el.dataset && el.dataset.percent) {
304 | this.update(parseFloat(el.dataset.percent));
305 | } else if (el.getAttribute && el.getAttribute('data-percent')) {
306 | this.update(parseFloat(el.getAttribute('data-percent')));
307 | }
308 | }.bind(this);
309 |
310 | /**
311 | * Update the value of the chart
312 | * @param {number} newValue Number between 0 and 100
313 | * @return {object} Instance of the plugin for method chaining
314 | */
315 | this.update = function(newValue) {
316 | newValue = parseFloat(newValue);
317 | if (options.animate.enabled) {
318 | this.renderer.animate(currentValue, newValue);
319 | } else {
320 | this.renderer.draw(newValue);
321 | }
322 | currentValue = newValue;
323 | return this;
324 | }.bind(this);
325 |
326 | /**
327 | * Disable animation
328 | * @return {object} Instance of the plugin for method chaining
329 | */
330 | this.disableAnimation = function() {
331 | options.animate.enabled = false;
332 | return this;
333 | };
334 |
335 | /**
336 | * Enable animation
337 | * @return {object} Instance of the plugin for method chaining
338 | */
339 | this.enableAnimation = function() {
340 | options.animate.enabled = true;
341 | return this;
342 | };
343 |
344 | init();
345 | };
346 |
347 |
348 | return EasyPieChart;
349 |
350 | }));
351 |
--------------------------------------------------------------------------------
/css/tooltipster.css:
--------------------------------------------------------------------------------
1 | /* This is the default Tooltipster theme (feel free to modify or duplicate and create multiple themes!): */
2 | .tooltipster-default {
3 | border-radius: 5px;
4 | border: 2px solid #000;
5 | background: #4c4c4c;
6 | color: #fff;
7 | max-width:250px;
8 | }
9 |
10 | /* Use this next selector to style things like font-size and line-height: */
11 | .tooltipster-default .tooltipster-content {
12 | font-family: Arial, sans-serif;
13 | font-size: 14px;
14 | line-height: 16px;
15 | padding: 8px 10px;
16 | overflow: hidden;
17 | }
18 |
19 | /* This next selector defines the color of the border on the outside of the arrow. This will automatically match the color and size of the border set on the main tooltip styles. Set display: none; if you would like a border around the tooltip but no border around the arrow */
20 | .tooltipster-default .tooltipster-arrow .tooltipster-arrow-border {
21 | /* border-color: ... !important; */
22 | }
23 |
24 |
25 | /* If you're using the icon option, use this next selector to style them */
26 | .tooltipster-icon {
27 | cursor: help;
28 | margin-left: 4px;
29 | }
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | /* This is the base styling required to make all Tooltipsters work */
39 | .tooltipster-base {
40 | padding: 0;
41 | font-size: 0;
42 | line-height: 0;
43 | position: absolute;
44 | left: 0;
45 | top: 0;
46 | z-index: 9999999;
47 | pointer-events: none;
48 | width: auto;
49 | overflow: visible;
50 | }
51 | .tooltipster-base .tooltipster-content {
52 | overflow: hidden;
53 | }
54 |
55 |
56 | /* These next classes handle the styles for the little arrow attached to the tooltip. By default, the arrow will inherit the same colors and border as what is set on the main tooltip itself. */
57 | .tooltipster-arrow {
58 | display: block;
59 | text-align: center;
60 | width: 100%;
61 | height: 100%;
62 | position: absolute;
63 | top: 0;
64 | left: 0;
65 | z-index: -1;
66 | }
67 | .tooltipster-arrow span, .tooltipster-arrow-border {
68 | display: block;
69 | width: 0;
70 | height: 0;
71 | position: absolute;
72 | }
73 | .tooltipster-arrow-top span, .tooltipster-arrow-top-right span, .tooltipster-arrow-top-left span {
74 | border-left: 8px solid transparent !important;
75 | border-right: 8px solid transparent !important;
76 | border-top: 8px solid;
77 | bottom: -7px;
78 | }
79 | .tooltipster-arrow-top .tooltipster-arrow-border, .tooltipster-arrow-top-right .tooltipster-arrow-border, .tooltipster-arrow-top-left .tooltipster-arrow-border {
80 | border-left: 9px solid transparent !important;
81 | border-right: 9px solid transparent !important;
82 | border-top: 9px solid;
83 | bottom: -7px;
84 | }
85 |
86 | .tooltipster-arrow-bottom span, .tooltipster-arrow-bottom-right span, .tooltipster-arrow-bottom-left span {
87 | border-left: 8px solid transparent !important;
88 | border-right: 8px solid transparent !important;
89 | border-bottom: 8px solid;
90 | top: -7px;
91 | }
92 | .tooltipster-arrow-bottom .tooltipster-arrow-border, .tooltipster-arrow-bottom-right .tooltipster-arrow-border, .tooltipster-arrow-bottom-left .tooltipster-arrow-border {
93 | border-left: 9px solid transparent !important;
94 | border-right: 9px solid transparent !important;
95 | border-bottom: 9px solid;
96 | top: -7px;
97 | }
98 | .tooltipster-arrow-top span, .tooltipster-arrow-top .tooltipster-arrow-border, .tooltipster-arrow-bottom span, .tooltipster-arrow-bottom .tooltipster-arrow-border {
99 | left: 0;
100 | right: 0;
101 | margin: 0 auto;
102 | }
103 | .tooltipster-arrow-top-left span, .tooltipster-arrow-bottom-left span {
104 | left: 6px;
105 | }
106 | .tooltipster-arrow-top-left .tooltipster-arrow-border, .tooltipster-arrow-bottom-left .tooltipster-arrow-border {
107 | left: 5px;
108 | }
109 | .tooltipster-arrow-top-right span, .tooltipster-arrow-bottom-right span {
110 | right: 6px;
111 | }
112 | .tooltipster-arrow-top-right .tooltipster-arrow-border, .tooltipster-arrow-bottom-right .tooltipster-arrow-border {
113 | right: 5px;
114 | }
115 | .tooltipster-arrow-left span, .tooltipster-arrow-left .tooltipster-arrow-border {
116 | border-top: 8px solid transparent !important;
117 | border-bottom: 8px solid transparent !important;
118 | border-left: 8px solid;
119 | top: 50%;
120 | margin-top: -7px;
121 | right: -7px;
122 | }
123 | .tooltipster-arrow-left .tooltipster-arrow-border {
124 | border-top: 9px solid transparent !important;
125 | border-bottom: 9px solid transparent !important;
126 | border-left: 9px solid;
127 | margin-top: -8px;
128 | }
129 | .tooltipster-arrow-right span, .tooltipster-arrow-right .tooltipster-arrow-border {
130 | border-top: 8px solid transparent !important;
131 | border-bottom: 8px solid transparent !important;
132 | border-right: 8px solid;
133 | top: 50%;
134 | margin-top: -7px;
135 | left: -7px;
136 | }
137 | .tooltipster-arrow-right .tooltipster-arrow-border {
138 | border-top: 9px solid transparent !important;
139 | border-bottom: 9px solid transparent !important;
140 | border-right: 9px solid;
141 | margin-top: -8px;
142 | }
143 |
144 |
145 | /* Some CSS magic for the awesome animations - feel free to make your own custom animations and reference it in your Tooltipster settings! */
146 |
147 | .tooltipster-fade {
148 | opacity: 0;
149 | -webkit-transition-property: opacity;
150 | -moz-transition-property: opacity;
151 | -o-transition-property: opacity;
152 | -ms-transition-property: opacity;
153 | transition-property: opacity;
154 | }
155 | .tooltipster-fade-show {
156 | opacity: 1;
157 | }
158 |
159 | .tooltipster-grow {
160 | -webkit-transform: scale(0,0);
161 | -moz-transform: scale(0,0);
162 | -o-transform: scale(0,0);
163 | -ms-transform: scale(0,0);
164 | transform: scale(0,0);
165 | -webkit-transition-property: -webkit-transform;
166 | -moz-transition-property: -moz-transform;
167 | -o-transition-property: -o-transform;
168 | -ms-transition-property: -ms-transform;
169 | transition-property: transform;
170 | -webkit-backface-visibility: hidden;
171 | }
172 | .tooltipster-grow-show {
173 | -webkit-transform: scale(1,1);
174 | -moz-transform: scale(1,1);
175 | -o-transform: scale(1,1);
176 | -ms-transform: scale(1,1);
177 | transform: scale(1,1);
178 | -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
179 | -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
180 | -moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
181 | -ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
182 | -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
183 | transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
184 | }
185 |
186 | .tooltipster-swing {
187 | opacity: 0;
188 | -webkit-transform: rotateZ(4deg);
189 | -moz-transform: rotateZ(4deg);
190 | -o-transform: rotateZ(4deg);
191 | -ms-transform: rotateZ(4deg);
192 | transform: rotateZ(4deg);
193 | -webkit-transition-property: -webkit-transform, opacity;
194 | -moz-transition-property: -moz-transform;
195 | -o-transition-property: -o-transform;
196 | -ms-transition-property: -ms-transform;
197 | transition-property: transform;
198 | }
199 | .tooltipster-swing-show {
200 | opacity: 1;
201 | -webkit-transform: rotateZ(0deg);
202 | -moz-transform: rotateZ(0deg);
203 | -o-transform: rotateZ(0deg);
204 | -ms-transform: rotateZ(0deg);
205 | transform: rotateZ(0deg);
206 | -webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 1);
207 | -webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
208 | -moz-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
209 | -ms-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
210 | -o-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
211 | transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
212 | }
213 |
214 | .tooltipster-fall {
215 | top: 0;
216 | -webkit-transition-property: top;
217 | -moz-transition-property: top;
218 | -o-transition-property: top;
219 | -ms-transition-property: top;
220 | transition-property: top;
221 | -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
222 | -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
223 | -moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
224 | -ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
225 | -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
226 | transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
227 | }
228 | .tooltipster-fall-show {
229 | }
230 | .tooltipster-fall.tooltipster-dying {
231 | -webkit-transition-property: all;
232 | -moz-transition-property: all;
233 | -o-transition-property: all;
234 | -ms-transition-property: all;
235 | transition-property: all;
236 | top: 0px !important;
237 | opacity: 0;
238 | }
239 |
240 | .tooltipster-slide {
241 | left: -40px;
242 | -webkit-transition-property: left;
243 | -moz-transition-property: left;
244 | -o-transition-property: left;
245 | -ms-transition-property: left;
246 | transition-property: left;
247 | -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
248 | -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
249 | -moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
250 | -ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
251 | -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
252 | transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
253 | }
254 | .tooltipster-slide.tooltipster-slide-show {
255 | }
256 | .tooltipster-slide.tooltipster-dying {
257 | -webkit-transition-property: all;
258 | -moz-transition-property: all;
259 | -o-transition-property: all;
260 | -ms-transition-property: all;
261 | transition-property: all;
262 | left: 0px !important;
263 | opacity: 0;
264 | }
265 |
266 |
267 | /* CSS transition for when contenting is changing in a tooltip that is still open. The only properties that will NOT transition are: width, height, top, and left */
268 | .tooltipster-content-changing {
269 | opacity: 0.5;
270 | -webkit-transform: scale(1.1, 1.1);
271 | -moz-transform: scale(1.1, 1.1);
272 | -o-transform: scale(1.1, 1.1);
273 | -ms-transform: scale(1.1, 1.1);
274 | transform: scale(1.1, 1.1);
275 | }
276 |
277 | .tooltipster-punk {
278 | border-radius: 5px;
279 | border-bottom: 3px solid #35DB00;
280 | background:#AFF29A;
281 | color:#104300;
282 | }
283 | .tooltipster-punk .tooltipster-content {
284 | font-family:'Open Sans', sans-serif;
285 | font-size: 14px;
286 | line-height: 16px;
287 | padding: 8px 10px;
288 | }
--------------------------------------------------------------------------------
/js/nivo-lightbox.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Nivo Lightbox v1.1
3 | * http://dev7studios.com/nivo-lightbox
4 | *
5 | * Copyright 2013, Dev7studios
6 | * Free to use and abuse under the MIT license.
7 | * http://www.opensource.org/licenses/mit-license.php
8 | */
9 |
10 | ;(function($, window, document, undefined){
11 |
12 | var pluginName = 'nivoLightbox',
13 | defaults = {
14 | effect: 'fade',
15 | theme: 'default',
16 | keyboardNav: true,
17 | clickOverlayToClose: true,
18 | onInit: function(){},
19 | beforeShowLightbox: function(){},
20 | afterShowLightbox: function(lightbox){},
21 | beforeHideLightbox: function(){},
22 | afterHideLightbox: function(){},
23 | onPrev: function(element){},
24 | onNext: function(element){},
25 | errorMessage: 'The requested content cannot be loaded. Please try again later.'
26 | };
27 |
28 | function NivoLightbox(element, options){
29 | this.el = element;
30 | this.$el = $(this.el);
31 |
32 | this.options = $.extend({}, defaults, options);
33 |
34 | this._defaults = defaults;
35 | this._name = pluginName;
36 |
37 | this.init();
38 | }
39 |
40 | NivoLightbox.prototype = {
41 |
42 | init: function(){
43 | var $this = this;
44 |
45 | // Need this so we don't use CSS transitions in mobile
46 | if(!$('html').hasClass('nivo-lightbox-notouch')) $('html').addClass('nivo-lightbox-notouch');
47 | if('ontouchstart' in document) $('html').removeClass('nivo-lightbox-notouch');
48 |
49 | // Setup the click
50 | this.$el.on('click', function(e){
51 | e.preventDefault();
52 | $this.showLightbox();
53 | });
54 |
55 | // keyboardNav
56 | if(this.options.keyboardNav){
57 | $('body').off('keyup').on('keyup', function(e){
58 | var code = (e.keyCode ? e.keyCode : e.which);
59 | // Escape
60 | if(code == 27) $this.destructLightbox();
61 | // Left
62 | if(code == 37) $('.nivo-lightbox-prev').trigger('click');
63 | // Right
64 | if(code == 39) $('.nivo-lightbox-next').trigger('click');
65 | });
66 | }
67 |
68 | this.options.onInit.call(this);
69 |
70 | },
71 |
72 | showLightbox: function(){
73 | var $this = this;
74 | this.options.beforeShowLightbox.call(this);
75 |
76 | var lightbox = this.constructLightbox();
77 | if(!lightbox) return;
78 | var content = lightbox.find('.nivo-lightbox-content');
79 | if(!content) return;
80 | var currentLink = this.$el;
81 | $('body').addClass('nivo-lightbox-body-effect-'+ this.options.effect);
82 |
83 | // Add content
84 | this.processContent(content, currentLink);
85 |
86 | // Nav
87 | if(this.$el.attr('data-lightbox-gallery')){
88 | var $this = this,
89 | galleryItems = $('[data-lightbox-gallery="'+ this.$el.attr('data-lightbox-gallery') +'"]');
90 |
91 | $('.nivo-lightbox-nav').show();
92 |
93 | // Prev
94 | $('.nivo-lightbox-prev').off('click').on('click', function(e){
95 | e.preventDefault();
96 | var index = galleryItems.index(currentLink);
97 | currentLink = galleryItems.eq(index - 1);
98 | if(!$(currentLink).length) currentLink = galleryItems.last();
99 | $this.processContent(content, currentLink);
100 | $this.options.onPrev.call(this, [ currentLink ]);
101 | });
102 |
103 | // Next
104 | $('.nivo-lightbox-next').off('click').on('click', function(e){
105 | e.preventDefault();
106 | var index = galleryItems.index(currentLink);
107 | currentLink = galleryItems.eq(index + 1);
108 | if(!$(currentLink).length) currentLink = galleryItems.first();
109 | $this.processContent(content, currentLink);
110 | $this.options.onNext.call(this, [ currentLink ]);
111 | });
112 | }
113 |
114 | setTimeout(function(){
115 | lightbox.addClass('nivo-lightbox-open');
116 | $this.options.afterShowLightbox.call(this, [ lightbox ]);
117 | }, 1); // For CSS transitions
118 | },
119 |
120 | processContent: function(content, link){
121 | var $this = this;
122 | var href = link.attr('href');
123 | content.html('').addClass('nivo-lightbox-loading');
124 |
125 | // Is HiDPI?
126 | if(this.isHidpi() && link.attr('data-lightbox-hidpi')){
127 | href = link.attr('data-lightbox-hidpi');
128 | }
129 |
130 | // Image
131 | if(href.match(/\.(jpeg|jpg|gif|png)$/i) != null){
132 | var img = $(' ', { src: href });
133 | img.one('load', function() {
134 | var wrap = $('
');
135 | wrap.append(img);
136 | content.html(wrap).removeClass('nivo-lightbox-loading');
137 |
138 | // Vertically center images
139 | wrap.css({
140 | 'line-height': $('.nivo-lightbox-content').height() +'px',
141 | 'height': $('.nivo-lightbox-content').height() +'px' // For Firefox
142 | });
143 | $(window).resize(function() {
144 | wrap.css({
145 | 'line-height': $('.nivo-lightbox-content').height() +'px',
146 | 'height': $('.nivo-lightbox-content').height() +'px' // For Firefox
147 | });
148 | });
149 | }).each(function() {
150 | if(this.complete) $(this).load();
151 | });
152 |
153 | img.error(function() {
154 | var wrap = $(''+ $this.options.errorMessage +'
');
155 | content.html(wrap).removeClass('nivo-lightbox-loading');
156 | });
157 | }
158 | // Video (Youtube/Vimeo)
159 | else if(video = href.match(/(youtube|youtu|vimeo)\.(com|be)\/(watch\?v=([\w-]+)|([\w-]+))/)){
160 | var src = '',
161 | classTerm = 'nivo-lightbox-video';
162 |
163 | if(video[1] == 'youtube'){
164 | src = 'http://www.youtube.com/v/'+ video[4];
165 | classTerm = 'nivo-lightbox-youtube';
166 | }
167 | if(video[1] == 'youtu'){
168 | src = 'http://www.youtube.com/v/'+ video[3];
169 | classTerm = 'nivo-lightbox-youtube';
170 | }
171 | if(video[1] == 'vimeo'){
172 | src = 'http://player.vimeo.com/video/'+ video[3];
173 | classTerm = 'nivo-lightbox-vimeo';
174 | }
175 |
176 | if(src){
177 | var iframe = $('