Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@gmail.com>2016-08-29 07:01:46 +0300
committerThomas Steur <thomas.steur@gmail.com>2016-08-29 07:01:46 +0300
commit4c9d1274408fb57d5e0b53dcda425dc4892c7b00 (patch)
tree78b0f24058d586cdd109de0387d43165e112003e /libs
parent0c9c30b731ccbacf47e154b9f7a590af49e3d799 (diff)
parent4b395d2385e0041973349c7575fc10378b85558e (diff)
Merge branch 'master' into 3.0-m06
Conflicts: .travis.yml bower.json core/Notification/Manager.php core/Updates.php core/Updates/2.16.2-b2.php core/Version.php libs/Zend/Validate/Hostname.php libs/bower_components/jScrollPane/ajax.html libs/bower_components/jScrollPane/anchors.html libs/bower_components/jScrollPane/api.html libs/bower_components/jScrollPane/arrow_hover.html libs/bower_components/jScrollPane/arrow_positions.html libs/bower_components/jScrollPane/arrows.html libs/bower_components/jScrollPane/auto_reinitialise.html libs/bower_components/jScrollPane/basic.html libs/bower_components/jScrollPane/caps.html libs/bower_components/jScrollPane/changelog.html libs/bower_components/jScrollPane/destroy.html libs/bower_components/jScrollPane/drag_size.html libs/bower_components/jScrollPane/dynamic_content.html libs/bower_components/jScrollPane/dynamic_height.html libs/bower_components/jScrollPane/dynamic_width.html libs/bower_components/jScrollPane/events.html libs/bower_components/jScrollPane/faqs.html libs/bower_components/jScrollPane/fixed_width.html libs/bower_components/jScrollPane/focus.html libs/bower_components/jScrollPane/fullpage_scroll.html libs/bower_components/jScrollPane/iframe.html libs/bower_components/jScrollPane/iframe2.html libs/bower_components/jScrollPane/iframe_content1.html libs/bower_components/jScrollPane/iframe_content2.html libs/bower_components/jScrollPane/image.html libs/bower_components/jScrollPane/image2.html libs/bower_components/jScrollPane/index.html libs/bower_components/jScrollPane/invisibles.html libs/bower_components/jScrollPane/known_issues.html libs/bower_components/jScrollPane/less_basic.html libs/bower_components/jScrollPane/mwheel_intent.html libs/bower_components/jScrollPane/override_animate.html libs/bower_components/jScrollPane/runeimp.html libs/bower_components/jScrollPane/runeimp2.html libs/bower_components/jScrollPane/scroll_on_left.html libs/bower_components/jScrollPane/scroll_to.html libs/bower_components/jScrollPane/scroll_to_animate.html libs/bower_components/jScrollPane/settings.html libs/bower_components/jScrollPane/short.html libs/bower_components/jquery/.bower.json libs/bower_components/jquery/LICENSE.txt libs/bower_components/jquery/dist/jquery.js libs/bower_components/jquery/dist/jquery.min.js libs/bower_components/jquery/dist/jquery.min.map libs/bower_components/jquery/sizzle/dist/sizzle.js libs/bower_components/jquery/src/ajax.js libs/bower_components/jquery/src/ajax/jsonp.js libs/bower_components/jquery/src/ajax/load.js libs/bower_components/jquery/src/ajax/parseJSON.js libs/bower_components/jquery/src/ajax/parseXML.js libs/bower_components/jquery/src/ajax/script.js libs/bower_components/jquery/src/ajax/xhr.js libs/bower_components/jquery/src/attributes/attr.js libs/bower_components/jquery/src/attributes/classes.js libs/bower_components/jquery/src/attributes/prop.js libs/bower_components/jquery/src/attributes/support.js libs/bower_components/jquery/src/attributes/val.js libs/bower_components/jquery/src/callbacks.js libs/bower_components/jquery/src/core.js libs/bower_components/jquery/src/core/access.js libs/bower_components/jquery/src/core/init.js libs/bower_components/jquery/src/core/parseHTML.js libs/bower_components/jquery/src/core/ready.js libs/bower_components/jquery/src/css.js libs/bower_components/jquery/src/css/curCSS.js libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js libs/bower_components/jquery/src/css/support.js libs/bower_components/jquery/src/css/var/swap.js libs/bower_components/jquery/src/data.js libs/bower_components/jquery/src/data/accepts.js libs/bower_components/jquery/src/deferred.js libs/bower_components/jquery/src/deprecated.js libs/bower_components/jquery/src/dimensions.js libs/bower_components/jquery/src/effects.js libs/bower_components/jquery/src/effects/Tween.js libs/bower_components/jquery/src/event.js libs/bower_components/jquery/src/event/support.js libs/bower_components/jquery/src/manipulation.js libs/bower_components/jquery/src/manipulation/support.js libs/bower_components/jquery/src/offset.js libs/bower_components/jquery/src/queue.js libs/bower_components/jquery/src/serialize.js libs/bower_components/jquery/src/traversing.js libs/bower_components/jquery/src/traversing/findFilter.js libs/bower_components/jquery/src/var/concat.js libs/bower_components/jquery/src/var/indexOf.js libs/bower_components/jquery/src/var/push.js libs/bower_components/jquery/src/var/slice.js libs/bower_components/jquery/src/wrap.js plugins/API/ProcessedReport.php plugins/AnonymousPiwikUsageMeasurement plugins/CoreConsole/Commands/ManagePlugin.php plugins/CoreHome/javascripts/dataTable.js plugins/CoreHome/javascripts/manifest.json plugins/CoreHome/templates/_topBar.twig plugins/CoreUpdater/templates/updateSuccess.twig plugins/CustomAlerts plugins/CustomDimensions plugins/DevicesDetection/Reports/GetBrowserVersions.php plugins/DevicesDetection/Reports/GetBrowsers.php plugins/ExamplePlugin/Updates/0.0.2.php plugins/Feedback/templates/index.twig plugins/LogViewer plugins/Morpheus/stylesheets/general/_forms.less plugins/Morpheus/templates/layout.twig plugins/Morpheus/templates/user.twig plugins/QueuedTracking plugins/SegmentEditor/stylesheets/segmentation.less plugins/SitesManager/tests/Integration/ApiTest.php tests/PHPUnit/Integration/WidgetsListTest.php tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest_sortByProcessedMetric__API.getProcessedReport_day.xml tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_hideColumns___API.getProcessedReport_day.xml tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_showColumns___API.getProcessedReport_day.xml tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_csv__ScheduledReports.generateReport_month.original.csv tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_csv__ScheduledReports.generateReport_week.original.csv tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html tests/UI/expected-ui-screenshots tests/UI/specs/SegmentSelectorEditor_spec.js
Diffstat (limited to 'libs')
-rw-r--r--libs/Zend/Validate/Hostname.php5
-rw-r--r--libs/bower_components/jScrollPane/GPL-LICENSE.txt278
-rw-r--r--libs/bower_components/jScrollPane/ajax.html151
-rw-r--r--libs/bower_components/jScrollPane/ajax_content.html73
-rw-r--r--libs/bower_components/jScrollPane/anchors.html140
-rw-r--r--libs/bower_components/jScrollPane/api.html191
-rw-r--r--libs/bower_components/jScrollPane/arrow_hover.html208
-rw-r--r--libs/bower_components/jScrollPane/arrow_positions.html634
-rw-r--r--libs/bower_components/jScrollPane/arrows.html203
-rw-r--r--libs/bower_components/jScrollPane/auto_reinitialise.html98
-rw-r--r--libs/bower_components/jScrollPane/basic.html204
-rw-r--r--libs/bower_components/jScrollPane/caps.html236
-rw-r--r--libs/bower_components/jScrollPane/changelog.html66
-rw-r--r--libs/bower_components/jScrollPane/destroy.html237
-rw-r--r--libs/bower_components/jScrollPane/drag_size.html206
-rw-r--r--libs/bower_components/jScrollPane/dynamic_content.html95
-rw-r--r--libs/bower_components/jScrollPane/dynamic_height.html207
-rw-r--r--libs/bower_components/jScrollPane/dynamic_width.html368
-rw-r--r--libs/bower_components/jScrollPane/events.html324
-rw-r--r--libs/bower_components/jScrollPane/faqs.html52
-rw-r--r--libs/bower_components/jScrollPane/fixed_width.html230
-rw-r--r--libs/bower_components/jScrollPane/focus.html207
-rw-r--r--libs/bower_components/jScrollPane/fullpage_scroll.html259
-rw-r--r--libs/bower_components/jScrollPane/iframe.html79
-rw-r--r--libs/bower_components/jScrollPane/iframe2.html121
-rw-r--r--libs/bower_components/jScrollPane/iframe_content1.html143
-rw-r--r--libs/bower_components/jScrollPane/iframe_content2.html143
-rw-r--r--libs/bower_components/jScrollPane/iframe_content3.html76
-rw-r--r--libs/bower_components/jScrollPane/iframe_content4.html76
-rw-r--r--libs/bower_components/jScrollPane/image.html96
-rw-r--r--libs/bower_components/jScrollPane/image2.html98
-rw-r--r--libs/bower_components/jScrollPane/index.html319
-rw-r--r--libs/bower_components/jScrollPane/invisibles.html523
-rw-r--r--libs/bower_components/jScrollPane/issues/11/after.html45
-rw-r--r--libs/bower_components/jScrollPane/issues/11/before.html45
-rw-r--r--libs/bower_components/jScrollPane/issues/11/brs_main.css301
-rw-r--r--libs/bower_components/jScrollPane/issues/11/index.html53
-rw-r--r--libs/bower_components/jScrollPane/issues/11/jquery.mousewheel.js79
-rw-r--r--libs/bower_components/jScrollPane/issues/11/jscrollpane-2b3.css143
-rw-r--r--libs/bower_components/jScrollPane/issues/11/jscrollpane-2b3.js1063
-rw-r--r--libs/bower_components/jScrollPane/issues/11/native.html42
-rw-r--r--libs/bower_components/jScrollPane/issues/12/after.html80
-rw-r--r--libs/bower_components/jScrollPane/issues/12/after_reinit.html73
-rw-r--r--libs/bower_components/jScrollPane/issues/12/before.html72
-rw-r--r--libs/bower_components/jScrollPane/issues/12/before_reinit.html73
-rw-r--r--libs/bower_components/jScrollPane/issues/12/brs_main.css301
-rw-r--r--libs/bower_components/jScrollPane/issues/12/index.html53
-rw-r--r--libs/bower_components/jScrollPane/issues/12/jquery.mousewheel.js79
-rw-r--r--libs/bower_components/jScrollPane/issues/12/jscrollpane-2b3.css143
-rw-r--r--libs/bower_components/jScrollPane/issues/12/jscrollpane-2b3.js1063
-rw-r--r--libs/bower_components/jScrollPane/issues/12/native.html69
-rw-r--r--libs/bower_components/jScrollPane/issues/12/wrapped.html87
-rw-r--r--libs/bower_components/jScrollPane/issues/7/after.html190
-rw-r--r--libs/bower_components/jScrollPane/issues/7/before.html190
-rw-r--r--libs/bower_components/jScrollPane/issues/7/index.html53
-rw-r--r--libs/bower_components/jScrollPane/issues/7/jscrollpane-2b1.css120
-rw-r--r--libs/bower_components/jScrollPane/issues/7/jscrollpane-2b2.js947
-rw-r--r--libs/bower_components/jScrollPane/issues/7/native.html171
-rw-r--r--libs/bower_components/jScrollPane/known_issues.html62
-rw-r--r--libs/bower_components/jScrollPane/less_basic.html164
-rw-r--r--libs/bower_components/jScrollPane/mwheel_intent.html209
-rw-r--r--libs/bower_components/jScrollPane/override_animate.html215
-rw-r--r--libs/bower_components/jScrollPane/runeimp.html314
-rw-r--r--libs/bower_components/jScrollPane/runeimp2.html320
-rw-r--r--libs/bower_components/jScrollPane/scroll_on_left.html132
-rw-r--r--libs/bower_components/jScrollPane/scroll_to.html188
-rw-r--r--libs/bower_components/jScrollPane/scroll_to_animate.html197
-rw-r--r--libs/bower_components/jScrollPane/settings.html202
-rw-r--r--libs/bower_components/jScrollPane/short.html82
-rwxr-xr-xlibs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_222222_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xlibs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_888888_256x240.pngbin4369 -> 0 bytes
-rwxr-xr-xlibs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_cd0a0a_256x240.pngbin4369 -> 0 bytes
-rw-r--r--libs/bower_components/jScrollPane/themes/lozenge/index.html337
-rw-r--r--libs/bower_components/jScrollPane/themes/lozenge/style/jquery.jscrollpane.lozenge.css78
-rw-r--r--libs/bower_components/jScrollPane/v1.html49
-rw-r--r--libs/bower_components/jquery/src/.jshintrc29
-rw-r--r--libs/bower_components/jquery/src/ajax.js845
-rw-r--r--libs/bower_components/jquery/src/ajax/jsonp.js100
-rw-r--r--libs/bower_components/jquery/src/ajax/load.js83
-rw-r--r--libs/bower_components/jquery/src/ajax/parseJSON.js13
-rw-r--r--libs/bower_components/jquery/src/ajax/parseXML.js27
-rw-r--r--libs/bower_components/jquery/src/ajax/script.js68
-rw-r--r--libs/bower_components/jquery/src/ajax/var/location.js3
-rw-r--r--libs/bower_components/jquery/src/ajax/var/nonce.js5
-rw-r--r--libs/bower_components/jquery/src/ajax/var/rquery.js3
-rw-r--r--libs/bower_components/jquery/src/ajax/xhr.js167
-rw-r--r--libs/bower_components/jquery/src/attributes.js11
-rw-r--r--libs/bower_components/jquery/src/attributes/attr.js142
-rw-r--r--libs/bower_components/jquery/src/attributes/classes.js177
-rw-r--r--libs/bower_components/jquery/src/attributes/prop.js125
-rw-r--r--libs/bower_components/jquery/src/attributes/support.js36
-rw-r--r--libs/bower_components/jquery/src/attributes/val.js177
-rw-r--r--libs/bower_components/jquery/src/callbacks.js232
-rw-r--r--libs/bower_components/jquery/src/core.js494
-rw-r--r--libs/bower_components/jquery/src/core/DOMEval.js14
-rw-r--r--libs/bower_components/jquery/src/core/access.js65
-rw-r--r--libs/bower_components/jquery/src/core/init.js134
-rw-r--r--libs/bower_components/jquery/src/core/parseHTML.js41
-rw-r--r--libs/bower_components/jquery/src/core/ready.js103
-rw-r--r--libs/bower_components/jquery/src/core/support.js18
-rw-r--r--libs/bower_components/jquery/src/core/var/rsingleTag.js5
-rw-r--r--libs/bower_components/jquery/src/css.js515
-rw-r--r--libs/bower_components/jquery/src/css/addGetHookIf.js24
-rw-r--r--libs/bower_components/jquery/src/css/adjustCSS.js65
-rw-r--r--libs/bower_components/jquery/src/css/curCSS.js60
-rw-r--r--libs/bower_components/jquery/src/css/defaultDisplay.js72
-rw-r--r--libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js18
-rw-r--r--libs/bower_components/jquery/src/css/showHide.js48
-rw-r--r--libs/bower_components/jquery/src/css/support.js121
-rw-r--r--libs/bower_components/jquery/src/css/var/cssExpand.js3
-rw-r--r--libs/bower_components/jquery/src/css/var/getStyles.js15
-rw-r--r--libs/bower_components/jquery/src/css/var/isHidden.js16
-rw-r--r--libs/bower_components/jquery/src/css/var/rmargin.js3
-rw-r--r--libs/bower_components/jquery/src/css/var/rnumnonpx.js5
-rw-r--r--libs/bower_components/jquery/src/css/var/swap.js24
-rw-r--r--libs/bower_components/jquery/src/data.js187
-rw-r--r--libs/bower_components/jquery/src/data/Data.js200
-rw-r--r--libs/bower_components/jquery/src/data/accepts.js20
-rw-r--r--libs/bower_components/jquery/src/data/support.js23
-rw-r--r--libs/bower_components/jquery/src/data/var/acceptData.js18
-rw-r--r--libs/bower_components/jquery/src/data/var/dataPriv.js5
-rw-r--r--libs/bower_components/jquery/src/data/var/dataUser.js5
-rw-r--r--libs/bower_components/jquery/src/deferred.js158
-rw-r--r--libs/bower_components/jquery/src/deferred/exceptionHook.js19
-rw-r--r--libs/bower_components/jquery/src/deprecated.js32
-rw-r--r--libs/bower_components/jquery/src/dimensions.js54
-rw-r--r--libs/bower_components/jquery/src/effects.js629
-rw-r--r--libs/bower_components/jquery/src/effects/Tween.js121
-rw-r--r--libs/bower_components/jquery/src/effects/animatedSelector.js13
-rw-r--r--libs/bower_components/jquery/src/effects/support.js58
-rw-r--r--libs/bower_components/jquery/src/event.js710
-rw-r--r--libs/bower_components/jquery/src/event/ajax.js20
-rw-r--r--libs/bower_components/jquery/src/event/alias.js27
-rw-r--r--libs/bower_components/jquery/src/event/focusin.js53
-rw-r--r--libs/bower_components/jquery/src/event/support.js9
-rw-r--r--libs/bower_components/jquery/src/event/trigger.js199
-rw-r--r--libs/bower_components/jquery/src/exports/amd.js24
-rw-r--r--libs/bower_components/jquery/src/exports/global.js26
-rw-r--r--libs/bower_components/jquery/src/intro.js44
-rw-r--r--libs/bower_components/jquery/src/jquery.js37
-rw-r--r--libs/bower_components/jquery/src/manipulation.js481
-rw-r--r--libs/bower_components/jquery/src/manipulation/_evalUrl.js20
-rw-r--r--libs/bower_components/jquery/src/manipulation/buildFragment.js102
-rw-r--r--libs/bower_components/jquery/src/manipulation/createSafeFragment.js20
-rw-r--r--libs/bower_components/jquery/src/manipulation/getAll.js21
-rw-r--r--libs/bower_components/jquery/src/manipulation/setGlobalEval.js20
-rw-r--r--libs/bower_components/jquery/src/manipulation/support.js33
-rw-r--r--libs/bower_components/jquery/src/manipulation/var/nodeNames.js5
-rw-r--r--libs/bower_components/jquery/src/manipulation/var/rcheckableType.js3
-rw-r--r--libs/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js3
-rw-r--r--libs/bower_components/jquery/src/manipulation/var/rscriptType.js3
-rw-r--r--libs/bower_components/jquery/src/manipulation/var/rtagName.js3
-rw-r--r--libs/bower_components/jquery/src/manipulation/wrapMap.js27
-rw-r--r--libs/bower_components/jquery/src/offset.js218
-rw-r--r--libs/bower_components/jquery/src/outro.js2
-rw-r--r--libs/bower_components/jquery/src/queue.js143
-rw-r--r--libs/bower_components/jquery/src/queue/delay.js22
-rw-r--r--libs/bower_components/jquery/src/selector-native.js211
-rw-r--r--libs/bower_components/jquery/src/selector-sizzle.js14
-rw-r--r--libs/bower_components/jquery/src/selector.js1
-rw-r--r--libs/bower_components/jquery/src/serialize.js125
-rw-r--r--libs/bower_components/jquery/src/support.js63
-rw-r--r--libs/bower_components/jquery/src/traversing.js175
-rw-r--r--libs/bower_components/jquery/src/traversing/findFilter.js100
-rw-r--r--libs/bower_components/jquery/src/traversing/var/dir.js20
-rw-r--r--libs/bower_components/jquery/src/traversing/var/rneedsContext.js6
-rw-r--r--libs/bower_components/jquery/src/traversing/var/siblings.js15
-rw-r--r--libs/bower_components/jquery/src/var/arr.js3
-rw-r--r--libs/bower_components/jquery/src/var/class2type.js5
-rw-r--r--libs/bower_components/jquery/src/var/concat.js5
-rw-r--r--libs/bower_components/jquery/src/var/deletedIds.js3
-rw-r--r--libs/bower_components/jquery/src/var/document.js3
-rw-r--r--libs/bower_components/jquery/src/var/documentElement.js5
-rw-r--r--libs/bower_components/jquery/src/var/hasOwn.js5
-rw-r--r--libs/bower_components/jquery/src/var/indexOf.js5
-rw-r--r--libs/bower_components/jquery/src/var/pnum.js3
-rw-r--r--libs/bower_components/jquery/src/var/push.js5
-rw-r--r--libs/bower_components/jquery/src/var/rcssNum.js7
-rw-r--r--libs/bower_components/jquery/src/var/rnotwhite.js3
-rw-r--r--libs/bower_components/jquery/src/var/slice.js5
-rw-r--r--libs/bower_components/jquery/src/var/support.js5
-rw-r--r--libs/bower_components/jquery/src/var/toString.js5
-rw-r--r--libs/bower_components/jquery/src/wrap.js79
-rw-r--r--libs/bower_components/jqueryui-touch-punch/.bower.json19
-rw-r--r--libs/bower_components/jqueryui-touch-punch/README.md41
-rw-r--r--libs/bower_components/jqueryui-touch-punch/bower.json10
-rw-r--r--libs/bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.js180
-rw-r--r--libs/bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.min.js11
-rw-r--r--libs/bower_components/mousetrap/plugins/record/tests/index.html29
-rw-r--r--libs/bower_components/mousetrap/plugins/record/tests/jelly.css18
-rw-r--r--libs/bower_components/mousetrap/plugins/record/tests/jelly.js53
191 files changed, 266 insertions, 23324 deletions
diff --git a/libs/Zend/Validate/Hostname.php b/libs/Zend/Validate/Hostname.php
index 6a6c4aabb8..1ea9800546 100644
--- a/libs/Zend/Validate/Hostname.php
+++ b/libs/Zend/Validate/Hostname.php
@@ -492,7 +492,12 @@ class Zend_Validate_Hostname extends Zend_Validate_Abstract
'微博' => array(1 => self::VALID_UNICODE_DOMAIN),
'ابوظبي' => array(1 => self::VALID_UNICODE_DOMAIN),
'网站' => array(1 => self::VALID_UNICODE_DOMAIN),
+ '大众汽车' => array(1 => self::VALID_UNICODE_DOMAIN),
'香格里拉' => array(1 => self::VALID_UNICODE_DOMAIN),
+ 'бг' => array(1 => self::VALID_UNICODE_DOMAIN),
+ '電訊盈科' => array(1 => self::VALID_UNICODE_DOMAIN),
+ 'العليان' => array(1 => self::VALID_UNICODE_DOMAIN),
+ '嘉里' => array(1 => self::VALID_UNICODE_DOMAIN),
);
diff --git a/libs/bower_components/jScrollPane/GPL-LICENSE.txt b/libs/bower_components/jScrollPane/GPL-LICENSE.txt
deleted file mode 100644
index 11dddd00ef..0000000000
--- a/libs/bower_components/jScrollPane/GPL-LICENSE.txt
+++ /dev/null
@@ -1,278 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
diff --git a/libs/bower_components/jScrollPane/ajax.html b/libs/bower_components/jScrollPane/ajax.html
deleted file mode 100644
index 006006f019..0000000000
--- a/libs/bower_components/jScrollPane/ajax.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - ajax demo page</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- var api = $('.scroll-pane').jScrollPane(
- {
- showArrows:true,
- maintainPosition: false
- }
- ).data('jsp');
-
- $('#do-ajax').bind(
- 'click',
- function()
- {
- api.getContentPane().load(
- 'ajax_content.html',
- function()
- {
- api.reinitialise();
- }
- );
- return false;
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - ajax demo page</h1>
- <p>
- This demonstration shows how you can use ajax to dynamically load content into your jScrollPane. Because of
- the way jScrollPane works you need to use the <a href="api.html#getContentPane">getContentPane</a> API method
- to get the element which you are adding content to and then <a href="api.html#reinitialise">reinitialise</a>
- the scrollpane once you have changed the content. As the <a href="settings.html#maintainPosition">maintainPosition
- </a> setting is true by default then the position of the scrollpane is maintained even if we are scrolling
- while the update happens.
- </p>
- <p>
- You can <a href="#" id="do-ajax">click here</a> to load some content into the scrollpane below using ajax.
- </p>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/ajax_content.html b/libs/bower_components/jScrollPane/ajax_content.html
deleted file mode 100644
index e67ffb2021..0000000000
--- a/libs/bower_components/jScrollPane/ajax_content.html
+++ /dev/null
@@ -1,73 +0,0 @@
-
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/anchors.html b/libs/bower_components/jScrollPane/anchors.html
deleted file mode 100644
index 327ad57667..0000000000
--- a/libs/bower_components/jScrollPane/anchors.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane anchors demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane(
- {
- hijackInternalLinks: true
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - anchors demo page</h1>
- <p>
- This demonstration shows how jScrollPane can check the location.hash when the page loads and
- automatically scroll the pane to the correct place if the hash refers to an element within the scroll
- pane. jScrollPane can also hijack links within your page and automatically convert relevant ones to
- scroll the jScrollPane. As an example, the following links will scroll to the paragraphs in the scroll
- pane below: <a href="#para1">1</a>, <a href="#para2">2</a>, <a href="#para3">3</a>,
- <a href="#para4">4</a> and <a href="#para5">5</a>. <a href="#sourcecode-display">This link</a> (to the
- sourcecode listing below) is also an internal link but because its target isn't within the scrollpane
- we don't mess with it.
- </p>
- <p>
- <strong>Note</strong> that the link hijacking functionality is off by default (as it has a small
- performance overhead so if you don't need it you might as well not have it). To enable it pass
- <strong><a href="settings.html#hijackInternalLinks">hijackInternalLinks</a>: true</strong> in with
- your settings (as I do on this page). Internally only one live event is bound to the document body.
- </p>
- <div class="scroll-pane">
- <p id="para1">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p id="para2">
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p id="para3">
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p id="para4">
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p id="para5">
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/api.html b/libs/bower_components/jScrollPane/api.html
deleted file mode 100644
index 0b5b381872..0000000000
--- a/libs/bower_components/jScrollPane/api.html
+++ /dev/null
@@ -1,191 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - API documentation</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - API documentation</h1>
- <p>
- This page shows how you can use the jScrollPane API (in addition to the <a href="settings.html">
- settings object</a> and the <a href="events.html">events</a> which are dispatched) to update your
- jScrollPane after it's has been initially created.
- </p>
- <p>
- To get a reference to the API for a particular scrollpane you will need to access the 'jsp' variable in
- the <em>data</em> of the element you applied jScrollPane to. e.g.
- </p>
- <pre>var element = $('#my-element').jScrollPane({/* ...settings... */});
-var api = element.data('jsp');</pre>
- <p>
- Once you have a reference to the API you can call any of the following methods on it:
- </p>
- <h2 id="reinitialise">reinitialise(s)</h2>
- <p>
- Reinitialises the scroll pane (if it's internal dimensions have changed since the last time it
- was initialised). The settings object which is passed in will override any settings from the
- previous time it was initialised - if you don't pass any settings then the ones from the previous
- initialisation will be used.
- </p>
- <h2 id="scrollToElement">scrollToElement(ele, stickToTop, animate)</h2>
- <p>
- Scrolls the specified element (a jQuery object, DOM node or jQuery selector string) into view so
- that it can be seen within the viewport. If stickToTop is true then the element will appear at
- the top of the viewport, if it is false then the viewport will scroll as little as possible to
- show the element. You can also specify if you want animation to occur. If you don't provide this
- argument then the animateScroll value from the settings object is used instead.
- </p>
- <h2 id="scrollTo">scrollTo(destX, destY, animate)</h2>
- <p>
- Scrolls the pane so that the specified co-ordinates within the content are at the top left
- of the viewport. animate is optional and if not passed then the value of animateScroll from
- the settings object this jScrollPane was initialised with is used.
- </p>
- <h2 id="scrollToX">scrollToX(destX, animate)</h2>
- <p>
- Scrolls the pane so that the specified co-ordinate within the content is at the left of the
- viewport. animate is optional and if not passed then the value of animateScroll from the settings
- object this jScrollPane was initialised with is used.
- </p>
- <h2 id="scrollToY">scrollToY(destY, animate)</h2>
- <p>
- Scrolls the pane so that the specified co-ordinate within the content is at the top of the
- viewport. animate is optional and if not passed then the value of animateScroll from the settings
- object this jScrollPane was initialised with is used.
- </p>
- <h2 id="scrollToPercentX">scrollToPercentX(destPercentX, animate)</h2>
- <p>
- Scrolls the pane to the specified percentage of its maximum horizontal scroll position. animate
- is optional and if not passed then the value of animateScroll from the settings object this
- jScrollPane was initialised with is used.
- </p>
- <h2 id="scrollToPercentY">scrollToPercentY(destPercentY, animate)</h2>
- <p>
- Scrolls the pane to the specified percentage of its maximum vertical scroll position. animate
- is optional and if not passed then the value of animateScroll from the settings object this
- jScrollPane was initialised with is used.
- </p>
- <h2 id="scrollBy">scrollBy(deltaX, deltaY, animate)</h2>
- <p>
- Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- </p>
- <h2 id="scrollByX">scrollByX(deltaX, animate)</h2>
- <p>
- Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- </p>
- <h2 id="scrollByY">scrollByY(deltaY, animate)</h2>
- <p>
- Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- </p>
- <h2 id="positionDragX">positionDragX(x, animate)</h2>
- <p>
- Positions the horizontal drag at the specified x position (and updates the viewport to reflect
- this). animate is optional and if not passed then the value of animateScroll from the settings
- object this jScrollPane was initialised with is used.
- </p>
- <h2 id="positionDragY">positionDragY(y, animate)</h2>
- <p>
- Positions the vertical drag at the specified y position (and updates the viewport to reflect
- this). animate is optional and if not passed then the value of animateScroll from the settings
- object this jScrollPane was initialised with is used.
- </p>
- <h2 id="animate">animate(ele, prop, value, stepCallback, completeCallback)</h2>
- <p>
- This method is called when jScrollPane is trying to animate to a new position. You can override
- it if you want to provide advanced animation functionality. It is passed the following arguments:
- </p>
- <ul class="link-list">
- <li><strong>ele</strong> - the element whose position is being animated</li>
- <li><strong>prop</strong> - the property that is being animated</li>
- <li><strong>value</strong> - the value it's being animated to</li>
- <li><strong>stepCallback</strong> - a function that you must execute each time you update the value of the property</li>
- <li><strong>completeCallback</strong> - a function that will be executed after the animation had finished</li>
- </ul>
- <p>
- You can use the default implementation (see <a href="script/jquery.jscrollpane.js">sourcecode</a>) as a
- starting point for your own implementation.
- </p>
- <h2 id="getContentPositionX">getContentPositionX()</h2>
- <p>
- Returns the current x position of the viewport with regards to the content pane.
- </p>
- <h2 id="getContentPositionY">getContentPositionY()</h2>
- <p>
- Returns the current y position of the viewport with regards to the content pane.
- </p>
- <h2 id="getContentWidth">getContentWidth()</h2>
- <p>
- Returns the width of the content within the scroll pane.
- </p>
- <h2 id="getContentHeight">getContentHeight()</h2>
- <p>
- Returns the height of the content within the scroll pane.
- </p>
- <h2 id="getIsScrollableH">getIsScrollableH()</h2>
- <p>
- Returns whether or not this scrollpane has a horizontal scrollbar.
- </p>
- <h2 id="getPercentScrolledX">getPercentScrolledX()</h2>
- <p>
- Returns the horizontal position of the viewport within the pane content.
- </p>
- <h2 id="getPercentScrolledY">getPercentScrolledY()</h2>
- <p>
- Returns the vertical position of the viewport within the pane content.
- </p>
- <h2 id="getIsScrollableV">getIsScrollableV()</h2>
- <p>
- Returns whether or not this scrollpane has a vertical scrollbar.
- </p>
- <h2 id="getContentPane">getContentPane()</h2>
- <p>
- Gets a reference to the content pane. It is important that you use this method if you want to
- edit the content of your jScrollPane as if you access the element directly then you may have some
- problems (as your original element has had additional elements for the scrollbars etc added into
- it).
- </p>
- <h2 id="scrollToBottom">scrollToBottom(animate)</h2>
- <p>
- Scrolls this jScrollPane down as far as it can currently scroll. If animate isn't passed then the
- animateScroll value from settings is used instead.
- </p>
- <h2 id="hijackInternalLinks">hijackInternalLinks()</h2>
- <p>
- Hijacks the links on the page which link to content inside the scrollpane. If you have changed
- the content of your page (e.g. via AJAX) and want to make sure any new anchor links to the
- contents of your scroll pane will work then call this function.
- </p>
- <h2 id="destroy">destroy()</h2>
- <p>
- Destroys the jScrollPane on the instance matching this API object and restores the browser's
- default behaviour. <a href="destroy.html">Example</a>.
- </p>
- </div>
- </body>
-</html>
diff --git a/libs/bower_components/jScrollPane/arrow_hover.html b/libs/bower_components/jScrollPane/arrow_hover.html
deleted file mode 100644
index 42775c6c52..0000000000
--- a/libs/bower_components/jScrollPane/arrow_hover.html
+++ /dev/null
@@ -1,208 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane arrow hover demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane(
- {
- showArrows: true,
- arrowScrollOnHover: true
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - arrow hover example</h1>
- <p>
- This demonstration builds on the <a href="arrows.html">scrollpane arrows example</a> and adds in the
- ability for the scrollpane to automatically scroll when you are hovering over the arrow buttons. If you
- want this functionality then simply pass in <strong><a href="settings.html#arrowScrollOnHover">
- arrowScrollOnHover</a>: true</strong> when you initialise your scrollpane.
- </p>
-
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <div class="scroll-pane horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/arrow_positions.html b/libs/bower_components/jScrollPane/arrow_positions.html
deleted file mode 100644
index bc3acf9eae..0000000000
--- a/libs/bower_components/jScrollPane/arrow_positions.html
+++ /dev/null
@@ -1,634 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane arrow positioning example</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane-before,
- .scroll-pane-after,
- .scroll-pane-split,
- .scroll-pane-os
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane-before').jScrollPane(
- {
- showArrows: true,
- verticalArrowPositions: 'before',
- horizontalArrowPositions: 'before'
- }
- );
- $('.scroll-pane-after').jScrollPane(
- {
- showArrows: true,
- verticalArrowPositions: 'after',
- horizontalArrowPositions: 'after'
- }
- );
- $('.scroll-pane-os').jScrollPane(
- {
- showArrows: true,
- verticalArrowPositions: 'os',
- horizontalArrowPositions: 'os'
- }
- );
- $('.scroll-pane-split').jScrollPane(
- {
- showArrows: true,
- verticalArrowPositions: 'split',
- horizontalArrowPositions: 'split'
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - example showing options for arrow positioning</h1>
- <p>
- This demonstration builds on the <a href="arrows.html">basic arrows scrollpane example</a> and
- demonstrates the different possible settings for <a href="settings.html#verticalArrowPositions">
- verticalArrowPositions</a> and <a href="settings.html#horizontalArrowPositions">horizontalArrowPositions
- </a>. These settings allow you to choose where the arrows appear relative to the tracks and each of the
- settings has four valid values:
- </p>
- <ul class="link-list">
- <li>
- <strong>split</strong> - First arrow will appear before track, second arrow afterwards (the default)
- </li>
- <li>
- <strong>before</strong> - Both arrows will appear before the track.
- </li>
- <li>
- <strong>after</strong> - Both arrows will appear after the track (as is default on OSX).
- </li>
- <li>
- <strong>os</strong> - The positioning of the arrows will be chosen dependant on the users operating
- system (e.g. the value will be "after" for OSX and "split" or other operating systems).
- </li>
- </ul>
- <p>
- Note that in these examples the arrows are simple squares which can cause confusion when they are next
- to each other. This won't be a problem with well designed graphical elements.
- </p>
-
- <h2>Vertical only, "before"</h2>
- <div class="scroll-pane-before">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only, "before"</h2>
- <div class="scroll-pane-before horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both, "before"</h2>
- <div class="scroll-pane-before">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
-
- <h2>Vertical only, "after"</h2>
- <div class="scroll-pane-after">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only, "after"</h2>
- <div class="scroll-pane-after horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both, "after"</h2>
- <div class="scroll-pane-after">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
-
- <h2>Vertical only, "os"</h2>
- <div class="scroll-pane-os">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only, "os"</h2>
- <div class="scroll-pane-os horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both, "os"</h2>
- <div class="scroll-pane-os">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
-
- <h2>Vertical only, "split" (default)</h2>
- <div class="scroll-pane-split">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only, "split" (default)</h2>
- <div class="scroll-pane-split horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both, "split" (default)</h2>
- <div class="scroll-pane-split">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/arrows.html b/libs/bower_components/jScrollPane/arrows.html
deleted file mode 100644
index 7b667ab24e..0000000000
--- a/libs/bower_components/jScrollPane/arrows.html
+++ /dev/null
@@ -1,203 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>Basic arrows jScrollPane demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane({showArrows: true});
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - example with arrow buttons</h1>
- <p>
- This demonstration builds on the <a href="basic.html">basic scrollpane example</a> by adding navigation
- "arrows" to the scrollbar. As you can see from the sourcecode below, these are simply added by passing
- <strong><a href="settings.html#showArrows">showArrows</a>:true</strong> in the settings object when you
- initialise jScrollPane.
- </p>
-
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <div class="scroll-pane horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/auto_reinitialise.html b/libs/bower_components/jScrollPane/auto_reinitialise.html
deleted file mode 100644
index 7e1bbd7a17..0000000000
--- a/libs/bower_components/jScrollPane/auto_reinitialise.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - automatic reinitialise demo page</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- var settings = {
- showArrows: true,
- autoReinitialise: true
- };
- var pane = $('.scroll-pane')
- pane.jScrollPane(settings);
- var contentPane = pane.data('jsp').getContentPane();
- var i = 1;
-
- // Every second add some new content...
- setInterval(
- function()
- {
- contentPane.append(
- $('<p />').text('This is paragraph number ' + i++)
- );
- },
- 1000
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - automatic reinitialisation demo page</h1>
- <p>
- This demonstration shows how you can tell jScrollPane to automatically reinitialise itself. You do this
- by passing in <strong><a href="settings.html#autoReinitialise">autoReinitialise</a>: true</strong> as a
- setting. If you do this then the scrollpane attempts to reinitialise itself every
- <a href="settings.html#autoReinitialiseDelay">autoReinitialiseDelay</a> miliseconds.
- </p>
- <p>
- Note that there is obviously a processing overhead associated with this method as the script is running
- repeatedly in the background. For this reason <strong>autoReinitialise</strong> is false by default and
- if possible you are recommended to <a href="dynamic_content.html">manually reinitialise</a>
- jScrollPane when you add content to it. However, in some situations this isn't possible so the
- <strong>autoReinitialise</strong> method is provided for convenience.
- </p>
- <div class="scroll-pane">
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/basic.html b/libs/bower_components/jScrollPane/basic.html
deleted file mode 100644
index 79e0d7723e..0000000000
--- a/libs/bower_components/jScrollPane/basic.html
+++ /dev/null
@@ -1,204 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>Basic jScrollPane demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane();
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - simple demo page</h1>
- <p>
- This demonstration shows basic use of the jScrollPane plugin to add scrollbars to a HTML
- element which has an overflow of "auto". Note that with javascript disabled the browsers
- default scrollbars will be used to provide scrolling for the element below. With javascript
- enabled then the browsers default scrollbars will be replaced with jScrollPane scrollbars
- which can be styled at will.
- </p>
-
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <div class="scroll-pane horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/caps.html b/libs/bower_components/jScrollPane/caps.html
deleted file mode 100644
index 065e77970d..0000000000
--- a/libs/bower_components/jScrollPane/caps.html
+++ /dev/null
@@ -1,236 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane "caps" demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .jspCap
- {
- display: block;
- background: #eeeef4;
- }
-
- .jspVerticalBar .jspCap
- {
- height: 20px;
- }
-
- .jspHorizontalBar .jspCap
- {
- width: 50px;
- height: 100%;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane(
- {
- showArrows: true,
- horizontalGutter: 30,
- verticalGutter: 30
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - demo showing "caps" functionality</h1>
- <p>
- This demo shows how you can use CSS to set up "caps" e.g. unused spaces at the end of the scrollbars
- which make the scrollbars appear shorter than the content block that they are scrolling. Note that in
- addition to the CSS to show and size the caps I also added extra gutter in the jScrollPane constructor
- - this introduces a gap between the scrolling content and the scrollbar itself.
- </p>
- <h2>Vertical scroll with buttons and caps</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal scroll with buttons and caps</h2>
- <div class="scroll-pane">
- <p style="width: 940px">
- Vestibulumdic tumconsecte turmagnaeuegestas.Praesentmolestie dapibuserat,sitametsodaleslectus
- congueut. Namadipiscing, tortoracblanditeges tas,lor emligula posuereipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- </div>
- <h2>Horizontal and vertical scrolling with buttons and caps</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p style="width: 940px">
- Vestibulumdic tumconsecte turmagnaeuegestas.Praesentmolestie dapibuserat,sitametsodaleslectus
- congueut. Namadipiscing, tortoracblanditeges tas,lor emligula posuereipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/changelog.html b/libs/bower_components/jScrollPane/changelog.html
deleted file mode 100644
index e5818a15eb..0000000000
--- a/libs/bower_components/jScrollPane/changelog.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - changelog</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - changelog</h1>
- <p>
- jScrollPane was originally developed in December 2006. Since then it has been constantly updated to
- fix bugs and add new features. The change history since November 2008 is available in the jScrollPane
- <a href="http://github.com/vitch/jScrollPane">git repository</a>. In August 2010 a major rewrite was
- undertaken, starting from a blank canvas and adding long awaited features like horizontal scrolling
- and automatic reinitialisation. If you want to find old versions of jScrollPane then there are links
- to the still available versions below:
- </p>
- <ul class="link-list">
- <li>2011-04-17 - <a href="http://github.com/vitch/jScrollPane/tree/2.0.0beta10">2.0.0beta10</a> - cleaner required size calculation, improved keyboard support, stickToBottom/Left, other small fixes</li>
- <li>2011-01-31 - <a href="http://github.com/vitch/jScrollPane/tree/2.0.0beta9">2.0.0beta9</a> - new API methods, bug fixes and correct keyboard support for FF/OSX</li>
- <li>2011-01-29 - <a href="http://github.com/vitch/jScrollPane/tree/2.0.0beta8">2.0.0beta8</a> - touchscreen support, improved keyboard support</li>
- <li>2011-01-23 - <a href="http://github.com/vitch/jScrollPane/tree/2.0.0beta7">2.0.0beta7</a> - scroll speed consistent (thanks Aivo Paas)</li>
- <li>2010-12-07 - <a href="http://github.com/vitch/jScrollPane/tree/2.0.0beta6">2.0.0beta6</a> - scrollToElement horizontal support</li>
- <li>2010-10-18 - <a href="http://github.com/vitch/jScrollPane/tree/2.0.0beta5">2.0.0beta5</a> - jQuery 1.4.3 support, various bug fixes</li>
- <li>2010-09-13 - <a href="http://github.com/vitch/jScrollPane/tree/2.0.0beta4">2.0.0beta4</a> - clickOnTrack support, bug fixes</li>
- <li>2010-08-27 - <a href="http://github.com/vitch/jScrollPane/tree/2.0.0beta3">2.0.0beta3</a> - Horizontal mousewheel, mwheelIntent, keyboard support, bug fixes</li>
- <li>2010-08-21 - <a href="http://github.com/vitch/jScrollPane/tree/2.0.0beta2">2.0.0beta2</a> - Bug fixes</li>
- <li>2010-08-17 - <a href="http://github.com/vitch/jScrollPane/tree/2.0.0beta1">2.0.0beta1</a> - Rewrite to follow modern best practices and enable horizontal scrolling, initially hidden elements and dynamically sized elements.</li>
- <li>2010-06-11 - <a href="http://github.com/vitch/jScrollPane/tree/1.x">v1.2+</a></li>
- <li>2008-12-10 - <a href="http://github.com/vitch/jScrollPane/tree/1.2.3">v1.2.3</a></li>
- <li>2008-11-29 - <a href="http://github.com/vitch/jScrollPane/tree/1.2.2">v1.2.2</a></li>
- <li>2008-11-13 - <a href="http://github.com/vitch/jScrollPane/tree/1.2.1">v1.2.1</a></li>
- <li>2008-11-07 - <a href="http://github.com/vitch/jScrollPane/tree/1.2">v1.2</a></li>
- <li>2006-12-31 - <a href="http://www.kelvinluck.com/2006/12/jscrollpane-cross-browser-custom-scrollbars/">v1</a></li>
- </ul>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/destroy.html b/libs/bower_components/jScrollPane/destroy.html
deleted file mode 100644
index f98ae3f1d4..0000000000
--- a/libs/bower_components/jScrollPane/destroy.html
+++ /dev/null
@@ -1,237 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>Basic jScrollPane destroy demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- var apis = [];
- $('#jsp-destroy').bind(
- 'click',
- function()
- {
- if (apis.length) {
- $.each(
- apis,
- function(i) {
- this.destroy();
- }
- )
- apis = [];
- }
- return false;
- }
- );
- $('#jsp-init').bind(
- 'click',
- function()
- {
- // Loop over each scrollpane individually so we can
- // save a reference to each api object.
- $('.scroll-pane').each(
- function()
- {
- apis.push($(this).jScrollPane().data().jsp);
- }
- )
- return false;
- }
- ).trigger('click'); // initially initialise
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - destroy demo page</h1>
- <p>
- This demonstration shows how you can use the <a href="api.html#destroy">destroy</a> method of the
- jScrollPane API to remove a jScrollPane that you have added to an element. Use the links below to
- initialise and destroy the jScrollPane.
- </p>
- <ul>
- <li><a href="#" id="jsp-destroy">Destroy</a></li>
- <li><a href="#" id="jsp-init">Initialise</a></li>
- </ul>
-
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <div class="scroll-pane horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/drag_size.html b/libs/bower_components/jScrollPane/drag_size.html
deleted file mode 100644
index 1b084c4c87..0000000000
--- a/libs/bower_components/jScrollPane/drag_size.html
+++ /dev/null
@@ -1,206 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane drag size demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane(
- {
- verticalDragMinHeight: 20,
- verticalDragMaxHeight: 20,
- horizontalDragMinWidth: 20,
- horizontalDragMaxWidth: 20
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - drag size demo</h1>
- <p>
- This example shows how you can use the <a href="settings.html#verticalDragMinHeight">
- verticalDragMinHeight</a>, <a href="settings.html#verticalDragMaxHeight">verticalDragMaxHeight</a>,
- <a href="settings.html#horizontalDragMinWidth">horizontalDragMinWidth</a> and
- <a href="settings.html#horizontalDragMaxWidth">horizontalDragMaxWidth</a> properties to control the
- size of the drag elements in the scrollbars. In this example I pass the same numbers in for min and max
- which has the effect of forcing the drag element to be that exact size.
- </p>
- <h2>Basic vertical jScrollPane with 20px drag</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Basic horizontal jScrollPane with 20px drag</h2>
- <div class="scroll-pane">
- <p style="width: 900px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Basic bi-directional jScrollPane with 20px drag</h2>
- <div class="scroll-pane">
- <p style="width: 900px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/dynamic_content.html b/libs/bower_components/jScrollPane/dynamic_content.html
deleted file mode 100644
index 4e476e6883..0000000000
--- a/libs/bower_components/jScrollPane/dynamic_content.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - dynamic content demo page</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- var settings = {
- showArrows: true
- };
- var pane = $('.scroll-pane')
- pane.jScrollPane(settings);
- var api = pane.data('jsp');
- var i = 1;
-
- // Every second add some new content...
- setInterval(
- function()
- {
- api.getContentPane().append(
- $('<p />').text('This is paragraph number ' + i++)
- );
- // we could call "pane.jScrollPane(settings)" again but it is
- // more convenient to call via the API as then the original
- // settings we passed in are automatically remembered.
- api.reinitialise();
- },
- 1000
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - dynamic content demo page</h1>
- <p>
- This demonstration shows how you can manually reinitialise jScrollPane when new content is added to it.
- Every second we add a new line of content to the scrollpane (using the <a href="api.html#getContentPane">
- getContentPane</a> API method) and then <a href="api.html#reinitialise">reinitialise</a> the scrollpane.
- As the <a href="settings.html#maintainPosition">maintainPosition</a> setting is true by default then
- the position of the scrollpane is maintained even if we are scrolling while the update happens.
- </p>
- <div class="scroll-pane">
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/dynamic_height.html b/libs/bower_components/jScrollPane/dynamic_height.html
deleted file mode 100644
index 6b05550b88..0000000000
--- a/libs/bower_components/jScrollPane/dynamic_height.html
+++ /dev/null
@@ -1,207 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane dynamic height demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- html,
- body
- {
- height: 100%;
- }
- #container
- {
- height: 100%;
- }
- pre
- {
- width: 95%;
- }
- .scroll-pane
- {
- width: 100%;
- height: 30%;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').each(
- function()
- {
- $(this).jScrollPane(
- {
- showArrows: $(this).is('.arrow')
- }
- );
- var api = $(this).data('jsp');
- var throttleTimeout;
- $(window).bind(
- 'resize',
- function()
- {
- // IE fires multiple resize events while you are dragging the browser window which
- // causes it to crash if you try to update the scrollpane on every one. So we need
- // to throttle it to fire a maximum of once every 50 milliseconds...
- if (!throttleTimeout) {
- throttleTimeout = setTimeout(
- function()
- {
- api.reinitialise();
- throttleTimeout = null;
- },
- 50
- );
- }
- }
- );
- }
- )
-
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - dynamic height demo</h1>
- <p>
- This demonstration builds on the <a href="dynamic_width.html">dynamic width</a> demo and shows how
- jScrollPane will also work correctly with elements which have a percentage height. Note that the rest
- of the infrastructure for this site isn't built for dynamic height so the code listings may overhang
- the bottom of their containing box. Also note (if your screen is big enough) that the scrollbars will
- automatically appear/ disappear as they become necessary or not (dependant on the content).
- </p>
-
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/dynamic_width.html b/libs/bower_components/jScrollPane/dynamic_width.html
deleted file mode 100644
index 90e5fdc085..0000000000
--- a/libs/bower_components/jScrollPane/dynamic_width.html
+++ /dev/null
@@ -1,368 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane dynamic width demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- #container
- {
- width: 60%;
- }
- pre
- {
- width: 95%;
- }
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
-
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').each(
- function()
- {
- $(this).jScrollPane(
- {
- showArrows: $(this).is('.arrow')
- }
- );
- var api = $(this).data('jsp');
- var throttleTimeout;
- $(window).bind(
- 'resize',
- function()
- {
- if (!throttleTimeout) {
- throttleTimeout = setTimeout(
- function()
- {
- api.reinitialise();
- throttleTimeout = null;
- },
- 50
- );
- }
- }
- );
- }
- )
-
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - dynamic width demo</h1>
- <p>
- This demonstration shows how jScrollPane can work correctly on elements whose width is specified as a
- percentage. Notice that the jScrollPanes reflow correctly as you resize your browser window. We are
- listening to the window resize event as we know that is what is causing the scrollpane's container to
- change size. You could just as easily use <a href="settings.html#autoReinitialise">autoReinitialise</a>
- so that the scrollpanes were updated automatically.
- </p>
-
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <div class="scroll-pane horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
-
- <h2>Vertical only (with arrows)</h2>
- <div class="scroll-pane arrow">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only (with arrows)</h2>
- <div class="scroll-pane arrow horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both (with arrows)</h2>
- <div class="scroll-pane arrow">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/events.html b/libs/bower_components/jScrollPane/events.html
deleted file mode 100644
index 235bab7ee5..0000000000
--- a/libs/bower_components/jScrollPane/events.html
+++ /dev/null
@@ -1,324 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane events demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane')
- .bind(
- 'jsp-initialised',
- function(event, isScrollable)
- {
- console.log('Handle jsp-initialised', this,
- 'isScrollable=', isScrollable);
- }
- )
- .bind(
- 'jsp-will-scroll-x',
- function(event, destX)
- {
- console.log(
- 'Handle jsp-will-scroll-x', this,
- 'destX=', destX
- );
- }
- )
- .bind(
- 'jsp-will-scroll-y',
- function(event, destY)
- {
- console.log(
- 'Handle jsp-will-scroll-y', this,
- 'destY=', destY
- );
- }
- )
- .bind(
- 'jsp-scroll-y',
- function(event, scrollPositionY, isAtTop, isAtBottom)
- {
- console.log('Handle jsp-scroll-y', this,
- 'scrollPositionY=', scrollPositionY,
- 'isAtTop=', isAtTop,
- 'isAtBottom=', isAtBottom);
- }
- )
- .bind(
- 'jsp-scroll-x',
- function(event, scrollPositionX, isAtLeft, isAtRight)
- {
- console.log('Handle jsp-scroll-x', this,
- 'scrollPositionX=', scrollPositionX,
- 'isAtLeft=', isAtLeft,
- 'isAtRight=', isAtRight);
- }
- )
- .bind(
- 'jsp-arrow-change',
- function(event, isAtTop, isAtBottom, isAtLeft, isAtRight)
- {
- console.log('Handle jsp-arrow-change', this,
- 'isAtTop=', isAtTop,
- 'isAtBottom=', isAtBottom,
- 'isAtLeft=', isAtLeft,
- 'isAtRight=', isAtRight);
- }
- )
- .bind(
- 'jsp-user-scroll-y',
- function(event, destTop, isAtTop, isAtBottom)
- {
- console.log(
- 'Handle jsp-user-scroll-y', this,
- 'destTop=', destTop,
- 'isAtTop=', isAtTop,
- 'isAtBottom=', isAtBottom
- );
- }
- )
- .bind(
- 'jsp-user-scroll-x',
- function(event, destLeft, isAtLeft, isAtRight)
- {
- console.log(
- 'Handle jsp-user-scroll-x', this,
- 'destLeft=', destLeft,
- 'isAtLeft=', isAtLeft,
- 'isAtRight=', isAtRight
- );
- }
- )
- .jScrollPane();
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - events demo page</h1>
- <p>
- This demonstration shows you the various events that are dispatched by jScrollPane. As you can see,
- the relevant data from each event is logged to the console (this page requires a browser that supports
- <em>console.log</em>).
- </p>
- <p>
- The available events are:
- </p>
- <ul class="link-list">
- <li>
- <strong>jsp-initialised [event, isScrollable]</strong> - Fires when an element is (re)initialised.
- </li>
- <li>
- <strong>jsp-scroll-y [event, scrollPositionY, isAtTop, isAtBottom]</strong> - Fires continuously
- whilst vertical scrolling is occuring
- </li>
- <li>
- <strong>jsp-scroll-x [event, scrollPositionX, isAtLeft, isAtRight]</strong> - Fires continuously
- whilst horizontal scrolling is occuring
- </li>
- <li>
- <strong>jsp-arrow-change [event, isAtTop, isAtBottom, isAtLeft, isAtRight]</strong> - Fires
- whenever the state of the arrow buttons changes (i.e. when the scroll reaches or leaves any end of
- the viewport). Note that this function isn't dependant on having <a href="settings.html#showArrows">
- showArrows</a> set to true, indeed it is most useful when implementing your own arrow keys.
- </li>
- <li>
- <strong>jsp-user-scroll-y [event, -destTop, isAtTop, isAtBottom]</strong> - Fires only when the
- scroll is caused by the user. Also, its fired after the actual scroll had happened.
- </li>
- <li>
- <strong>jsp-user-scroll-x [event, -destLeft, isAtLeft, isAtRight]</strong> - Fires only when the
- scroll is caused by the user. Also, its fired after the actual scroll had happened.
- </li>
- <li>
- <strong>jsp-will-scroll-y [event, destY]</strong> - Fired before the actual scroll had happened.
- This can be used to disable the scroll functionality if the event.preventDefault() is called.
- </li>
- <li>
- <strong>jsp-will-scroll-x [event, destX]</strong> - Fired before the actual scroll had happened.
- This can be used to disable the scroll functionality if the event.preventDefault() is called.
- </li>
- </ul>
-
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <div class="scroll-pane horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html>
diff --git a/libs/bower_components/jScrollPane/faqs.html b/libs/bower_components/jScrollPane/faqs.html
deleted file mode 100644
index 70cd8c1e2b..0000000000
--- a/libs/bower_components/jScrollPane/faqs.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - frequently asked questions</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - frequently asked questions</h1>
- <p>
- This page contains some frequently asked questions about jScrollPane and their answers.
- </p>
- <h2 id="webkit-broken">Why does my scrollbar only appear intermittantly in Webkit based browsers?</h2>
- <p>
- In Webkit based browsers (e.g. Safari, Chrome, iOS and Android) there is a known issue where you must
- include your CSS before your JS. <a href="known_issues.html#webkit-css-first">More info</a>.
- </p>
- <h2 id="ajax-disappearing-scrollbar">Why does my scrollbar disappear when I reinitialise my jScrollPane after updating the content with ajax?</h2>
- <p>
- jScrollPane version 2 places the scrollbar and associated controls <strong>inside</strong> the element you apply jScrollPane to. This means that
- any positional styling on the containing element continues to work correctly and also allows us to calculate size changes correctly when the
- parent element's size changes.
- </p>
- <p>
- Because of this you can't simply replace the contents of jScrollPane. Instead you need to use the <a href="api.html#getContentPane">
- getContentPane</a> API method as shown in the <a href="ajax.html">ajax</a> and <a href="dynamic_content.html">dynamic content</a> examples.
- </p>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/fixed_width.html b/libs/bower_components/jScrollPane/fixed_width.html
deleted file mode 100644
index 23aafe8661..0000000000
--- a/libs/bower_components/jScrollPane/fixed_width.html
+++ /dev/null
@@ -1,230 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane fixed width demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .width-marker
- {
- width: 300px;
- border-bottom: 15px solid #3333ff;
- margin: 0 0 1em;
- }
- .scroll-pane
- {
- width: 300px;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').before(
- $('<div class="width-marker" />')
- );
- $('.scroll-pane').jScrollPane();
- $('#reinit-link').bind(
- 'click',
- function()
- {
- // Using this form rather than the API simply because
- // it is easier to apply the same action to multiple
- // scrollpanes this way - they should be equivalent
- $('.scroll-pane').jScrollPane();
- return false;
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - fixed width demo page</h1>
- <p>
- This demonstration is to test a fix for a problem with elements who have a fixed width (as
- <a href="http://groups.google.com/group/jscrollpane/browse_thread/thread/a5955d3b77d56afb#msg_0867f38ede7398ce">
- reported</a> on the mailing list).
- </p>
- <p>
- When the panes are reinitialised (by clicking <a href="#" id="reinit-link">this link</a>) they should
- stay at their fixed width (300px).
- </p>
- <p>
- Note that I have also added blue bars marking 300px widths to double check that the scrollpane is
- displaying its content at the correct width.
- </p>
-
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <div class="scroll-pane horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/focus.html b/libs/bower_components/jScrollPane/focus.html
deleted file mode 100644
index ae38d46d00..0000000000
--- a/libs/bower_components/jScrollPane/focus.html
+++ /dev/null
@@ -1,207 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane tracking focus demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane();
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - demo page showing how focus is automatically tracked</h1>
- <p>
- This demonstration shows how jScrollPane can track the focus of focusble elements (e.g. form elements
- and links) within your scroll pane and automatically scroll so that the focused element is visible.
- </p>
- <form>
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum <a href="#">ante</a>. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <fieldset>
- <legend>Demo form</legend>
- <label for="input1">Input 1</label>
- <input type="text" id="input1" name="input1" />
- <label for="input2">Input 2</label>
- <textarea id="input2" name="input1"></textarea>
- <label for="input3">Input 3</label>
- <select id="input3" name="input3">
- <option>There is no option</option>
- </select>
- <input type="submit" value="Don't click me" />
- </fieldset>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et <a href="#">sapien</a> ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal and vertical</h2>
- <div class="scroll-pane">
- <p style="width: 900px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae <a href="#">ante</a>, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum . Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <fieldset>
- <legend>Demo form</legend>
- <label for="input1">Input 1</label>
- <input type="text" id="input1" name="input1" />
- <label for="input2">Input 2</label>
- <textarea id="input2" name="input1"></textarea>
- <label for="input3">Input 3</label>
- <select id="input3" name="input3">
- <option>There is no option</option>
- </select>
- <input type="submit" value="Don't click me" />
- </fieldset>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et <a href="#">sapien</a> ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </form>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/fullpage_scroll.html b/libs/bower_components/jScrollPane/fullpage_scroll.html
deleted file mode 100644
index 996f5e874b..0000000000
--- a/libs/bower_components/jScrollPane/fullpage_scroll.html
+++ /dev/null
@@ -1,259 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane demo - full page scrollpane</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- html
- {
- overflow: auto;
- }
- #full-page-container
- {
- overflow: auto;
- }
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- var win = $(window);
- // Full body scroll
- var isResizing = false;
- win.bind(
- 'resize',
- function()
- {
- if (!isResizing) {
- isResizing = true;
- var container = $('#full-page-container');
- // Temporarily make the container tiny so it doesn't influence the
- // calculation of the size of the document
- container.css(
- {
- 'width': 1,
- 'height': 1
- }
- );
- // Now make it the size of the window...
- container.css(
- {
- 'width': win.width(),
- 'height': win.height()
- }
- );
- isResizing = false;
- container.jScrollPane(
- {
- 'showArrows': true
- }
- );
- }
- }
- ).trigger('resize');
-
- // Workaround for known Opera issue which breaks demo (see
- // http://jscrollpane.kelvinluck.com/known_issues.html#opera-scrollbar )
- $('body').css('overflow', 'hidden');
-
- // IE calculates the width incorrectly first time round (it
- // doesn't count the space used by the native scrollbar) so
- // we re-trigger if necessary.
- if ($('#full-page-container').width() != win.width()) {
- win.trigger('resize');
- }
-
- // Internal scrollpanes
- $('.scroll-pane').jScrollPane({showArrows: true});
- });
- </script>
- </head>
- <body>
- <div id="full-page-container">
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - example with whole page scrolling and nested scrollbars</h1>
- <p>
- This example demonstrates how you can use jScrollPane to style the scrollbars for an entire
- document. It also demonstrates that jScrollPane works correctly when scrollbars are nested
- (i.e. when there is a jScrollPane inside another jScrollPane).
- </p>
-
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <div class="scroll-pane horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/iframe.html b/libs/bower_components/jScrollPane/iframe.html
deleted file mode 100644
index 6e58671f4e..0000000000
--- a/libs/bower_components/jScrollPane/iframe.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>iframe jScrollPane demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- iframe {
- width: 100%;
- height: 200px;
- border: 0;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- // No page specific javascript - see the sourcecode of the loaded content instead
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - example with iframes</h1>
- <p>
- This demonstration shows how you can apply jScrollPane to content in an iframe. Note that in this
- demo nothing is done in the hosting page (this one), all of the necessary javascript happens inside
- the loaded pages (e.g. <a href="iframe_content1.html">iframe_content1.html</a> and
- <a href="iframe_content2.html">iframe_content2.html</a>). Those pages basically use the same technique
- as in the <a href="fullpage_scroll.html">full page scroll</a> example.
- </p>
- <p>
- To implement this technique you don't need to add any code to the hosting page but you do need to have
- control over the pages which you load into the iframes. And each of those pages will need to include the
- relevant script files (e.g. jQuery, jScrollPane etc etc) as well as the document ready script as I show
- in my examples.
- </p>
-
- <h2>Vertical only</h2>
- <iframe src="iframe_content1.html"></iframe>
- <h2>Both</h2>
- <iframe src="iframe_content2.html"></iframe>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/iframe2.html b/libs/bower_components/jScrollPane/iframe2.html
deleted file mode 100644
index 07d4c92fa1..0000000000
--- a/libs/bower_components/jScrollPane/iframe2.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - alternative iframe demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .iframe-holder {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- iframe
- {
- border: 0;
- width: 100%;
- height: 100%;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('iframe').bind(
- 'load.jsp',
- function()
- {
- var doc = this.contentDocument || this.contentWindow.document;
- var jDoc = $(doc);
- //jDoc = $('body', doc);
- var frame = $(this);
- var destWidth = jDoc.width();
- var destHeight = jDoc.height();
-
- // Need to unbind the load event otherwise it is triggered again
- // when jScrollPane wraps the iframe which results in it being removed
- // from the document and added again.
- frame.unbind('load.jsp');
-
- if (destWidth > frame.width()) {
- // to allow for the scrollbar...
- // Should be possible more cleanly though
- destWidth += 16;
- }
- if (destHeight > frame.height()) {
- // to allow for the scrollbar...
- // Should be possible more cleanly though
- destHeight += 16;
- }
- frame.width(destWidth);
- frame.height(destHeight);
- frame.parent().jScrollPane();
- }
- );
- }
- );
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - alternative approach to implement jScrollPane with iframes</h1>
- <p>
- This demonstration shows a different approach to <a href="iframe.html">the first iframe demo</a> for
- styling the scrollbars associated with an iframe. This approach requires no special code inside the
- iframe content pages (e.g. <a href="iframe_content3.html">iframe_content3.html</a> and
- <a href="iframe_content4.html">iframe_content4.html</a>) and instead relies on the script in the hosting
- page (this page).
- </p>
- <p>
- This approach has some shortcomings though. The mousewheel doesn't work and the calculation of the width
- and height seems a little off...
- </p>
-
- <h2>Vertical only</h2>
- <div class="iframe-holder">
- <iframe src="iframe_content3.html"></iframe>
- </div>
- <h2>Both</h2>
- <div class="iframe-holder">
- <iframe src="iframe_content4.html"></iframe>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/iframe_content1.html b/libs/bower_components/jScrollPane/iframe_content1.html
deleted file mode 100644
index f0d42f6723..0000000000
--- a/libs/bower_components/jScrollPane/iframe_content1.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane iframe content</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- body
- {
- background: #fff;
- overflow: auto;
- height: 100%;
- }
- #content
- {
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- var win = $(window);
- // Full body scroll
- var isResizing = false;
- win.bind(
- 'resize',
- function()
- {
- if (!isResizing) {
- isResizing = true;
- var container = $('#content');
- // Temporarily make the container tiny so it doesn't influence the
- // calculation of the size of the document
- container.css(
- {
- 'width': 1,
- 'height': 1
- }
- );
- // Now make it the size of the window...
- container.css(
- {
- 'width': win.width(),
- 'height': win.height()
- }
- );
- isResizing = false;
- container.jScrollPane(
- {
- 'showArrows': true
- }
- );
- }
- }
- ).trigger('resize');
-
- // Workaround for known Opera issue which breaks demo (see
- // http://jscrollpane.kelvinluck.com/known_issues.html#opera-scrollbar )
- $('body').css('overflow', 'hidden');
-
- // IE calculates the width incorrectly first time round (it
- // doesn't count the space used by the native scrollbar) so
- // we re-trigger if necessary.
- if ($('#full-page-container').width() != win.width()) {
- win.trigger('resize');
- }
- });
- </script>
- </head>
- <body>
- <div id="content">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/iframe_content2.html b/libs/bower_components/jScrollPane/iframe_content2.html
deleted file mode 100644
index 2059b4f2e6..0000000000
--- a/libs/bower_components/jScrollPane/iframe_content2.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane iframe content 2</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- body
- {
- background: #fff;
- height: 100%;
- }
- .scroll-pane p
- {
- padding: 0 0 0 1em;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- var win = $(window);
- // Full body scroll
- var isResizing = false;
- win.bind(
- 'resize',
- function()
- {
- if (!isResizing) {
- isResizing = true;
- var container = $('#content');
- // Temporarily make the container tiny so it doesn't influence the
- // calculation of the size of the document
- container.css(
- {
- 'width': 1,
- 'height': 1
- }
- );
- // Now make it the size of the window...
- container.css(
- {
- 'width': win.width(),
- 'height': win.height()
- }
- );
- isResizing = false;
- container.jScrollPane(
- {
- 'showArrows': true
- }
- );
- }
- }
- ).trigger('resize');
-
- // Workaround for known Opera issue which breaks demo (see
- // http://jscrollpane.kelvinluck.com/known_issues.html#opera-scrollbar )
- $('body').css('overflow', 'hidden');
-
- // IE calculates the width incorrectly first time round (it
- // doesn't count the space used by the native scrollbar) so
- // we re-trigger if necessary.
- if ($('#full-page-container').width() != win.width()) {
- win.trigger('resize');
- }
- });
- </script>
- </head>
- <body>
- <div id="content">
- <p style="width: 900px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/iframe_content3.html b/libs/bower_components/jScrollPane/iframe_content3.html
deleted file mode 100644
index 7fbdc356c0..0000000000
--- a/libs/bower_components/jScrollPane/iframe_content3.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane iframe content 3</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- html,
- body
- {
- background: #fff;
- }
- </style>
-
- </head>
- <body>
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/iframe_content4.html b/libs/bower_components/jScrollPane/iframe_content4.html
deleted file mode 100644
index 294d766b57..0000000000
--- a/libs/bower_components/jScrollPane/iframe_content4.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane iframe content 4</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- html,
- body
- {
- background: #fff;
- }
- </style>
-
- </head>
- <body>
- <p style="width: 900px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/image.html b/libs/bower_components/jScrollPane/image.html
deleted file mode 100644
index 9c9055e64b..0000000000
--- a/libs/bower_components/jScrollPane/image.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane image demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 400px;
- overflow: auto;
- }
-
- img
- {
- margin: 1em 0;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane(
- {
- autoReinitialise: true
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - image demo page</h1>
- <p>
- This demonstration shows how jScrollPane can handle it when some slow loading images are included
- in the contents of the pane.
- </p>
- <p>
- We use <a href="settings.html#autoReinitialise">autoReinitialse</a> so that the scrollpane automatically
- re-calculates the size of it's content if and when it changes. Note that use of this property adds an
- overhead to your page and is subject to the same warnings on the <a href="auto_reinitialise.html">auto
- reinitialise demo</a> page.
- </p>
- <p>
- If you can it is better to include width and height for each image (either through width and height
- attributes or via CSS) in the markup. That way you can avoid the autoReinitialise cost. See
- <a href="image2.html">this demo</a> for an example of that approach.
- </p>
- <div class="scroll-pane">
- <img src="http://farm5.static.flickr.com/4068/4502147230_61d4f18460_z.jpg" alt="Touring" />
- <img src="http://farm5.static.flickr.com/4065/4501530717_8a7f9c8ce8_z.jpg" alt="Avalauncher" />
- <img src="http://farm5.static.flickr.com/4034/4502145190_d7ae16127b_z.jpg" alt="Rockies" />
- <img src="http://farm5.static.flickr.com/4003/4409969018_16cc9d8bf1_z.jpg" alt="Paper cranes" />
- <img src="http://farm5.static.flickr.com/4064/4407630907_1430d32efa_z.jpg" alt="Icecream">
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/image2.html b/libs/bower_components/jScrollPane/image2.html
deleted file mode 100644
index 476eaa51df..0000000000
--- a/libs/bower_components/jScrollPane/image2.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane image demo 2</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 400px;
- overflow: auto;
- }
-
- img
- {
- margin: 1em 0;
- }
-
- img.portrait
- {
- width: 480px;
- height: 640px;
- }
-
- img.landscape
- {
- width: 640px;
- height: 480px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane();
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - image demo page part 2</h1>
- <p>
- This demonstration shows how you can avoid the autoReinitialise overhead (as seen in the
- <a href="image.html">first image demo</a>) by fixing the width and height of the images inside your
- scroll pane.
- </p>
- <p>
- As you can see from the sourcecode for this page, you can set the width and height either through CSS or
- using width and height attributes on the image itself.
- </p>
- <div class="scroll-pane">
- <img src="http://farm5.static.flickr.com/4068/4502147230_61d4f18460_z.jpg" class="portrait" alt="Touring" />
- <img src="http://farm5.static.flickr.com/4065/4501530717_8a7f9c8ce8_z.jpg" class="landscape" alt="Avalauncher" />
- <img src="http://farm5.static.flickr.com/4034/4502145190_d7ae16127b_z.jpg" class="landscape" alt="Rockies" />
- <img src="http://farm5.static.flickr.com/4003/4409969018_16cc9d8bf1_z.jpg" width="640" height="480" alt="Paper cranes" />
- <img src="http://farm5.static.flickr.com/4064/4407630907_1430d32efa_z.jpg" width="480" height="640" alt="Icecream">
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/index.html b/libs/bower_components/jScrollPane/index.html
deleted file mode 100644
index be39c07e46..0000000000
--- a/libs/bower_components/jScrollPane/index.html
+++ /dev/null
@@ -1,319 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - cross browser styleable scrollbars with jQuery and CSS</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="#">Home</a></li>
- <li><a href="#examples">Examples</a></li>
- <li><a href="#themes">Themes</a></li>
- <li><a href="#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="#support">Support</a></li>
- <li><a href="#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - cross browser styleable scrollbars with jQuery and CSS</h1>
- <p class="intro">
- jScrollPane is a cross-browser <a href="http://jquery.com">jQuery</a> plugin by
- <a href="http://www.kelvinluck.com">Kelvin Luck</a> which converts a browser's default scrollbars (on
- elements with a relevant overflow property) into an HTML structure which can be easily skinned with CSS.
- </p>
- <p>
- jScrollPane is designed to be flexible but very easy to use. After you have <a href="#download">
- downloaded</a> and <a href="#usage">included</a> the relevant files
- in the head of your document all you need to to is call one javascript function to initialise the
- scrollpane. You can style the resultant scrollbars easily with CSS or choose from the existing
- <a href="#themes">themes</a>. There are a number of different <a href="#examples">examples</a> showcasing
- different features of jScrollPane and a number of ways for you to get <a href="#support">support</a>.
- </p>
-
- <h2 id="usage">How to use</h2>
- <p>
- It is very simple to use jScrollPane. You will need to <a href="#download">download</a> the necessary
- files and place them on your server. Then you just need to include the relevant files in the &lt;head&gt;
- of your document:
- </p>
- <pre>&lt;!-- styles needed by jScrollPane --&gt;
-&lt;link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" /&gt;
-
-&lt;!-- latest jQuery direct from google's CDN --&gt;
-&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"&gt;
-&lt;/script&gt;
-
-&lt;!-- the mousewheel plugin - optional to provide mousewheel support --&gt;
-&lt;script type="text/javascript" src="script/jquery.mousewheel.js"&gt;&lt;/script&gt;
-
-&lt;!-- the jScrollPane script --&gt;
-&lt;script type="text/javascript" src="script/jquery.jscrollpane.min.js"&gt;&lt;/script&gt;</pre>
- <p>
- Then you just need to initialise jScrollPane on document.ready (using a selector which will find the
- content you want to apply jScrollPane to):
- </p>
- <pre>$(function()
-{
- $('.scroll-pane').jScrollPane();
-});</pre>
- <p>
- There are plenty of different ways to use jScrollPane - either passing in different <a href="settings.html">
- settings</a> when you initialise it or by using the <a href="api.html">API</a>. Each of these different
- use cases is covered by an <a href="#examples">example</a> linked to from below.
- </p>
-
- <h2 id="download">Download</h2>
- <p>
- You can always find the latest code for jScrollPane on its <a href="http://github.com/vitch/jScrollPane">
- github</a> page. You can either check out this entire website (including all examples) via git, or you
- can use the handy github functionality to <a href="http://github.com/vitch/jScrollPane/archives/master">
- download a zip</a> of the repository.
- </p>
- <p>
- The particular files that you need are:
- </p>
- <ul class="link-list">
- <li>
- <a href="style/jquery.jscrollpane.css">jquery.jscrollpane.css</a> - the basic CSS styles that are
- needed for jScrollPane to work.
- </li>
- <li>
- <a href="http://www.jquery.com">The jQuery library</a> - although I recommend including this
- directly from a CDN like I do above and in all of the examples.
- </li>
- <li>
- <a href="script/jquery.mousewheel.js">jquery.mousewheel.js</a> - The
- <a href="http://github.com/brandonaaron/jquery-mousewheel/">jQuery mouseweel</a> plugin. This is
- optional but recommended, include it to allow people to scroll your content using their mouse wheel.
- </li>
- <li>
- <a href="script/mwheelIntent.js">mwheelIntent.js</a> - The
- <a href="http://www.protofunc.com/scripts/jquery/mwheelIntent/">mwheelIntent</a> plugin. This is
- totally optional but can increase the usability of the mousewheel in nested scroll areas.
- <a href="mwheel_intent.html">See demo</a>.
- </li>
- <li>
- <a href="script/jquery.jscrollpane.min.js">jquery.jscrollpane.min.js</a> - the actual javascript file
- for jScrollPane (you can also get the <a href="script/jquery.jscrollpane.js">unminified</a> version
- if yu want to see the sourcecode and read the comments).
- </li>
- </ul>
-
- <h2 id="examples">Simple examples/ tests</h2>
- <p>
- These examples show very basic functionality and exist so that I can test that any changes to
- jScrollPane work cross browser and don't cause any new problems. Note that these examples aren't meant
- to look pretty, they merely highlight different bits of functionaity which are available. If you want
- examples of jScrollPane looking good then check out the <a href="#themes">themes</a>.
- </p>
- <ul class="link-list">
- <li>
- <a href="basic.html">Demo</a> showing basic scrolling (horizontal, vertical and combined)
- </li>
- <li>
- <a href="arrows.html">Demo</a> showing basic scrolling (horizontal, vertical and combined) with
- arrow buttons
- </li>
- <li>
- <a href="focus.html">Demo</a> showing how the contents of the scrollpane is focused as you tab to it
- </li>
- <li>
- <a href="caps.html">Demo</a> showing how you can set "caps" and "gutters" to change the size and
- positioning of the scrollbar relative to the content it is scrolling
- </li>
- <li>
- <a href="drag_size.html">Demo</a> showing how you can restrict the minimum and maxium size of the
- drag part of the scrollbar
- </li>
- <li>
- <a href="arrow_hover.html">Demo</a> showing how the <a href="settings.html#arrowScrollOnHover">
- arrowScrollOnHover</a> option makes the arrow buttons automatically scroll the content when you
- hover over them
- </li>
- <li>
- <a href="arrow_positions.html">Demo</a> showing how the <a href="settings.html#verticalArrowPositions">
- verticalArrowPositions</a> and <a href="settings.html#horizontalArrowPositions">
- horizontalArrowPositions</a> options can change the position of the arrow buttons
- </li>
- <li>
- <a href="scroll_to.html">Demo</a> showing how you can use the <a href="api.html#scrollTo">scrollTo
- </a> and <a href="api.html#scrollBy">scrollBy</a> methods of the API
- </li>
- <li>
- <a href="scroll_to_animate.html">Demo</a> showing how you can use the <a href="api.html#scrollTo">
- scrollTo</a> and <a href="api.html#scrollBy">scrollBy</a> methods of the API along with the
- <a href="settings.html#animateScroll">animateScroll</a> which enables animation when scrolling
- </li>
- <li>
- <a href="anchors.html">Demo</a> showing how you can make internal links automatically scroll the
- scrollpane (and how <a href="anchors.html#para4">external links</a> can link directly into content
- within a jScrollPane)
- </li>
- <li>
- <a href="invisibles.html">Demo</a> showing that jScrollPane can work correctly on elements which are
- initially set to be invisible via CSS
- </li>
- <li>
- <a href="less_basic.html">Demo</a> showing vertical scrolling with multiple panes on the same page
- and adding dynamic content and then reinitialising one of the panes
- </li>
- <li>
- <a href="dynamic_content.html">Demo</a> showing how you can manually <a href="api.html#reinitialise">
- reinitialise</a> the scrollpane if you add dynamic content to it
- </li>
- <li>
- <a href="ajax.html">Demo</a> showing how you can change the content of your jScrollPane via an ajax
- call and can reinitialise the scrollpane once the new content has loaded
- </li>
- <li>
- <a href="auto_reinitialise.html">Demo</a> showing how jScrollPane can be set to automatically
- reinitialise itself on a timer via the <a href="settings.html#autoReinitialise">autoReinitialise</a>
- parameter
-
- </li>
- <li>
- <a href="image.html">Demo</a> showing how <a href="settings.html#autoReinitialise">autoReinitialise
- </a> can also be used so that content with images in it displays correctly in jScrollPane
- </li>
- <li>
- <a href="dynamic_width.html">Demo</a> showing how jScrollPane can be reinitialised when the width of
- it's container changes and will update to fill the available space
- </li>
- <li>
- <a href="dynamic_height.html">Demo</a> showing how jScrollPane can be reinitialised when the height
- of it's container changes and will update to fill the available space
- </li>
- <li>
- <a href="fullpage_scroll.html">Demo</a> showing how jScrollPane can be applied to an entire page
- so that the browser's default scrollbars for the page are replaced. This demo also shows that you
- can nest jScrollPanes and everything will still work correctly.
- </li>
- <li>
- <a href="iframe.html">Demo</a> showing how jScrollPane can be used to style the scrollbars in an
- iframe.
- </li>
- <li>
- <a href="scroll_on_left.html">Demo</a> showing how vertical scrollbars can also appear on the left
- hand side of content
- </li>
- <li>
- <a href="short.html">Demo</a> showing that no scrollbars are created when the content is too short
- to scroll
- </li>
- <li>
- <a href="events.html">Demo</a> showing the events that are dispatched by an element you apply
- jScrollPane to.
- </li>
- <li>
- <a href="https://github.com/bodrovis/jscrollpane-rails/">jscrollpane-rails</a> makes integrating jScrollPane
- with Rails apps easier.
- </li>
- </ul>
-
- <h2 id="themes">Themes</h2>
- <p>
- You can style jScrollPane however you like using simple CSS. To give you some ideas, here are a variety
- of different themes which you are free to <a href="#download">download</a> and use or modify:
- </p>
- <ul>
- <li><a href="themes/lozenge/">Lozenge</a> - lozenge shaped sliders and small arrow buttons</li>
- </ul>
-
- <h2 id="support">Support</h2>
- <p>
- Before trying to get support please check if your problem is a <a href="known_issues.html">known
- issue</a> or if it is mentioned in the <a href="faqs.html">FAQs</a>. If your issue is a new one and
- you can't find any information about it then you can try one of the following two options:
- </p>
- <ul>
- <li>
- <p>
- Using the <a href="http://stackoverflow.com">StackOverflow</a> site. This is probably the
- place you are most likely to get a quick answer as many Javascript experts spend time on
- the site. It also provides niceties like pretty formatting of posted sourcecode.
- </p>
- <p>
- If you ask a question on the site make sure you add the tags "jquery" and "jscrollpane" as
- I will be monitoring these tags to try to provide support.
- </p>
- </li>
- <li>
- <p>
- Through the <a href="http://groups.google.com/group/jscrollpane/">jScrollPane google group
- </a> - sign up and then you can start a discussion (either by email or through the web
- interface).
- </p>
- <p>
- Please remember to use the search field at the top of the group's homepage to search the
- archive to find out if your question has been answered before.
- </p>
- </li>
- </ul>
- <p>
- If you have contacted support and established that your problem is definitely a bug then you can
- <a href="http://github.com/vitch/jScrollPane/issues">raise an issue</a> on the project's github
- site.
- </p>
-
- <h2 id="history">History</h2>
- <p>
- jScrollPane was originally developed in December 2006. Since then it has been constantly updated to
- fix bugs and add new features. The change history since November 2008 is available in the jScrollPane
- <a href="http://github.com/vitch/jScrollPane">git repository</a>. In August 2010 a major rewrite was
- undertaken, starting from a blank canvas and adding long awaited features like horizontal scrolling
- and automatic reinitialisation. If you want to find old versions of jScrollPane then you can check out
- the <a href="changelog.html">changelog</a>.
- </p>
-
- <h2 id="credits">Credits</h2>
- <p>
- Thanks to <a href="http://www.hoppermagic.com">Hoppermagic</a> for creating the jScrollPane logo! And
- thanks to Mark Reed, Philip Leff and <a href="http://www.erwinodendaal.com">Erwin Odendaal</a> for
- sponsoring the development of v2 of this plugin (particularly to enable horizontal scrolling).
- </p>
-
- <h2 id="donate">Donate</h2>
- <p>
- jScrollPane is a personal project that is open source for anybody to use as they want to. If you (and
- your clients!) like jScrollPane then please consider donating to it's ongoing development. You can do
- so via Pledgie or Paypal using the images below:
- </p>
- <p style="margin-top: 0; float: left;">
- <a href='http://www.pledgie.com/campaigns/12524'>
- <img alt='Click here to lend your support to: jScrollPane and make a donation at www.pledgie.com !'
- src='http://www.pledgie.com/campaigns/12524.png?skin_name=chrome' border='0'
- />
- </a>
- </p>
- <form method="post" action="https://www.paypal.com/cgi-bin/webscr" style="margin: 15px 0 0 20px;">
- <input type="hidden" value="_donations" name="cmd">
- <input type="hidden" value="V2UG6D75CZ4SS" name="business">
- <input type="hidden" value="GB" name="lc">
- <input type="hidden" value="jScrollPane" name="item_name">
- <input type="hidden" value="GBP" name="currency_code">
- <input type="hidden" value="PP-DonationsBF:btn_donate_SM.gif:NonHosted" name="bn">
- <input type="image" alt="" name="submit" style="border: 0pt none;" src="https://www.paypal.com/en_GB/i/btn/btn_donate_SM.gif">
- <img height="1" border="0" width="1" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" style="padding: 0pt;" alt="">
- </form>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/invisibles.html b/libs/bower_components/jScrollPane/invisibles.html
deleted file mode 100644
index 33eabf6e00..0000000000
--- a/libs/bower_components/jScrollPane/invisibles.html
+++ /dev/null
@@ -1,523 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane demo showing jScrollPane working on elements which are initially display:none</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- ul.tabs
- {
- margin: 0 0 .5em;
- padding: 0;
- overflow: hidden;
- }
- ul.tabs li
- {
- list-style: none;
- float: left;
- margin: 0 1em 0 0;
- }
- ul.tabs li a
- {
- color: #fff;
- padding: 3px 5px;
- display: block;
- float: left;
- background: #8B8B9F;
-
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- }
- ul.tabs li a.active
- {
- background: #50506D;
- }
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- // Create the "tabs"
- $('.tabs').each(
- function()
- {
- var currentTab, ul = $(this);
- $(this).find('a').each(
- function(i)
- {
- var a = $(this).bind(
- 'click',
- function()
- {
- if (currentTab) {
- ul.find('a.active').removeClass('active');
- $(currentTab).hide();
- }
- currentTab = $(this).addClass('active')
- .attr('href');
- $(currentTab).show().jScrollPane();
- return false;
- }
- );
- $(a.attr('href')).hide();
- }
- );
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - demo showing jScrollPane working on elements which are initially display: none</h1>
- <p>
- This demo shows that jScrollPane works correctly on elements who are initially set to <strong>display:
- none</strong>. When the element is first shown you simply have to (re)initialise the scrollpane (or you
- could even use <a href="settings.html#autoReinitialise">autoReinitialise</a> if you like) and its width
- and height will be calculated correctly.
- </p>
- <p>
- Note that the majority of the custom javascript and CSS on this page is just to create basic "tabs"
- functionality where you can switch between different content on the page by clicking links. You don't
- need to do anything special for jScrollPane to work in this situation.
- </p>
-
- <h2>Vertical only</h2>
- <ul class="tabs">
- <li><a href="#pane1">Pane 1</a></li>
- <li><a href="#pane2">Pane 2</a></li>
- <li><a href="#pane3">Pane 3</a></li>
- </ul>
- <div class="scroll-pane" id="pane1">
- <p>
- <strong>ONE</strong> amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <div class="scroll-pane" id="pane2">
- <p>
- <strong>TWO</strong> amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <div class="scroll-pane" id="pane3">
- <p>
- <strong>THREE</strong> amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <ul class="tabs">
- <li><a href="#pane4">Pane 4</a></li>
- <li><a href="#pane5">Pane 5</a></li>
- <li><a href="#pane6">Pane 6</a></li>
- </ul>
- <div class="scroll-pane horizontal-only" id="pane4">
- <p style="width: 1000px;">
- <strong>FOUR</strong>, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <div class="scroll-pane horizontal-only" id="pane5">
- <p style="width: 1000px;">
- <strong>FIVE</strong>, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <div class="scroll-pane horizontal-only" id="pane6">
- <p style="width: 1000px;">
- <strong>SIX</strong>, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <ul class="tabs">
- <li><a href="#pane7">Pane 7</a></li>
- <li><a href="#pane8">Pane 8</a></li>
- <li><a href="#pane9">Pane 9</a></li>
- </ul>
- <div class="scroll-pane" id="pane7">
- <p style="width: 1000px">
- <strong>SEVEN</strong>, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <div class="scroll-pane" id="pane8">
- <p style="width: 1000px">
- <strong>EIGHT</strong>, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <div class="scroll-pane" id="pane9">
- <p style="width: 1000px">
- <strong>NINE</strong>, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/11/after.html b/libs/bower_components/jScrollPane/issues/11/after.html
deleted file mode 100644
index 775019be18..0000000000
--- a/libs/bower_components/jScrollPane/issues/11/after.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<meta name="verify-v1" content="ven67p9fXoMQpbw1icSXo8l+I5Z+upY90LnIqaPDgKo=" />
-<meta name="description" content="Tinyfish is the smallest progressive rock band in the world, self-taught, self-financed, and self-abusing - no, wait..." />
-<meta name="keywords" content="Tinyfish, Pink Floyd, Porcupine Tree, progrock, progressive rock, prog rock, prog, Marillion, King Crimson, Rush, The Big Red Spark, Curious Things" />
-<link href="brs_main.css" rel="stylesheet" type="text/css"/>
-<link type="text/css" href="../../style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-<title>latest news</title>
-<!-- compliance patch for microsoft browsers -->
-<!--[if lt IE 8]><script src="../__js/IE8.js" type="text/javascript"></script><![endif]-->
-<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
-<script type="text/javascript" src="../../script/jquery.mousewheel.js"></script>
-
-<script type="text/javascript" src="../../script/jquery.jscrollpane.js"></script>
-<script language="javascript" type="text/javascript">
-$(function()
-{
- $("#content").jScrollPane({
- showArrows: true
- });
-});
-</script>
-</head>
-<body class="nopage">
-<div id="content">
-<h1>news</h1>
-<p>After three years of toil, The new Tinyfish album, The Big Red Spark,
- is finally finished, and to celebrate, you'll be able to join us at The Luminaire
- in Kilburn for a very special gig to launch the album on an unsuspecting world.</p>
-<p>Although by this point, some people may already have suspected.</p>
-<p>Support will be provided by the excellent Dec Burke and his new band,
- Destroy All Monsters</p>
-<p>When: Friday, 10th September<br />
-
- Where: The Luminaire (click for map)<br />
- How much: &pound;10 in advance (&pound;8 CRS members advance) or &pound;12 on the door.<br />
- Doors open at 7:30.</p>
-<p>Tickets: www.linktoticket website.co.uk</p>
-</div>
-
-</body>
-
-</html>
diff --git a/libs/bower_components/jScrollPane/issues/11/before.html b/libs/bower_components/jScrollPane/issues/11/before.html
deleted file mode 100644
index ffcfa4ba8c..0000000000
--- a/libs/bower_components/jScrollPane/issues/11/before.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<meta name="verify-v1" content="ven67p9fXoMQpbw1icSXo8l+I5Z+upY90LnIqaPDgKo=" />
-<meta name="description" content="Tinyfish is the smallest progressive rock band in the world, self-taught, self-financed, and self-abusing - no, wait..." />
-<meta name="keywords" content="Tinyfish, Pink Floyd, Porcupine Tree, progrock, progressive rock, prog rock, prog, Marillion, King Crimson, Rush, The Big Red Spark, Curious Things" />
-<link href="brs_main.css" rel="stylesheet" type="text/css"/>
-<link type="text/css" href="jscrollpane-2b3.css" rel="stylesheet" media="all" />
-<title>latest news</title>
-<!-- compliance patch for microsoft browsers -->
-<!--[if lt IE 8]><script src="../__js/IE8.js" type="text/javascript"></script><![endif]-->
-<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
-<script type="text/javascript" src="jquery.mousewheel.js"></script>
-
-<script type="text/javascript" src="jscrollpane-2b3.js"></script>
-<script language="javascript" type="text/javascript">
-$(function()
-{
- $("#content").jScrollPane({
- showArrows: true
- });
-});
-</script>
-</head>
-<body class="nopage">
-<div id="content">
-<h1>news</h1>
-<p>After three years of toil, The new Tinyfish album, The Big Red Spark,
- is finally finished, and to celebrate, you'll be able to join us at The Luminaire
- in Kilburn for a very special gig to launch the album on an unsuspecting world.</p>
-<p>Although by this point, some people may already have suspected.</p>
-<p>Support will be provided by the excellent Dec Burke and his new band,
- Destroy All Monsters</p>
-<p>When: Friday, 10th September<br />
-
- Where: The Luminaire (click for map)<br />
- How much: &pound;10 in advance (&pound;8 CRS members advance) or &pound;12 on the door.<br />
- Doors open at 7:30.</p>
-<p>Tickets: www.linktoticket website.co.uk</p>
-</div>
-
-</body>
-
-</html>
diff --git a/libs/bower_components/jScrollPane/issues/11/brs_main.css b/libs/bower_components/jScrollPane/issues/11/brs_main.css
deleted file mode 100644
index d4bf825511..0000000000
--- a/libs/bower_components/jScrollPane/issues/11/brs_main.css
+++ /dev/null
@@ -1,301 +0,0 @@
-@charset "utf-8";
-/* CSS Document */
-@font-face {
- font-family: 'HelveticaNeueThin';
- src: url('helveticaneue-thin-webfont.eot');
- src: local(''), url('helveticaneue-thin-webfont.woff') format('woff'), url('helveticaneue-thin-webfont.ttf') format('truetype'), url('helveticaneue-thin-webfont.svg#webfont2SG3yTkB') format('svg');
- font-weight: normal;
- font-style: normal;
- font-variant: normal;
-}
-
-body {
- font-family: 'HelveticaNeueThin',Helvetica,Arial,sans-serif;
- font-weight: normal;
- font-style: normal;
- line-height: normal;
- font-size-adjust: 0.51;
- margin: 0px;
- color: #fff;
- background-color: #000;
- overflow:hidden;
-}
-
-P, A {
- font-size: 1em;
- line-height: 1.2em;
-}
-
-P {
- text-align: justify;
- margin-bottom: 1.0em;
-}
-
-a:active {color:#e0262f; text-decoration: none;} /* selected link */
-a:visited {color:#c62128; text-decoration: none;} /* visited link */
-a:link {color:#d2232a; text-decoration: none;} /* unvisited link */
-a:hover {color:#df262e; text-decoration: underline;} /* mouse over link */
-
-LI LI, LI LI A, TD, TD P, BLOCKQUOTE P {
- font-size: 1em;
- line-height: 1.2em;
-}
-
-TABLE {
- border: none;
-}
-
-TD {
- vertical-align: top;
- padding: 0px;
-}
-
-A {
- outline: none;
-}
-
-A IMG {
- border: none;
-}
-
-object { outline:none; }
-
-.red {
- color: #d2232a;
-}
-
-STRONG {
- color: #d2232a;
- font-weight: bold;
-}
-
-h1,h2,h3,h4,h5 {
- color: #d2232a;
-}
-
-h1 {
- font-size: 1.6em;
- font-weight: normal;
- font-style: normal;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-h2 {
- font-size: 1.3em;
- font-weight: normal;
- font-style: italic;
- margin-top: 0.8em;
- margin-bottom: 0px;
-}
-
-h5 {
- font-size: 0.8em;
- margin: 0.5em 0px 0px 0px;
-}
-
-hr {
- color: #ff0000;
-}
-
-/* ----------------- begin supersize --------------------- */
-
-#loading {
- position: absolute;
- top: 49.5%;
- left: 49.5%;
- z-index: 5;
- width: 24px;
- height: 24px;
- text-indent: -999em;
- background-image: url('../__imgs/furn/loading.gif');
-}
-
-#supersize {
- position:fixed;
-}
-
-#supersize img, #supersize a {
- height:100%;
- width:100%;
- position:absolute;
- z-index: 0;
-}
-
-#supersize img {
- image-rendering: optimizeQuality; /* Firefox 3.6+; default behavior is identical, no need to specify */
- -ms-interpolation-mode: bicubic; /* Internet Explorer 7.0; default in IE8+ */
-}
-
-#supersize .prevslide, #supersize .prevslide img {
- z-index: 1;
-}
-
-#supersize .activeslide, #supersize .activeslide img {
- z-index: 2;
-}
-
-/* ------------------ end supersize ---------------------- */
-
-/* ------------------- begin header ---------------------- */
-
-#header {
- position: absolute;
- top: 15px;
- width: 100%;
- margin: 0px auto;
- z-index: 4;
- text-align: center;
-}
-
-#header p {
- text-align: center;
- margin-top: 0.5em;
- }
-
-/* -------------------- end header ----------------------- */
-
-/* ------------------- begin content --------------------- */
-
-#content {
- z-index: 3;
- background-color: #000;
- background-color: rgba(0,0,0,0.9);
- position: absolute;
- left: 0px;
- bottom: 17%;
- height: 62%;
- width: 45%;
- border: 1px solid #555;
- border-left: 0px;
- padding: 0px;
- padding-left: 30px;
- padding-right: 20px;
- overflow: auto;
-}
-
-.frontpage #content {
- visibility: hidden;
-}
-
-.gallerypage #content {
- border: none;
- width: 100%;
- height: 33em;
- bottom: 15%;
- padding: 0px;
- margin: 0px;
-}
-
-.gallerypage #content p {
- text-align: center;
-}
-
-.videopage #content {
- border: none;
- width: 100%;
- height: 65%;
- bottom: 15%;
- padding: 0px;
- margin: 0px;
-}
-
-.videopage #content p {
- text-align: center;
-}
-
-
-/* -------------------- end content ---------------------- */
-
-/* ----------------- begin navigation -------------------- */
-
-#navigate {
- position: absolute;
- height: 4em;
- width: 100%;
- padding: 0px;
- margin: 0px auto;
- bottom: 5%;
- z-index: 3;
- background-color: #000;
- background-color: rgba(0,0,0,0.9);
- border: 1px solid #555;
- border-left: 0px;
- border-right: 0px;
-}
-
-#nav, #nav ul {
- margin: 0px;
- padding: 0px;
- list-style-type: none;
- list-style-position: outside;
- position: relative;
- line-height: 1.6em;
-}
-
-#nav {
- padding: 0.4em;
-}
-
-#nav a {
- display: block;
- height: 1.6em;
- padding: 0px 10px;
- text-decoration:none;
- line-height: 1.6em;
- background-color: #000;
- background-color: rgba(0,0,0,0.9); /* bug in Opera!!! */
-}
-
-#nav a:link, #nav a:active, #nav a:visited {
- color: #fff;
-}
-
-#nav a:hover {
- color: #d2232a;
-}
-
-#nav li {
- float: left;
- font-size: 1em;
- line-height: 1.6em;
-}
-
-#nav ul {
- position:absolute;
- display: none;
-}
-
-#nav ul li a {
- float: left;
- font-size: 1em;
- line-height: 1.6em;
-}
-
-#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li:hover ul ul ul ul {
- display: none;
-}
-
-#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li li li li:hover ul {
- display: block;
- height: 1.6em;
-}
-
-/* ------------------ end navigation --------------------- */
-
-/* ------------------ begin viewcart --------------------- */
-
-#viewcart {
- z-index: 4;
- background-color: #000;
- background-color: rgba(0,0,0,0.9);
- position: absolute;
- right: 10px;
- bottom: 5.5%;
- height: 51px;
- width: 130px;
- padding: 0px;
- overflow: hidden;
-}
-
-/* ------------------- end viewcart ---------------------- */
diff --git a/libs/bower_components/jScrollPane/issues/11/index.html b/libs/bower_components/jScrollPane/issues/11/index.html
deleted file mode 100644
index e42743a385..0000000000
--- a/libs/bower_components/jScrollPane/issues/11/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - issue 11</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="../../style/demo.css" rel="stylesheet" media="all" />
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="../../script/demo.js"></script>
- </head>
- <body>
- <div id="top-nav">
- <img src="../../image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="../../index.html">Home</a></li>
- <li><a href="../../index.html#examples">Examples</a></li>
- <li><a href="../../index.html#themes">Themes</a></li>
- <li><a href="../../index.html#usage">How to use</a></li>
- <li><a href="../../faqs.html">FAQs</a></li>
- <li><a href="../../known_issues.html">Known issues</a></li>
- <li><a href="../../index.html#support">Support</a></li>
- <li><a href="../../index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - issue 11</h1>
- <p>
- This page demonstrates the bug described in <a href="http://github.com/vitch/jScrollPane/issues#issue/11">
- issue 11</a> as reported (with nice striped down test cases) by
- <a href="http://groups.google.com/group/jscrollpane/browse_thread/thread/09d5097b536d7064">TinyFish</a>.
- </p>
- <ul class="link-list">
- <li>
- <a href="before.html">Before</a> - showing the bug as it appears in the version of jScrollPane which
- was current when it was reported.
- </li>
- <li>
- <a href="native.html">Native</a> - showing how the page looks with native scrollbars (i.e. if
- jScrollPane isn't initialised).
- </li>
- <li>
- <a href="after.html">After</a> - showing the page which was displaying the bug with the latest
- version of jScrollPane.
- </li>
- </ul>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/11/jquery.mousewheel.js b/libs/bower_components/jScrollPane/issues/11/jquery.mousewheel.js
deleted file mode 100644
index 27ed2f102f..0000000000
--- a/libs/bower_components/jScrollPane/issues/11/jquery.mousewheel.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
- * Licensed under the MIT License (LICENSE.txt).
- *
- * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
- * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
- * Thanks to: Seamus Leahy for adding deltaX and deltaY
- *
- * Version: 3.0.3
- *
- * Requires: 1.2.2+
- */
-
-(function($) {
-
-var types = ['DOMMouseScroll', 'mousewheel'];
-
-$.event.special.mousewheel = {
- setup: function() {
- if ( this.addEventListener ) {
- for ( var i=types.length; i; ) {
- this.addEventListener( types[--i], handler, false );
- }
- } else {
- this.onmousewheel = handler;
- }
- },
-
- teardown: function() {
- if ( this.removeEventListener ) {
- for ( var i=types.length; i; ) {
- this.removeEventListener( types[--i], handler, false );
- }
- } else {
- this.onmousewheel = null;
- }
- }
-};
-
-$.fn.extend({
- mousewheel: function(fn) {
- return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
- },
-
- unmousewheel: function(fn) {
- return this.unbind("mousewheel", fn);
- }
-});
-
-
-function handler(event) {
- var orgEvent = event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
-
- event = $.event.fix(event || window.event);
- event.type = "mousewheel";
-
- // Old school scrollwheel delta
- if ( event.wheelDelta ) { delta = event.wheelDelta/120; }
- if ( event.detail ) { delta = -event.detail/3; }
-
- // New school multidimensional scroll (touchpads) deltas
- deltaY = delta;
-
- // Gecko
- if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
- deltaY = 0;
- deltaX = -1*delta;
- }
-
- // Webkit
- if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
- if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
-
- // Add event and delta to the front of the arguments
- args.unshift(event, delta, deltaX, deltaY);
-
- return $.event.handle.apply(this, args);
-}
-
-})(jQuery); \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/11/jscrollpane-2b3.css b/libs/bower_components/jScrollPane/issues/11/jscrollpane-2b3.css
deleted file mode 100644
index 4b91ece526..0000000000
--- a/libs/bower_components/jScrollPane/issues/11/jscrollpane-2b3.css
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * CSS Styles that are needed by jScrollPane for it to operate correctly.
- *
- * Include this stylesheet in your site or copy and paste the styles below into your stylesheet - jScrollPane
- * may not operate correctly without them.
- */
-
-.jspContainer
-{
- overflow: hidden;
- position: relative;
-}
-
-.jspPane
-{
- position: absolute;
-}
-
-.jspVerticalBar
-{
- position: absolute;
- top: 0;
- right: 0;
- width: 16px;
- height: 100%;
- background: red;
-}
-
-.jspHorizontalBar
-{
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 16px;
- background: red;
-}
-
-.jspVerticalBar *,
-.jspHorizontalBar *
-{
- margin: 0;
- padding: 0;
-}
-
-.jspCap
-{
- display: none;
-}
-
-.jspHorizontalBar .jspCap
-{
- float: left;
-}
-
-.jspTrack
-{
- background: #000 url(../__imgs/furn/track.gif) repeat-y center;
- position: relative;
-}
-
-.jspDrag
-{
- background: #666;
- border: solid #aaa 2px;
- position: relative;
- top: 0;
- left: 0;
- cursor: pointer;
-}
-
-.jspHorizontalBar .jspTrack,
-.jspHorizontalBar .jspDrag
-{
- float: left;
- height: 100%;
-}
-
-.jspArrow
-{
- background-color: rgba(0,0,0,0.9);
- text-indent: -20000px;
- display: block;
- cursor: pointer;
-}
-
-.jspArrowUp
-{
- background-image: url("../__imgs/furn/arrow_up.gif");
-}
-
-.jspArrowDown
-{
- background-image: url("../__imgs/furn/arrow_down.gif");
-}
-
-.jspArrow.jspDisabled
-{
- cursor: default;
- background: #80808d;
-}
-
-.jspArrowUp.jspDisabled
-{
- cursor: default;
- background-image: url("../__imgs/furn/arrow_up.gif");
-}
-
-.jspArrowDown.jspDisabled
-{
- cursor: default;
- background-image: url("../__imgs/furn/arrow_down.gif");
-}
-
-.jspVerticalBar .jspArrow
-{
- height: 16px;
-}
-
-.jspHorizontalBar .jspArrow
-{
- width: 16px;
- float: left;
- height: 100%;
-}
-
-.jspVerticalBar .jspArrow:focus
-{
- outline: none;
-}
-
-.jspCorner
-{
- background: #eeeef4;
- float: left;
- height: 100%;
-}
-
-/* Yuk! CSS Hack for IE6 3 pixel bug :( */
-* html .jspCorner
-{
- margin: 0 -3px 0 0;
-} \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/11/jscrollpane-2b3.js b/libs/bower_components/jScrollPane/issues/11/jscrollpane-2b3.js
deleted file mode 100644
index b87f97e107..0000000000
--- a/libs/bower_components/jScrollPane/issues/11/jscrollpane-2b3.js
+++ /dev/null
@@ -1,1063 +0,0 @@
-/*!
- * jScrollPane - v2.0.0beta3 - 2010-08-27
- * http://jscrollpane.kelvinluck.com/
- *
- * Copyright (c) 2010 Kelvin Luck
- * Dual licensed under the MIT or GPL licenses.
- */
-
-// Script: jScrollPane - cross browser customisable scrollbars
-//
-// *Version: 2.0.0beta3, Last updated: 2010-08-27*
-//
-// Project Home - http://jscrollpane.kelvinluck.com/
-// GitHub - http://github.com/vitch/jScrollPane
-// Source - http://github.com/vitch/jScrollPane/raw/master/script/jquery.jscrollpane.js
-// (Minified) - http://github.com/vitch/jScrollPane/raw/master/script/jquery.jscrollpane.min.js
-//
-// About: License
-//
-// Copyright (c) 2010 Kelvin Luck
-// Dual licensed under the MIT or GPL Version 2 licenses.
-// http://jscrollpane.kelvinluck.com/MIT-LICENSE.txt
-// http://jscrollpane.kelvinluck.com/GPL-LICENSE.txt
-//
-// About: Examples
-//
-// All examples and demos are available through the jScrollPane example site at:
-// http://jscrollpane.kelvinluck.com/
-//
-// About: Support and Testing
-//
-// This plugin is tested on the browsers below and has been found to work reliably on them. If you run
-// into a problem on one of the supported browsers then please visit the support section on the jScrollPane
-// website (http://jscrollpane.kelvinluck.com/) for more information on getting support. You are also
-// welcome to fork the project on GitHub if you can contribute a fix for a given issue.
-//
-// jQuery Versions - 1.4.2
-// Browsers Tested - Firefox 3.6.8, Safari 5, Opera 10.6, Chrome 5.0, IE 6, 7, 8
-//
-// About: Release History
-//
-// 2.0.0beta3 - (2010-08-27) Horizontal mousewheel, mwheelIntent, keyboard support, bug fixes
-// 2.0.0beta2 - (2010-08-21) Bug fixes
-// 2.0.0beta1 - (2010-08-17) Rewrite to follow modern best practices and enable horizontal scrolling, initially hidden
-// elements and dynamically sized elements.
-// 1.x - (2006-12-31 - 2010-07-31) Initial version, hosted at googlecode, deprecated
-
-(function($,window,undefined){
-
- $.fn.jScrollPane = function(settings)
- {
- // JScrollPane "class" - public methods are available through $('selector').data('jsp')
- function JScrollPane(elem, s)
- {
-
- var settings, jsp = this, pane, paneWidth, paneHeight, container, contentWidth, contentHeight,
- percentInViewH, percentInViewV, isScrollableV, isScrollableH, verticalDrag, dragMaxY,
- verticalDragPosition, horizontalDrag, dragMaxX, horizontalDragPosition,
- verticalBar, verticalTrack, scrollbarWidth, verticalTrackHeight, verticalDragHeight, arrowUp, arrowDown,
- horizontalBar, horizontalTrack, horizontalTrackWidth, horizontalDragWidth, arrowLeft, arrowRight,
- reinitialiseInterval, originalPadding, originalPaddingTotalWidth, previousPaneWidth,
- wasAtTop = true, wasAtLeft = true, wasAtBottom = false, wasAtRight = false,
- mwEvent = $.fn.mwheelIntent ? 'mwheelIntent.jsp' : 'mousewheel.jsp';
-
- originalPadding = elem.css('paddingTop') + ' ' +
- elem.css('paddingRight') + ' ' +
- elem.css('paddingBottom') + ' ' +
- elem.css('paddingLeft');
- originalPaddingTotalWidth = (parseInt(elem.css('paddingLeft')) || 0) +
- (parseInt(elem.css('paddingRight')) || 0);
-
- initialise(s);
-
- function initialise(s)
- {
-
- var clonedElem, tempWrapper, /*firstChild, lastChild, */isMaintainingPositon, lastContentX, lastContentY,
- hasContainingSpaceChanged;
-
- settings = s;
-
- if (pane == undefined) {
-
- elem.css(
- {
- 'overflow': 'hidden',
- 'padding': 0
- }
- );
- // TODO: Deal with where width/ height is 0 as it probably means the element is hidden and we should
- // come back to it later and check once it is unhidden...
- paneWidth = elem.innerWidth() + originalPaddingTotalWidth;
- paneHeight = elem.innerHeight();
-
- elem.width(paneWidth);
-
- pane = $('<div class="jspPane" />').wrap(
- $('<div class="jspContainer" />')
- .css({
- 'width': paneWidth + 'px',
- 'height': paneHeight + 'px'
- }
- )
- );
-
- elem.wrapInner(pane.parent());
- // Need to get the vars after being added to the document, otherwise they reference weird
- // disconnected orphan elements...
- container = elem.find('>.jspContainer');
- pane = container.find('>.jspPane');
- pane.css('padding', originalPadding);
-
- /*
- // Move any margins from the first and last children up to the container so they can still
- // collapse with neighbouring elements as they would before jScrollPane
- firstChild = pane.find(':first-child');
- lastChild = pane.find(':last-child');
- elem.css(
- {
- 'margin-top': firstChild.css('margin-top'),
- 'margin-bottom': lastChild.css('margin-bottom')
- }
- );
- firstChild.css('margin-top', 0);
- lastChild.css('margin-bottom', 0);
- */
- } else {
-
- elem.css('width', null);
-
- hasContainingSpaceChanged = elem.outerWidth() + originalPaddingTotalWidth != paneWidth || elem.outerHeight() != paneHeight;
-
- if (hasContainingSpaceChanged) {
- paneWidth = elem.innerWidth() + originalPaddingTotalWidth;
- paneHeight = elem.innerHeight();
- container.css({
- 'width': paneWidth + 'px',
- 'height': paneHeight + 'px'
- });
- }
-
- previousPaneWidth = pane.innerWidth();
-
- if (!hasContainingSpaceChanged && pane.outerWidth() == contentWidth && pane.outerHeight() == contentHeight) {
- // Nothing has changed since we last initialised
- if (isScrollableH || isScrollableV) { // If we had already set a width then re-set it
- pane.css('width', previousPaneWidth + 'px');
- elem.css('width', (previousPaneWidth + originalPaddingTotalWidth) + 'px');
- }
- // Then abort...
- return;
- }
-
- pane.css('width', null);
- elem.css('width', (paneWidth + originalPaddingTotalWidth) + 'px');
-
- container.find('>.jspVerticalBar,>.jspHorizontalBar').remove().end();
- }
-
- // Unfortunately it isn't that easy to find out the width of the element as it will always report the
- // width as allowed by its container, regardless of overflow settings.
- // A cunning workaround is to clone the element, set its position to absolute and place it in a narrow
- // container. Now it will push outwards to its maxium real width...
- clonedElem = pane.clone().css('position', 'absolute');
- tempWrapper = $('<div style="width:1px; position: relative;" />').append(clonedElem);
- $('body').append(tempWrapper);
- contentWidth = Math.max(pane.outerWidth(), clonedElem.outerWidth());
- tempWrapper.remove();
-
- contentHeight = pane.outerHeight(true);
- /*alert(contentHeight); */
- percentInViewH = contentWidth / paneWidth;
- percentInViewV = contentHeight / paneHeight;
- isScrollableV = percentInViewV > 1;
-
- isScrollableH = percentInViewH > 1;
-
- //console.log(paneWidth, paneHeight, contentWidth, contentHeight, percentInViewH, percentInViewV, isScrollableH, isScrollableV);
-
- if (!(isScrollableH || isScrollableV)) {
- elem.removeClass('jspScrollable');
- pane.css({
- 'top': 0,
- 'width': container.width() + 'px'
- });
- removeMousewheel();
- removeFocusHandler();
- removeKeyboardNav();
- unhijackInternalLinks();
- } else {
- elem.addClass('jspScrollable');
-
- isMaintainingPositon = settings.maintainPosition && (verticalDragPosition || horizontalDragPosition);
- if (isMaintainingPositon) {
- lastContentX = contentPositionX();
- lastContentY = contentPositionY();
- }
-
- initialiseVerticalScroll();
- initialiseHorizontalScroll();
- resizeScrollbars();
-
- if (isMaintainingPositon) {
- scrollToX(lastContentX);
- scrollToY(lastContentY);
- }
-
- initFocusHandler();
- initMousewheel();
- if (settings.enableKeyboardNavigation) {
- initKeyboardNav();
- }
-
- observeHash();
- if (settings.hijackInternalLinks) {
- hijackInternalLinks();
- }
- }
-
- if (settings.autoReinitialise && !reinitialiseInterval) {
- reinitialiseInterval = setInterval(
- function()
- {
- initialise(settings);
- },
- settings.autoReinitialiseDelay
- );
- } else if (!settings.autoReinitialise && reinitialiseInterval) {
- clearInterval(reinitialiseInterval)
- }
-
- elem.trigger('jsp-initialised', [isScrollableH || isScrollableV]);
- }
-
- function initialiseVerticalScroll()
- {
- if (isScrollableV) {
-
- container.append(
- $('<div class="jspVerticalBar" />').append(
- $('<div class="jspCap jspCapTop" />'),
- $('<div class="jspTrack" />').append(
- $('<div class="jspDrag" />').append(
- $('<div class="jspDragTop" />'),
- $('<div class="jspDragBottom" />')
- )
- ),
- $('<div class="jspCap jspCapBottom" />')
- )
- );
-
- verticalBar = container.find('>.jspVerticalBar');
- verticalTrack = verticalBar.find('>.jspTrack');
- verticalDrag = verticalTrack.find('>.jspDrag');
-
- if (settings.showArrows) {
- arrowUp = $('<a class="jspArrow jspArrowUp" />').bind(
- 'mousedown.jsp', getArrowScroll(0, -1)
- ).bind('click.jsp', nil);
- arrowDown = $('<a class="jspArrow jspArrowDown" />').bind(
- 'mousedown.jsp', getArrowScroll(0, 1)
- ).bind('click.jsp', nil);
- if (settings.arrowScrollOnHover) {
- arrowUp.bind('mouseover.jsp', getArrowScroll(0, -1, arrowUp));
- arrowDown.bind('mouseover.jsp', getArrowScroll(0, 1, arrowDown));
- }
-
- appendArrows(verticalTrack, settings.verticalArrowPositions, arrowUp, arrowDown);
- }
-
- verticalTrackHeight = paneHeight;
- container.find('>.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow').each(
- function()
- {
- verticalTrackHeight -= $(this).outerHeight();
- }
- );
-
-
- verticalDrag.hover(
- function()
- {
- verticalDrag.addClass('jspHover');
- },
- function()
- {
- verticalDrag.removeClass('jspHover');
- }
- ).bind(
- 'mousedown.jsp',
- function(e)
- {
- // Stop IE from allowing text selection
- $('html').bind('dragstart.jsp selectstart.jsp', function() { return false; });
-
- verticalDrag.addClass('jspActive');
-
- var startY = e.pageY - verticalDrag.position().top;
-
- $('html').bind(
- 'mousemove.jsp',
- function(e)
- {
- positionDragY(e.pageY - startY, false);
- }
- ).bind('mouseup.jsp mouseleave.jsp', cancelDrag);
- return false;
- }
- );
- sizeVerticalScrollbar();
- updateVerticalArrows();
- }
- }
-
- function sizeVerticalScrollbar()
- {
- verticalTrack.height(verticalTrackHeight + 'px');
- verticalDragPosition = 0;
- scrollbarWidth = settings.verticalGutter + verticalTrack.outerWidth();
-
- // Make the pane thinner to allow for the vertical scrollbar
- pane.width(paneWidth - scrollbarWidth - originalPaddingTotalWidth);
-
- // Add margin to the left of the pane if scrollbars are on that side (to position
- // the scrollbar on the left or right set it's left or right property in CSS)
- if (verticalBar.position().left == 0) {
- pane.css('margin-left', scrollbarWidth + 'px');
- }
- }
-
- function initialiseHorizontalScroll()
- {
- if (isScrollableH) {
-
- container.append(
- $('<div class="jspHorizontalBar" />').append(
- $('<div class="jspCap jspCapLeft" />'),
- $('<div class="jspTrack" />').append(
- $('<div class="jspDrag" />').append(
- $('<div class="jspDragLeft" />'),
- $('<div class="jspDragRight" />')
- )
- ),
- $('<div class="jspCap jspCapRight" />')
- )
- );
-
- horizontalBar = container.find('>.jspHorizontalBar');
- horizontalTrack = horizontalBar.find('>.jspTrack');
- horizontalDrag = horizontalTrack.find('>.jspDrag');
-
- if (settings.showArrows) {
- arrowLeft = $('<a class="jspArrow jspArrowLeft" />').bind(
- 'mousedown.jsp', getArrowScroll(-1, 0)
- ).bind('click.jsp', nil);
- arrowRight = $('<a class="jspArrow jspArrowRight" />').bind(
- 'mousedown.jsp', getArrowScroll(1, 0)
- ).bind('click.jsp', nil);
- if (settings.arrowScrollOnHover) {
- arrowLeft.bind('mouseover.jsp', getArrowScroll(-1, 0, arrowLeft));
- arrowRight.bind('mouseover.jsp', getArrowScroll(1, 0, arrowRight));
- }
- appendArrows(horizontalTrack, settings.horizontalArrowPositions, arrowLeft, arrowRight);
- }
-
- horizontalDrag.hover(
- function()
- {
- horizontalDrag.addClass('jspHover');
- },
- function()
- {
- horizontalDrag.removeClass('jspHover');
- }
- ).bind(
- 'mousedown.jsp',
- function(e)
- {
- // Stop IE from allowing text selection
- $('html').bind('dragstart.jsp selectstart.jsp', function() { return false; });
-
- horizontalDrag.addClass('jspActive');
-
- var startX = e.pageX - horizontalDrag.position().left;
-
- $('html').bind(
- 'mousemove.jsp',
- function(e)
- {
- positionDragX(e.pageX - startX, false);
- }
- ).bind('mouseup.jsp mouseleave.jsp', cancelDrag);
- return false;
- }
- );
- horizontalTrackWidth = container.innerWidth();
- sizeHorizontalScrollbar();
- updateHorizontalArrows();
- } else {
- // no horizontal scroll
- }
- }
-
- function sizeHorizontalScrollbar()
- {
-
- container.find('>.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow').each(
- function()
- {
- horizontalTrackWidth -= $(this).outerWidth();
- }
- );
-
- horizontalTrack.width(horizontalTrackWidth + 'px');
- horizontalDragPosition = 0;
- }
-
- function resizeScrollbars()
- {
- if (isScrollableH && isScrollableV) {
- var horizontalTrackHeight = horizontalTrack.outerHeight(),
- verticalTrackWidth = verticalTrack.outerWidth();
- verticalTrackHeight -= horizontalTrackHeight;
- $(horizontalBar).find('>.jspCap:visible,>.jspArrow').each(
- function()
- {
- horizontalTrackWidth += $(this).outerWidth();
- }
- );
- horizontalTrackWidth -= verticalTrackWidth;
- paneHeight -= verticalTrackWidth;
- paneWidth -= horizontalTrackHeight;
- horizontalTrack.parent().append(
- $('<div class="jspCorner" />').css('width', horizontalTrackHeight + 'px')
- );
- sizeVerticalScrollbar();
- sizeHorizontalScrollbar();
- }
- // reflow content
- if (isScrollableH) {
- pane.width((container.outerWidth() - originalPaddingTotalWidth) + 'px');
- }
- contentHeight = pane.outerHeight();
- percentInViewV = contentHeight / paneHeight;
-
- if (isScrollableH) {
- horizontalDragWidth = 1 / percentInViewH * horizontalTrackWidth;
- if (horizontalDragWidth > settings.horizontalDragMaxWidth) {
- horizontalDragWidth = settings.horizontalDragMaxWidth;
- } else if (horizontalDragWidth < settings.horizontalDragMinWidth) {
- horizontalDragWidth = settings.horizontalDragMinWidth;
- }
- horizontalDrag.width(horizontalDragWidth + 'px');
- dragMaxX = horizontalTrackWidth - horizontalDragWidth;
- }
- if (isScrollableV) {
- verticalDragHeight = 1 / percentInViewV * verticalTrackHeight;
- if (verticalDragHeight > settings.verticalDragMaxHeight) {
- verticalDragHeight = settings.verticalDragMaxHeight;
- } else if (verticalDragHeight < settings.verticalDragMinHeight) {
- verticalDragHeight = settings.verticalDragMinHeight;
- }
- verticalDrag.height(verticalDragHeight + 'px');
- dragMaxY = verticalTrackHeight - verticalDragHeight;
- }
- }
-
- function appendArrows(ele, p, a1, a2)
- {
- var p1 = "before", p2 = "after", aTemp;
-
- // Sniff for mac... Is there a better way to determine whether the arrows would naturally appear
- // at the top or the bottom of the bar?
- if (p == "os") {
- p = /Mac/.test(navigator.platform) ? "after" : "split";
- }
- if (p == p1) {
- p2 = p;
- } else if (p == p2) {
- p1 = p;
- aTemp = a1;
- a1 = a2;
- a2 = aTemp;
- }
-
- ele[p1](a1)[p2](a2);
- }
-
- function getArrowScroll(dirX, dirY, ele) {
- return function()
- {
- arrowScroll(dirX, dirY, this, ele);
- this.blur();
- return false;
- }
- }
-
- function arrowScroll(dirX, dirY, arrow, ele)
- {
- arrow = $(arrow).addClass('jspActive');
-
- var eve, doScroll = function()
- {
- if (dirX != 0) {
- positionDragX(horizontalDragPosition + dirX * settings.arrowButtonSpeed, false);
- }
- if (dirY != 0) {
- positionDragY(verticalDragPosition + dirY * settings.arrowButtonSpeed, false);
- }
- },
- scrollInt = setInterval(doScroll, settings.arrowRepeatFreq);
-
- doScroll();
-
- eve = ele == undefined ? 'mouseup.jsp' : 'mouseout.jsp';
- ele = ele || $('html');
- ele.bind(
- eve,
- function()
- {
- arrow.removeClass('jspActive');
- clearInterval(scrollInt);
- ele.unbind(eve);
- }
- );
- }
-
- function cancelDrag()
- {
- $('html').unbind('dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp');
-
- verticalDrag && verticalDrag.removeClass('jspActive');
- horizontalDrag && horizontalDrag.removeClass('jspActive');
- }
-
- function positionDragY(destY, animate)
- {
- if (!isScrollableV) {
- return;
- }
- if (destY < 0) {
- destY = 0;
- } else if (destY > dragMaxY) {
- destY = dragMaxY;
- }
-
- // can't just check if(animate) because false is a valid value that could be passed in...
- if (animate == undefined) {
- animate = settings.animateScroll;
- }
- if (animate) {
- jsp.animate(verticalDrag, 'top', destY, _positionDragY);
- } else {
- verticalDrag.css('top', destY);
- _positionDragY(destY);
- }
-
- }
-
- function _positionDragY(destY)
- {
- if (destY == undefined) {
- destY = verticalDrag.position().top;
- }
-
- container.scrollTop(0);
- verticalDragPosition = destY;
-
- var isAtTop = verticalDragPosition == 0,
- isAtBottom = verticalDragPosition == dragMaxY,
- percentScrolled = destY/ dragMaxY,
- destTop = -percentScrolled * (contentHeight - paneHeight);
-
- if (wasAtTop != isAtTop || wasAtBottom != isAtBottom) {
- wasAtTop = isAtTop;
- wasAtBottom = isAtBottom;
- elem.trigger('jsp-arrow-change', [wasAtTop, wasAtBottom, wasAtLeft, wasAtRight]);
- }
-
- updateVerticalArrows(isAtTop, isAtBottom);
- pane.css('top', destTop);
- elem.trigger('jsp-scroll-y', [-destTop, isAtTop, isAtBottom]);
- }
-
- function positionDragX(destX, animate)
- {
- if (!isScrollableH) {
- return;
- }
- if (destX < 0) {
- destX = 0;
- } else if (destX > dragMaxX) {
- destX = dragMaxX;
- }
-
- if (animate == undefined) {
- animate = settings.animateScroll;
- }
- if (animate) {
- jsp.animate(horizontalDrag, 'left', destX, _positionDragX);
- } else {
- horizontalDrag.css('left', destX);
- _positionDragX(destX);
- }
- }
-
- function _positionDragX(destX)
- {
- if (destX == undefined) {
- destX = horizontalDrag.position().left;
- }
-
- container.scrollTop(0);
- horizontalDragPosition = destX;
-
- var isAtLeft = horizontalDragPosition == 0,
- isAtRight = horizontalDragPosition == dragMaxY,
- percentScrolled = destX / dragMaxX,
- destLeft = -percentScrolled * (contentWidth - paneWidth);
-
- if (wasAtLeft != isAtLeft || wasAtRight != isAtRight) {
- wasAtLeft = isAtLeft;
- wasAtRight = isAtRight;
- elem.trigger('jsp-arrow-change', [wasAtTop, wasAtBottom, wasAtLeft, wasAtRight]);
- }
-
- updateHorizontalArrows(isAtLeft, isAtRight);
- pane.css('left', destLeft);
- elem.trigger('jsp-scroll-x', [-destLeft, isAtLeft, isAtRight]);
- }
-
- function updateVerticalArrows(isAtTop, isAtBottom)
- {
- if (settings.showArrows) {
- arrowUp[isAtTop ? 'addClass' : 'removeClass']('jspDisabled');
- arrowDown[isAtBottom ? 'addClass' : 'removeClass']('jspDisabled');
- }
- }
-
- function updateHorizontalArrows(isAtLeft, isAtRight)
- {
- if (settings.showArrows) {
- arrowLeft[isAtLeft ? 'addClass' : 'removeClass']('jspDisabled');
- arrowRight[isAtRight ? 'addClass' : 'removeClass']('jspDisabled');
- }
- }
-
- function scrollToY(destY, animate)
- {
- var percentScrolled = destY / (contentHeight - paneHeight);
- positionDragY(percentScrolled * dragMaxY, animate);
- }
-
- function scrollToX(destX, animate)
- {
- var percentScrolled = destX / (contentWidth - paneWidth);
- positionDragX(percentScrolled * dragMaxX, animate);
- }
-
- function scrollToElement(ele, stickToTop, animate)
- {
- var e, eleHeight, eleTop = 0, viewportTop, maxVisibleEleTop, destY;
-
- // Legal hash values aren't necessarily legal jQuery selectors so we need to catch any
- // errors from the lookup...
- try {
- e = $(ele);
- } catch (err) {
- return;
- }
- eleHeight = e.outerHeight();
-
- container.scrollTop(0);
-
- // loop through parents adding the offset top of any elements that are relatively positioned between
- // the focused element and the jspPane so we can get the true distance from the top
- // of the focused element to the top of the scrollpane...
- while (!e.is('.jspPane')) {
- eleTop += e.position().top;
- e = e.offsetParent();
- if (/^body|html$/i.test(e[0].nodeName)) {
- // we ended up too high in the document structure. Quit!
- return;
- }
- }
-
-
- viewportTop = contentPositionY();
- maxVisibleEleTop = viewportTop + paneHeight;
- if (eleTop < viewportTop || stickToTop) { // element is above viewport
- destY = eleTop - settings.verticalGutter;
- } else if (eleTop + eleHeight > maxVisibleEleTop) { // element is below viewport
- destY = eleTop - paneHeight + eleHeight + settings.verticalGutter;
- }
- if (destY) {
- scrollToY(destY, animate);
- }
- // TODO: Implement automatic horizontal scrolling?
- }
-
- function contentPositionX()
- {
- return -pane.position().left;
- }
-
- function contentPositionY()
- {
- return -pane.position().top;
- }
-
- function initMousewheel()
- {
- container.unbind(mwEvent).bind(
- mwEvent,
- function (event, delta, deltaX, deltaY) {
- var dX = horizontalDragPosition, dY = verticalDragPosition;
- positionDragX(horizontalDragPosition + deltaX * settings.mouseWheelSpeed, false)
- positionDragY(verticalDragPosition - deltaY * settings.mouseWheelSpeed, false);
- // return true if there was no movement so rest of screen can scroll
- return dX == horizontalDragPosition && dY == verticalDragPosition;
- }
- );
- }
-
- function removeMousewheel()
- {
- container.unbind(mwEvent);
- }
-
- function nil()
- {
- return false;
- }
-
- function initFocusHandler()
- {
- pane.unbind('focusin.jsp').bind(
- 'focusin.jsp',
- function(e)
- {
- if(e.target === pane[0]){return;}
- scrollToElement(e.target, false);
- }
- );
- }
-
- function removeFocusHandler()
- {
-
- pane.unbind('focusin.jsp');
- }
-
- function initKeyboardNav()
- {
- var pressed, pressedTimer;
- elem.attr('tabindex', 0)
- .unbind('keydown.jsp')
- .bind(
- 'keydown.jsp',
- function(e)
- {
- if(e.target !== elem[0]){
- return;
- }
- var dX = horizontalDragPosition, dY = verticalDragPosition, step = pressed ? 2 : 16;
- switch(e.keyCode) {
- case 40: // down
- positionDragY(verticalDragPosition + step, false);
- break;
- case 38: // up
- positionDragY(verticalDragPosition - step, false);
- break;
- case 34: // page down
- case 32: // space
- scrollToY(contentPositionY() + Math.max(32, paneHeight) - 16);
- break;
- case 33: // page up
- scrollToY(contentPositionY() - paneHeight + 16);
- break;
- case 35: // end
- scrollToY(contentHeight - paneHeight);
- break;
- case 36: // home
- scrollToY(0);
- break;
- case 39: // right
- positionDragX(horizontalDragPosition + step, false);
- break;
- case 37: // left
- positionDragX(horizontalDragPosition - step, false);
- break;
- }
-
- if( !(dX == horizontalDragPosition && dY == verticalDragPosition) ){
- pressed = true;
- clearTimeout(pressedTimer);
- pressedTimer = setTimeout(function(){
- pressed = false;
- }, 260);
- return false;
- }
- }
- );
- if(settings.hideFocus) {
- elem.css('outline', 'none');
- if('hideFocus' in container[0]){
- elem.attr('hideFocus', true);
- }
- } else {
- elem.css('outline', '');
- if('hideFocus' in container[0]){
- elem.attr('hideFocus', false);
- }
- }
- }
-
- function removeKeyboardNav()
- {
- elem.attr('tabindex', '-1')
- .removeAttr('tabindex')
- .unbind('keydown.jsp');
- }
-
- function observeHash()
- {
- if (location.hash && location.hash.length > 1) {
- var e, retryInt;
- try {
- e = $(location.hash);
- } catch (err) {
- return;
- }
-
- if (e.length && pane.find(e)) {
- // nasty workaround but it appears to take a little while before the hash has done its thing
- // to the rendered page so we just wait until the container's scrollTop has been messed up.
- if (container.scrollTop() == 0) {
- retryInt = setInterval(
- function()
- {
- if (container.scrollTop() > 0) {
- scrollToElement(location.hash, true);
- $(document).scrollTop(container.position().top);
- clearInterval(retryInt);
- }
- },
- 50
- )
- } else {
- scrollToElement(location.hash, true);
- $(document).scrollTop(container.position().top);
- }
- }
- }
- }
-
- function unhijackInternalLinks()
- {
- $('a.jspHijack').unbind('click.jsp-hijack').removeClass('jspHijack');
- }
-
- function hijackInternalLinks()
- {
- unhijackInternalLinks();
- $('a[href^=#]').addClass('jspHijack').bind(
- 'click.jsp-hijack',
- function()
- {
- var uriParts = this.href.split('#'), hash;
- if (uriParts.length > 1) {
- hash = uriParts[1];
- if (hash.length > 0 && pane.find('#' + hash).length > 0) {
- scrollToElement('#' + hash, true);
- // Need to return false otherwise things mess up... Would be nice to maybe also scroll
- // the window to the top of the scrollpane?
- return false;
- }
- }
- }
- )
- }
-
- // Public API
- $.extend(
- jsp,
- {
- // Reinitialises the scroll pane (if it's internal dimensions have changed since the last time it
- // was initialised). The settings object which is passed in will override any settings from the
- // previous time it was initialised - if you don't pass any settings then the ones from the previous
- // initialisation will be used.
- reinitialise: function(s)
- {
- s = $.extend({}, s, settings);
- initialise(s);
- },
- // Scrolls the specified element (a jQuery object, DOM node or jQuery selector string) into view so
- // that it can be seen within the viewport. If stickToTop is true then the element will appear at
- // the top of the viewport, if it is false then the viewport will scroll as little as possible to
- // show the element. You can also specify if you want animation to occur. If you don't provide this
- // argument then the animateScroll value from the settings object is used instead.
- scrollToElement: function(ele, stickToTop, animate)
- {
- scrollToElement(ele, stickToTop, animate);
- },
- // Scrolls the pane so that the specified co-ordinates within the content are at the top left
- // of the viewport. animate is optional and if not passed then the value of animateScroll from
- // the settings object this jScrollPane was initialised with is used.
- scrollTo: function(destX, destY, animate)
- {
- scrollToX(destX, animate);
- scrollToY(destY, animate);
- },
- // Scrolls the pane so that the specified co-ordinate within the content is at the left of the
- // viewport. animate is optional and if not passed then the value of animateScroll from the settings
- // object this jScrollPane was initialised with is used.
- scrollToX: function(destX, animate)
- {
- scrollToX(destX, animate);
- },
- // Scrolls the pane so that the specified co-ordinate within the content is at the top of the
- // viewport. animate is optional and if not passed then the value of animateScroll from the settings
- // object this jScrollPane was initialised with is used.
- scrollToY: function(destY, animate)
- {
- scrollToY(destY, animate);
- },
- // Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- // the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- scrollBy: function(deltaX, deltaY, animate)
- {
- jsp.scrollByX(deltaX, animate);
- jsp.scrollByY(deltaY, animate);
- },
- // Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- // the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- scrollByX: function(deltaX, animate)
- {
- var destX = contentPositionX() + deltaX,
- percentScrolled = destX / (contentWidth - paneWidth);
- positionDragX(percentScrolled * dragMaxX, animate);
- },
- // Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- // the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- scrollByY: function(deltaY, animate)
- {
- var destY = contentPositionY() + deltaY,
- percentScrolled = destY / (contentHeight - paneHeight);
- positionDragY(percentScrolled * dragMaxY, animate);
- },
- // This method is called when jScrollPane is trying to animate to a new position. You can override
- // it if you want to provide advanced animation functionality. It is passed the following arguments:
- // * ele - the element whose position is being animated
- // * prop - the property that is being animated
- // * value - the value it's being animated to
- // * stepCallback - a function that you must execute each time you update the value of the property
- // You can use the default implementation (below) as a starting point for your own implementation.
- animate: function(ele, prop, value, stepCallback)
- {
- var params = {};
- params[prop] = value;
- ele.animate(
- params,
- {
- 'duration' : settings.animateDuration,
- 'ease' : settings.animateEase,
- 'queue' : false,
- 'step' : stepCallback
- }
- );
- },
- // Returns the current x position of the viewport with regards to the content pane.
- getContentPositionX: function()
- {
- return contentPositionX();
- },
- // Returns the current y position of the viewport with regards to the content pane.
- getContentPositionY: function()
- {
- return contentPositionY();
- },
- // Returns whether or not this scrollpane has a horizontal scrollbar.
- getIsScrollableH: function()
- {
- return isScrollableH;
- },
- // Returns whether or not this scrollpane has a vertical scrollbar.
- getIsScrollableV: function()
- {
- return isScrollableV;
- },
- // Gets a reference to the content pane. It is important that you use this method if you want to
- // edit the content of your jScrollPane as if you access the element directly then you may have some
- // problems (as your original element has had additional elements for the scrollbars etc added into
- // it).
- getContentPane: function()
- {
- return pane;
- },
- // Scrolls this jScrollPane down as far as it can currently scroll. If animate isn't passed then the
- // animateScroll value from settings is used instead.
- scrollToBottom: function(animate)
- {
- positionDragY(dragMaxY, animate);
- },
- // Hijacks the links on the page which link to content inside the scrollpane. If you have changed
- // the content of your page (e.g. via AJAX) and want to make sure any new anchor links to the
- // contents of your scroll pane will work then call this function.
- hijackInternalLinks: function()
- {
- hijackInternalLinks();
- }
- }
- );
- }
-
- // Pluginifying code...
-
- settings = $.extend({}, $.fn.jScrollPane.defaults, settings);
-
- var ret;
- this.each(
- function()
- {
- var elem = $(this), jspApi = elem.data('jsp');
- if (jspApi) {
- jspApi.reinitialise(settings);
- } else {
- jspApi = new JScrollPane(elem, settings);
- elem.data('jsp', jspApi);
- }
- ret = ret ? ret.add(elem) : elem;
- }
- )
- return ret;
- };
-
- $.fn.jScrollPane.defaults = {
- 'showArrows' : false,
- 'maintainPosition' : true,
- 'autoReinitialise' : false,
- 'autoReinitialiseDelay' : 500,
- 'verticalDragMinHeight' : 0,
- 'verticalDragMaxHeight' : 99999,
- 'horizontalDragMinWidth' : 0,
- 'horizontalDragMaxWidth' : 99999,
- 'animateScroll' : false,
- 'animateDuration' : 300,
- 'animateEase' : 'linear',
- 'hijackInternalLinks' : false,
- 'verticalGutter' : 4,
- 'horizontalGutter' : 4,
- 'mouseWheelSpeed' : 10,
- 'arrowButtonSpeed' : 10,
- 'arrowRepeatFreq' : 100,
- 'arrowScrollOnHover' : false,
- 'verticalArrowPositions' : 'split',
- 'horizontalArrowPositions' : 'split',
- 'enableKeyboardNavigation' : true,
- 'hideFocus' : false
- };
-
-})(jQuery,this);
-
diff --git a/libs/bower_components/jScrollPane/issues/11/native.html b/libs/bower_components/jScrollPane/issues/11/native.html
deleted file mode 100644
index 2b72862b4b..0000000000
--- a/libs/bower_components/jScrollPane/issues/11/native.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<meta name="verify-v1" content="ven67p9fXoMQpbw1icSXo8l+I5Z+upY90LnIqaPDgKo=" />
-<meta name="description" content="Tinyfish is the smallest progressive rock band in the world, self-taught, self-financed, and self-abusing - no, wait..." />
-<meta name="keywords" content="Tinyfish, Pink Floyd, Porcupine Tree, progrock, progressive rock, prog rock, prog, Marillion, King Crimson, Rush, The Big Red Spark, Curious Things" />
-<link href="brs_main.css" rel="stylesheet" type="text/css"/>
-<link type="text/css" href="../../style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-<title>latest news</title>
-<!-- compliance patch for microsoft browsers -->
-<!--[if lt IE 8]><script src="../__js/IE8.js" type="text/javascript"></script><![endif]-->
-<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
-<script type="text/javascript" src="../../script/jquery.mousewheel.js"></script>
-
-<script type="text/javascript" src="../../script/jquery.jscrollpane.js"></script>
-<script language="javascript" type="text/javascript">
-$(function()
-{
-});
-</script>
-</head>
-<body class="nopage">
-<div id="content">
-<h1>news</h1>
-<p>After three years of toil, The new Tinyfish album, The Big Red Spark,
- is finally finished, and to celebrate, you'll be able to join us at The Luminaire
- in Kilburn for a very special gig to launch the album on an unsuspecting world.</p>
-<p>Although by this point, some people may already have suspected.</p>
-<p>Support will be provided by the excellent Dec Burke and his new band,
- Destroy All Monsters</p>
-<p>When: Friday, 10th September<br />
-
- Where: The Luminaire (click for map)<br />
- How much: &pound;10 in advance (&pound;8 CRS members advance) or &pound;12 on the door.<br />
- Doors open at 7:30.</p>
-<p>Tickets: www.linktoticket website.co.uk</p>
-</div>
-
-</body>
-
-</html>
diff --git a/libs/bower_components/jScrollPane/issues/12/after.html b/libs/bower_components/jScrollPane/issues/12/after.html
deleted file mode 100644
index 039370c360..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/after.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<meta name="verify-v1" content="ven67p9fXoMQpbw1icSXo8l+I5Z+upY90LnIqaPDgKo=" />
-<link href="brs_main.css" rel="stylesheet" type="text/css"/>
-<link type="text/css" href="../../style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-<title>The History of Tinyfish</title>
-<!-- compliance patch for microsoft browsers -->
-<!--[if lt IE 8]><script src="../__js/IE8.js" type="text/javascript"></script><![endif]-->
-<script src="http://cdn.jquerytools.org/1.2.2/full/jquery.tools.min.js" type="text/javascript"></script>
-
-<script type="text/javascript" src="../../script/jquery.mousewheel.js"></script>
-<script type="text/javascript" src="../../script/jquery.jscrollpane.js"></script>
-
-<script language="javascript" type="text/javascript">
-$(function()
-{
- var api = $("#content").jScrollPane({
- showArrows: true
- }).data('jsp');
-
- $(window).bind(
- 'resize',
- function()
- {
- api.reinitialise();
- }
- ).trigger('resize');
-});
-</script>
-</head>
-<body class="nopage">
-<div id="content">
- <h1>The History of Tinyfish</h1>
- <p>It all began with a pair of broken arms and two dodgy eyes.</p>
- <p>It&rsquo;s 1978, the year that <a href="../__imgs/band/history/schoolboyjim.jpg" title="Jim at school" rel="#hist02">Jim Sanders</a> and <a href="../__imgs/band/history/babysimon.jpg" title="Simon as a baby" rel="#hist01">Simon Godfrey</a> met at school in East Sheen (South London). Although each had been aware of the other since the age of five, the two would have been on nothing more than nodding acquaintance, save for two medical problems that forced them together and would eventually lead to the band we know today as Tinyfish.</p>
-
- <p>Bloody weaklings.</p>
- <p>Jim had been diagnosed with a rare retinal disease which had a good chance of robbing him of his vision, and had recently undergone laser eye surgery. Simon more comedically had broken both arms after falling off a roof, leaving him with seriously weakened joints. As part of their convalescence from their respective surgeries, both boys were excused sports for six months.</p>
- <p>While the rest of the kids kicked the living crap out of each other under the pretence of playing football or rugby, Jim and Simon sat on a low school wall watching the on-field carnage and eyeing one another warily. Initially Simon was the talkative one while Jim sat silently, but as soon as the subject matter turned to music, both began to find some common ground, and the conversation became a two way street.</p>
- <p>Initially, Jim had been a Rock/New Wave fan who loved Thin Lizzy (above all others), but incongruously, also the Skids (who would later become Big Country) and the Rezillos (who wouldn&rsquo;t). Simon on the other hand was a fan of ELO and The Sweet but both agreed that music, and in particular, rock bands, were the bee&rsquo;s knees.</p>
- <p>Around the same time , Simon had struck up a friendship with another boy at school called <a href="../__imgs/band/history/youngpaul.jpg" title="Paul - much younger" rel="#hist03">Paul Worwood</a>, initially during school music lessons. The pair were both big fans of Dungeons and Dragons and would play the game constantly throughout their teenage years.</p>
-
- <p>Bloody geeks.</p>
- <p>As the 70&rsquo;s gave way to the 80&rsquo;s and the three grew to be good friends, Jim drew Simon and Paul towards a new love; heavy metal. Over the next three years, the trio saw every metal band that played at their local venue (The Hammersmith Odeon). While the three saw the likes of Thin Lizzy, Saxon, MSG, Iron Maiden and The Scorpions, their listening tastes also encompassed bands such as Yes, Genesis, King Crimson and Magnum.</p>
- <p>Jim had first played &lsquo;Going For The One&rsquo; by Yes to Simon back in the 70's (Simon rather uncharitably dubbed it &lsquo;f***ing Country &amp; Western&rsquo;. To be fair, Jim told Simon not to bother with Jethro Tull, as he thought they were arse... without actually having ever heard them. Twit.). Jim persevered however, and when he spun &lsquo;A Farewell To Kings&rsquo; by Rush in an afternoon listening session, Simon was well and truly hooked. He now also likes Yes very much. Hah! Jim now also likes Jethro Tull. Hah! Hah!</p>
-
- <p>During their time at Richmond College (South West London), Jim and Simon met guitarist Nick Denville, and formed their first band, with Paul joining on bass soon after. Paul was the only person they knew who owned a car. They also thought he was a top bloke, and so without mentioning the car caveat, the three miscreants cajoled Paul into buying a bass guitar and an amplifier. They called themselves <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">&lsquo;Blackstone Edge&rsquo;</a> and they were bloody rubbish. All they needed was a keyboard player to crown their musical ineptitude.</p>
- <p>Simon&rsquo;s younger brother Jem was 14 when he received his first keyboard (a Casio home synth which he put through a flanger pedal to make it sound cosmic). Jem was initially invited to rehearsals to hold the lyrics up for Jim to sing from while the rest of the band played. It soon became obvious to the guys that Jem's talents were wasted as a music stand and so he was invited into the band. This line up survived for a few months before Nick Denville left to live a happier and entirely more melodic life elsewhere.</p>
- <p>Bloody kids.</p>
- <p>The band continued, and Simon relentlessly poured prog music into Jem's head which was immediately absorbed by the young keyboard player. Less than six months later, Jem had learned all of Tony Banks&rsquo; keyboard solos from both Seconds Out and Three Sides Live along with Rick Wakeman's and Patrick Moraz's solos from Yesshows. With Jem's considerable technique, and the band hungry to write original music, the direction of the band was truely set towards progressive rock. The name <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">Blackstone Edge</a> was soon dropped in favour of &lsquo;Freefall Warriors&rsquo; (after a story in a Doctor Who comic) which very quickly contracted simply to <a href="../__imgs/band/history/freefall.jpg" title="Freefall Mk.1" rel="#hist06">&lsquo;Freefall&rsquo;</a> and with the addition of vocalist Andrew Lovatt, the band began to rehearse <a href="../__imgs/band/history/freefallposter.jpg" title="Poster for Freefall's first gig" rel="#hist05">in preparation for live gigs.</a></p>
-
- <p>During this time the band bumped into actor <a href="../__imgs/band/history/tonyaitken.jpg" title="Tony Aitken" rel="#hist07">Tony Aitken</a> who had worked during his less successful years as a supply teacher at Jim and Simon&rsquo;s school in the 70&rsquo;s. Tony was looking for musicians to back him in a covers band, and the guys duly offered their services (even though they then had no live experience whatsoever). The arrangement worked so well that they kept the band going for over a decade and it was there, working the pubs and clubs of southern England, that they learned the musical chops that would serve them so well in later years.</p>
- <p>In parallel to their function band work, Freefall practice/writing sessions continued. As luck would have it, IQ rehearsed in the studio next door to them, and on the back of their first gig, attended by IQ&rsquo;s then manager, they managed to land the support slot at IQ&rsquo;s Christmas show <a href="../__imgs/band/history/freefallmarquee.jpg" title="Freefall at the Marquee" rel="#hist08">at the Marquee Club in London. Gulp.</a></p>
- <p>Thankfully, the band hit it off immediately with the crowd and soon managed to get a string of gigs with bands like Jadis, Ark, Galahad, Mentaur and Geoff Mann from Twelth Night. Freefall looked as though they were going to make a big impact with the prog community but after an ill-judged attempt to &lsquo;go commercial&rsquo; in the early &lsquo;90s, (Bloody managers!) Jim left the band and the remaining members recruited a very nice gentleman called <a href="../__imgs/band/history/johnboyes.jpg" title="and on guitar - Mr. John Boyes!" rel="#hist09">John Boyes</a> on guitar. However, the moment was lost and the band soon fell apart.</p>
-
- <p>Bloody idiots.</p>
- <p>Jim and Jem briefly went on, to form Pop-proggers &ldquo;Charlottes&rsquo; Web&rdquo; before Jem gave up the scene to work for national radio (although Jem's involvement with prog would be re-ignited a decade later with the formation (with John Boyes) of the Prog supergroup Frost*).</p>
- <p>Meanwhile, Simon and Paul formed an acoustic outfit called <a href="../__imgs/band/history/maddogs.jpg" title="Men Are Dead Mk. I" rel="#hist10">&lsquo;Men Are Dead&rsquo;</a> with keyboard player Col Alkins and lyricist/harmonica player Rob Ramsay. Simon had met Rob way back in the early 80&rsquo;s at Richmond College, at the same time Freefall were making their first tentative steps in music. They became good friends and Rob was always involved at some level, either by helping out at gigs or writing the occasional lyric.</p>
-
- <br />
- <p>Men Are Dead began to play gigs on London's open mic scene (where any artist can roll up and play a short set of between two and five songs) and the band proved to be extremely popular with both audience and fellow musos alike. Col left after their first album, but thankfully, Jim once again joined up with Simon and Paul as a second guitarist, along with <a href="../__imgs/band/history/wayne.jpg" title="Wayne caught in the headlights" rel="#hist12">Wayne Collier</a>, an extraordinary drummer who played in almost every band in West London. <a href="../__imgs/band/history/menaredead.jpg" title="Men Are Dead Mk. II" rel="#hist11">What evolved was a prototype Tinyfish</a> sound and much of the band&rsquo;s current style comes from these early twin guitar shows.</p>
- <p>The millennium came and went, and so did the name &lsquo;Men Are Dead&rsquo;. In came Simon&rsquo;s alter ego &lsquo;Simon Walsh&rsquo;, a <em>nom-de-guerre</em> he still uses today when playing solo acoustic gigs. Whilst notching up appearances in the UK, Germany, France, Estonia and America, they recruited a third guitarist <a href="../__imgs/band/history/hw1.jpg" title="Tim solos at the Hope and Anchor" rel="#hist13">(Tim Eyles)</a> and all looked rosy (if a little Lynyrd Skynyrd) in the garden. Behind the scenes however, things were not going well with the band. Frustration with the strict definitions of acoustic music imposed by many clubs and venues began to take their toll on both the music and musicians. Their material was becoming more complex and the songs started to push past the three minute mark, as the band's deep-seated prog influences once again made themselves felt.</p>
-
- <p>Finally in the late autumn of 2004, after much soul searching, Simon sent Jim an e-mail suggesting that maybe there was little more they could achieve as an acoustic unit and perhaps they should return to their progressive roots. Jim happily agreed and an invite was duly sent out to both Paul and Rob asking if they would be interested in joining, which thankfully they did.</p>
- <p>Simon disbanded the acoustic band, with Tim Eyles joining the punk-pop band &lsquo;The Random&rsquo; and the four remaining musicians <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">assembled in Simon's loft</a> and began writing and rehearsing. Within six weeks it was obvious that there were real possibilities in the music they were making, but the question as to how to record this new material was causing them concern. None of them could afford to go the professional route, so the decision was made to turn the loft into a studio, and try it themselves.</p>
- <p>Robert had set up Lazy Gun Records several years previously, to promote both Men Are Dead and Simon Walsh, and suggested that this new band join the roster. This gave them complete artistic and financial control of their work. </p>
- <p>Bloody tight bastards.</p>
-
- <p>Finally the subject of the name for the band reared its ugly head. There were thoughts that they could resurrect the name Freefall but that idea was soon discarded. This was a new band, and it deserved a new name (besides, someone else was now using &lsquo;Freefall&rsquo; and they looked bigger and meaner than this band). It was Jim that quipped that they were just tiny fish compared to some of the huge prog bands still out there and within moments the name had stuck.</p>
- <p>The problem remained that they were a man short for playing live shows, but in the studio, that base was covered by Simon who, happily, can play both <a href="../__imgs/band/history/drumkit.jpg" title="Simon's electronic drumkit" rel="#hist15">drums</a> and <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">guitar</a> in equal measure (although not at the same time). Meanwhile, the studio had taken shape and the band had found that familiar progressive chemistry once again. The smiles were back on everybody&rsquo;s faces, and the band had a sound they could work to develop.</p>
- <p>When the talk turned once more to live performances, Jim mentioned that he knew a drummer of many bands, the semi-Italian <a href="../__imgs/band/history/leonstatue.jpg" title="Leon at the kit" rel="#hist16">Leon Camfield</a>, and after a few rehearsals (and many beers) together, Leon (for whom truely progressive music is a long held love (note King Crimson tattoo on arm)) enthusiastically joined to complete the Fab Five.</p>
-
- <p>So here we are in 2010. <a href="../__imgs/band/history/tinyfish1.jpg" title="tinyfish" rel="#hist17">Tinyfish</a> have gigged around the country, released both two albums, a mini-album, and a live album &amp; DVD, and have <a href="../__imgs/band/history/tinyfish2.jpg" title="tinyfish" rel="#hist18">arrived at a destination</a> where they feel at home, and are proud of their journey to this place of better dreams.</p>
- <p class="centre"><a href="../__imgs/band/history/strangestudioshot.jpg" title="a tinyfish close encounter" rel="#hist19">Bloody pretentious tossers.</a></p>
-</div>
-</body>
-</html>
-
diff --git a/libs/bower_components/jScrollPane/issues/12/after_reinit.html b/libs/bower_components/jScrollPane/issues/12/after_reinit.html
deleted file mode 100644
index e61225778e..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/after_reinit.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<meta name="verify-v1" content="ven67p9fXoMQpbw1icSXo8l+I5Z+upY90LnIqaPDgKo=" />
-<link href="brs_main.css" rel="stylesheet" type="text/css"/>
-<link type="text/css" href="../../style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-<title>The History of Tinyfish</title>
-<!-- compliance patch for microsoft browsers -->
-<!--[if lt IE 8]><script src="../__js/IE8.js" type="text/javascript"></script><![endif]-->
-<script src="http://cdn.jquerytools.org/1.2.2/full/jquery.tools.min.js" type="text/javascript"></script>
-
-<script type="text/javascript" src="../../script/jquery.mousewheel.js"></script>
-<script type="text/javascript" src="../../script/jquery.jscrollpane.js"></script>
-
-<script language="javascript" type="text/javascript">
-$(function()
-{
- $("#content").jScrollPane({
- showArrows: true,
- autoReinitialise: true
- });
-});
-</script>
-</head>
-<body class="nopage">
-<div id="content">
- <h1>The History of Tinyfish</h1>
- <p>It all began with a pair of broken arms and two dodgy eyes.</p>
- <p>It&rsquo;s 1978, the year that <a href="../__imgs/band/history/schoolboyjim.jpg" title="Jim at school" rel="#hist02">Jim Sanders</a> and <a href="../__imgs/band/history/babysimon.jpg" title="Simon as a baby" rel="#hist01">Simon Godfrey</a> met at school in East Sheen (South London). Although each had been aware of the other since the age of five, the two would have been on nothing more than nodding acquaintance, save for two medical problems that forced them together and would eventually lead to the band we know today as Tinyfish.</p>
-
- <p>Bloody weaklings.</p>
- <p>Jim had been diagnosed with a rare retinal disease which had a good chance of robbing him of his vision, and had recently undergone laser eye surgery. Simon more comedically had broken both arms after falling off a roof, leaving him with seriously weakened joints. As part of their convalescence from their respective surgeries, both boys were excused sports for six months.</p>
- <p>While the rest of the kids kicked the living crap out of each other under the pretence of playing football or rugby, Jim and Simon sat on a low school wall watching the on-field carnage and eyeing one another warily. Initially Simon was the talkative one while Jim sat silently, but as soon as the subject matter turned to music, both began to find some common ground, and the conversation became a two way street.</p>
- <p>Initially, Jim had been a Rock/New Wave fan who loved Thin Lizzy (above all others), but incongruously, also the Skids (who would later become Big Country) and the Rezillos (who wouldn&rsquo;t). Simon on the other hand was a fan of ELO and The Sweet but both agreed that music, and in particular, rock bands, were the bee&rsquo;s knees.</p>
- <p>Around the same time , Simon had struck up a friendship with another boy at school called <a href="../__imgs/band/history/youngpaul.jpg" title="Paul - much younger" rel="#hist03">Paul Worwood</a>, initially during school music lessons. The pair were both big fans of Dungeons and Dragons and would play the game constantly throughout their teenage years.</p>
-
- <p>Bloody geeks.</p>
- <p>As the 70&rsquo;s gave way to the 80&rsquo;s and the three grew to be good friends, Jim drew Simon and Paul towards a new love; heavy metal. Over the next three years, the trio saw every metal band that played at their local venue (The Hammersmith Odeon). While the three saw the likes of Thin Lizzy, Saxon, MSG, Iron Maiden and The Scorpions, their listening tastes also encompassed bands such as Yes, Genesis, King Crimson and Magnum.</p>
- <p>Jim had first played &lsquo;Going For The One&rsquo; by Yes to Simon back in the 70's (Simon rather uncharitably dubbed it &lsquo;f***ing Country &amp; Western&rsquo;. To be fair, Jim told Simon not to bother with Jethro Tull, as he thought they were arse... without actually having ever heard them. Twit.). Jim persevered however, and when he spun &lsquo;A Farewell To Kings&rsquo; by Rush in an afternoon listening session, Simon was well and truly hooked. He now also likes Yes very much. Hah! Jim now also likes Jethro Tull. Hah! Hah!</p>
-
- <p>During their time at Richmond College (South West London), Jim and Simon met guitarist Nick Denville, and formed their first band, with Paul joining on bass soon after. Paul was the only person they knew who owned a car. They also thought he was a top bloke, and so without mentioning the car caveat, the three miscreants cajoled Paul into buying a bass guitar and an amplifier. They called themselves <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">&lsquo;Blackstone Edge&rsquo;</a> and they were bloody rubbish. All they needed was a keyboard player to crown their musical ineptitude.</p>
- <p>Simon&rsquo;s younger brother Jem was 14 when he received his first keyboard (a Casio home synth which he put through a flanger pedal to make it sound cosmic). Jem was initially invited to rehearsals to hold the lyrics up for Jim to sing from while the rest of the band played. It soon became obvious to the guys that Jem's talents were wasted as a music stand and so he was invited into the band. This line up survived for a few months before Nick Denville left to live a happier and entirely more melodic life elsewhere.</p>
- <p>Bloody kids.</p>
- <p>The band continued, and Simon relentlessly poured prog music into Jem's head which was immediately absorbed by the young keyboard player. Less than six months later, Jem had learned all of Tony Banks&rsquo; keyboard solos from both Seconds Out and Three Sides Live along with Rick Wakeman's and Patrick Moraz's solos from Yesshows. With Jem's considerable technique, and the band hungry to write original music, the direction of the band was truely set towards progressive rock. The name <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">Blackstone Edge</a> was soon dropped in favour of &lsquo;Freefall Warriors&rsquo; (after a story in a Doctor Who comic) which very quickly contracted simply to <a href="../__imgs/band/history/freefall.jpg" title="Freefall Mk.1" rel="#hist06">&lsquo;Freefall&rsquo;</a> and with the addition of vocalist Andrew Lovatt, the band began to rehearse <a href="../__imgs/band/history/freefallposter.jpg" title="Poster for Freefall's first gig" rel="#hist05">in preparation for live gigs.</a></p>
-
- <p>During this time the band bumped into actor <a href="../__imgs/band/history/tonyaitken.jpg" title="Tony Aitken" rel="#hist07">Tony Aitken</a> who had worked during his less successful years as a supply teacher at Jim and Simon&rsquo;s school in the 70&rsquo;s. Tony was looking for musicians to back him in a covers band, and the guys duly offered their services (even though they then had no live experience whatsoever). The arrangement worked so well that they kept the band going for over a decade and it was there, working the pubs and clubs of southern England, that they learned the musical chops that would serve them so well in later years.</p>
- <p>In parallel to their function band work, Freefall practice/writing sessions continued. As luck would have it, IQ rehearsed in the studio next door to them, and on the back of their first gig, attended by IQ&rsquo;s then manager, they managed to land the support slot at IQ&rsquo;s Christmas show <a href="../__imgs/band/history/freefallmarquee.jpg" title="Freefall at the Marquee" rel="#hist08">at the Marquee Club in London. Gulp.</a></p>
- <p>Thankfully, the band hit it off immediately with the crowd and soon managed to get a string of gigs with bands like Jadis, Ark, Galahad, Mentaur and Geoff Mann from Twelth Night. Freefall looked as though they were going to make a big impact with the prog community but after an ill-judged attempt to &lsquo;go commercial&rsquo; in the early &lsquo;90s, (Bloody managers!) Jim left the band and the remaining members recruited a very nice gentleman called <a href="../__imgs/band/history/johnboyes.jpg" title="and on guitar - Mr. John Boyes!" rel="#hist09">John Boyes</a> on guitar. However, the moment was lost and the band soon fell apart.</p>
-
- <p>Bloody idiots.</p>
- <p>Jim and Jem briefly went on, to form Pop-proggers &ldquo;Charlottes&rsquo; Web&rdquo; before Jem gave up the scene to work for national radio (although Jem's involvement with prog would be re-ignited a decade later with the formation (with John Boyes) of the Prog supergroup Frost*).</p>
- <p>Meanwhile, Simon and Paul formed an acoustic outfit called <a href="../__imgs/band/history/maddogs.jpg" title="Men Are Dead Mk. I" rel="#hist10">&lsquo;Men Are Dead&rsquo;</a> with keyboard player Col Alkins and lyricist/harmonica player Rob Ramsay. Simon had met Rob way back in the early 80&rsquo;s at Richmond College, at the same time Freefall were making their first tentative steps in music. They became good friends and Rob was always involved at some level, either by helping out at gigs or writing the occasional lyric.</p>
-
- <br />
- <p>Men Are Dead began to play gigs on London's open mic scene (where any artist can roll up and play a short set of between two and five songs) and the band proved to be extremely popular with both audience and fellow musos alike. Col left after their first album, but thankfully, Jim once again joined up with Simon and Paul as a second guitarist, along with <a href="../__imgs/band/history/wayne.jpg" title="Wayne caught in the headlights" rel="#hist12">Wayne Collier</a>, an extraordinary drummer who played in almost every band in West London. <a href="../__imgs/band/history/menaredead.jpg" title="Men Are Dead Mk. II" rel="#hist11">What evolved was a prototype Tinyfish</a> sound and much of the band&rsquo;s current style comes from these early twin guitar shows.</p>
- <p>The millennium came and went, and so did the name &lsquo;Men Are Dead&rsquo;. In came Simon&rsquo;s alter ego &lsquo;Simon Walsh&rsquo;, a <em>nom-de-guerre</em> he still uses today when playing solo acoustic gigs. Whilst notching up appearances in the UK, Germany, France, Estonia and America, they recruited a third guitarist <a href="../__imgs/band/history/hw1.jpg" title="Tim solos at the Hope and Anchor" rel="#hist13">(Tim Eyles)</a> and all looked rosy (if a little Lynyrd Skynyrd) in the garden. Behind the scenes however, things were not going well with the band. Frustration with the strict definitions of acoustic music imposed by many clubs and venues began to take their toll on both the music and musicians. Their material was becoming more complex and the songs started to push past the three minute mark, as the band's deep-seated prog influences once again made themselves felt.</p>
-
- <p>Finally in the late autumn of 2004, after much soul searching, Simon sent Jim an e-mail suggesting that maybe there was little more they could achieve as an acoustic unit and perhaps they should return to their progressive roots. Jim happily agreed and an invite was duly sent out to both Paul and Rob asking if they would be interested in joining, which thankfully they did.</p>
- <p>Simon disbanded the acoustic band, with Tim Eyles joining the punk-pop band &lsquo;The Random&rsquo; and the four remaining musicians <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">assembled in Simon's loft</a> and began writing and rehearsing. Within six weeks it was obvious that there were real possibilities in the music they were making, but the question as to how to record this new material was causing them concern. None of them could afford to go the professional route, so the decision was made to turn the loft into a studio, and try it themselves.</p>
- <p>Robert had set up Lazy Gun Records several years previously, to promote both Men Are Dead and Simon Walsh, and suggested that this new band join the roster. This gave them complete artistic and financial control of their work. </p>
- <p>Bloody tight bastards.</p>
-
- <p>Finally the subject of the name for the band reared its ugly head. There were thoughts that they could resurrect the name Freefall but that idea was soon discarded. This was a new band, and it deserved a new name (besides, someone else was now using &lsquo;Freefall&rsquo; and they looked bigger and meaner than this band). It was Jim that quipped that they were just tiny fish compared to some of the huge prog bands still out there and within moments the name had stuck.</p>
- <p>The problem remained that they were a man short for playing live shows, but in the studio, that base was covered by Simon who, happily, can play both <a href="../__imgs/band/history/drumkit.jpg" title="Simon's electronic drumkit" rel="#hist15">drums</a> and <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">guitar</a> in equal measure (although not at the same time). Meanwhile, the studio had taken shape and the band had found that familiar progressive chemistry once again. The smiles were back on everybody&rsquo;s faces, and the band had a sound they could work to develop.</p>
- <p>When the talk turned once more to live performances, Jim mentioned that he knew a drummer of many bands, the semi-Italian <a href="../__imgs/band/history/leonstatue.jpg" title="Leon at the kit" rel="#hist16">Leon Camfield</a>, and after a few rehearsals (and many beers) together, Leon (for whom truely progressive music is a long held love (note King Crimson tattoo on arm)) enthusiastically joined to complete the Fab Five.</p>
-
- <p>So here we are in 2010. <a href="../__imgs/band/history/tinyfish1.jpg" title="tinyfish" rel="#hist17">Tinyfish</a> have gigged around the country, released both two albums, a mini-album, and a live album &amp; DVD, and have <a href="../__imgs/band/history/tinyfish2.jpg" title="tinyfish" rel="#hist18">arrived at a destination</a> where they feel at home, and are proud of their journey to this place of better dreams.</p>
- <p class="centre"><a href="../__imgs/band/history/strangestudioshot.jpg" title="a tinyfish close encounter" rel="#hist19">Bloody pretentious tossers.</a></p>
-</div>
-</body>
-</html>
-
diff --git a/libs/bower_components/jScrollPane/issues/12/before.html b/libs/bower_components/jScrollPane/issues/12/before.html
deleted file mode 100644
index ee7402dbaa..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/before.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<meta name="verify-v1" content="ven67p9fXoMQpbw1icSXo8l+I5Z+upY90LnIqaPDgKo=" />
-<link href="brs_main.css" rel="stylesheet" type="text/css"/>
-<link type="text/css" href="jscrollpane-2b3.css" rel="stylesheet" media="all" />
-<title>The History of Tinyfish</title>
-<!-- compliance patch for microsoft browsers -->
-<!--[if lt IE 8]><script src="../__js/IE8.js" type="text/javascript"></script><![endif]-->
-<script src="http://cdn.jquerytools.org/1.2.2/full/jquery.tools.min.js" type="text/javascript"></script>
-
-<script type="text/javascript" src="jquery.mousewheel.js"></script>
-<script type="text/javascript" src="jscrollpane-2b3.js"></script>
-
-<script language="javascript" type="text/javascript">
-$(function()
-{
- $("#content").jScrollPane({
- showArrows: true
- });
-});
-</script>
-</head>
-<body class="nopage">
-<div id="content">
- <h1>The History of Tinyfish</h1>
- <p>It all began with a pair of broken arms and two dodgy eyes.</p>
- <p>It&rsquo;s 1978, the year that <a href="../__imgs/band/history/schoolboyjim.jpg" title="Jim at school" rel="#hist02">Jim Sanders</a> and <a href="../__imgs/band/history/babysimon.jpg" title="Simon as a baby" rel="#hist01">Simon Godfrey</a> met at school in East Sheen (South London). Although each had been aware of the other since the age of five, the two would have been on nothing more than nodding acquaintance, save for two medical problems that forced them together and would eventually lead to the band we know today as Tinyfish.</p>
-
- <p>Bloody weaklings.</p>
- <p>Jim had been diagnosed with a rare retinal disease which had a good chance of robbing him of his vision, and had recently undergone laser eye surgery. Simon more comedically had broken both arms after falling off a roof, leaving him with seriously weakened joints. As part of their convalescence from their respective surgeries, both boys were excused sports for six months.</p>
- <p>While the rest of the kids kicked the living crap out of each other under the pretence of playing football or rugby, Jim and Simon sat on a low school wall watching the on-field carnage and eyeing one another warily. Initially Simon was the talkative one while Jim sat silently, but as soon as the subject matter turned to music, both began to find some common ground, and the conversation became a two way street.</p>
- <p>Initially, Jim had been a Rock/New Wave fan who loved Thin Lizzy (above all others), but incongruously, also the Skids (who would later become Big Country) and the Rezillos (who wouldn&rsquo;t). Simon on the other hand was a fan of ELO and The Sweet but both agreed that music, and in particular, rock bands, were the bee&rsquo;s knees.</p>
- <p>Around the same time , Simon had struck up a friendship with another boy at school called <a href="../__imgs/band/history/youngpaul.jpg" title="Paul - much younger" rel="#hist03">Paul Worwood</a>, initially during school music lessons. The pair were both big fans of Dungeons and Dragons and would play the game constantly throughout their teenage years.</p>
-
- <p>Bloody geeks.</p>
- <p>As the 70&rsquo;s gave way to the 80&rsquo;s and the three grew to be good friends, Jim drew Simon and Paul towards a new love; heavy metal. Over the next three years, the trio saw every metal band that played at their local venue (The Hammersmith Odeon). While the three saw the likes of Thin Lizzy, Saxon, MSG, Iron Maiden and The Scorpions, their listening tastes also encompassed bands such as Yes, Genesis, King Crimson and Magnum.</p>
- <p>Jim had first played &lsquo;Going For The One&rsquo; by Yes to Simon back in the 70's (Simon rather uncharitably dubbed it &lsquo;f***ing Country &amp; Western&rsquo;. To be fair, Jim told Simon not to bother with Jethro Tull, as he thought they were arse... without actually having ever heard them. Twit.). Jim persevered however, and when he spun &lsquo;A Farewell To Kings&rsquo; by Rush in an afternoon listening session, Simon was well and truly hooked. He now also likes Yes very much. Hah! Jim now also likes Jethro Tull. Hah! Hah!</p>
-
- <p>During their time at Richmond College (South West London), Jim and Simon met guitarist Nick Denville, and formed their first band, with Paul joining on bass soon after. Paul was the only person they knew who owned a car. They also thought he was a top bloke, and so without mentioning the car caveat, the three miscreants cajoled Paul into buying a bass guitar and an amplifier. They called themselves <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">&lsquo;Blackstone Edge&rsquo;</a> and they were bloody rubbish. All they needed was a keyboard player to crown their musical ineptitude.</p>
- <p>Simon&rsquo;s younger brother Jem was 14 when he received his first keyboard (a Casio home synth which he put through a flanger pedal to make it sound cosmic). Jem was initially invited to rehearsals to hold the lyrics up for Jim to sing from while the rest of the band played. It soon became obvious to the guys that Jem's talents were wasted as a music stand and so he was invited into the band. This line up survived for a few months before Nick Denville left to live a happier and entirely more melodic life elsewhere.</p>
- <p>Bloody kids.</p>
- <p>The band continued, and Simon relentlessly poured prog music into Jem's head which was immediately absorbed by the young keyboard player. Less than six months later, Jem had learned all of Tony Banks&rsquo; keyboard solos from both Seconds Out and Three Sides Live along with Rick Wakeman's and Patrick Moraz's solos from Yesshows. With Jem's considerable technique, and the band hungry to write original music, the direction of the band was truely set towards progressive rock. The name <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">Blackstone Edge</a> was soon dropped in favour of &lsquo;Freefall Warriors&rsquo; (after a story in a Doctor Who comic) which very quickly contracted simply to <a href="../__imgs/band/history/freefall.jpg" title="Freefall Mk.1" rel="#hist06">&lsquo;Freefall&rsquo;</a> and with the addition of vocalist Andrew Lovatt, the band began to rehearse <a href="../__imgs/band/history/freefallposter.jpg" title="Poster for Freefall's first gig" rel="#hist05">in preparation for live gigs.</a></p>
-
- <p>During this time the band bumped into actor <a href="../__imgs/band/history/tonyaitken.jpg" title="Tony Aitken" rel="#hist07">Tony Aitken</a> who had worked during his less successful years as a supply teacher at Jim and Simon&rsquo;s school in the 70&rsquo;s. Tony was looking for musicians to back him in a covers band, and the guys duly offered their services (even though they then had no live experience whatsoever). The arrangement worked so well that they kept the band going for over a decade and it was there, working the pubs and clubs of southern England, that they learned the musical chops that would serve them so well in later years.</p>
- <p>In parallel to their function band work, Freefall practice/writing sessions continued. As luck would have it, IQ rehearsed in the studio next door to them, and on the back of their first gig, attended by IQ&rsquo;s then manager, they managed to land the support slot at IQ&rsquo;s Christmas show <a href="../__imgs/band/history/freefallmarquee.jpg" title="Freefall at the Marquee" rel="#hist08">at the Marquee Club in London. Gulp.</a></p>
- <p>Thankfully, the band hit it off immediately with the crowd and soon managed to get a string of gigs with bands like Jadis, Ark, Galahad, Mentaur and Geoff Mann from Twelth Night. Freefall looked as though they were going to make a big impact with the prog community but after an ill-judged attempt to &lsquo;go commercial&rsquo; in the early &lsquo;90s, (Bloody managers!) Jim left the band and the remaining members recruited a very nice gentleman called <a href="../__imgs/band/history/johnboyes.jpg" title="and on guitar - Mr. John Boyes!" rel="#hist09">John Boyes</a> on guitar. However, the moment was lost and the band soon fell apart.</p>
-
- <p>Bloody idiots.</p>
- <p>Jim and Jem briefly went on, to form Pop-proggers &ldquo;Charlottes&rsquo; Web&rdquo; before Jem gave up the scene to work for national radio (although Jem's involvement with prog would be re-ignited a decade later with the formation (with John Boyes) of the Prog supergroup Frost*).</p>
- <p>Meanwhile, Simon and Paul formed an acoustic outfit called <a href="../__imgs/band/history/maddogs.jpg" title="Men Are Dead Mk. I" rel="#hist10">&lsquo;Men Are Dead&rsquo;</a> with keyboard player Col Alkins and lyricist/harmonica player Rob Ramsay. Simon had met Rob way back in the early 80&rsquo;s at Richmond College, at the same time Freefall were making their first tentative steps in music. They became good friends and Rob was always involved at some level, either by helping out at gigs or writing the occasional lyric.</p>
-
- <br />
- <p>Men Are Dead began to play gigs on London's open mic scene (where any artist can roll up and play a short set of between two and five songs) and the band proved to be extremely popular with both audience and fellow musos alike. Col left after their first album, but thankfully, Jim once again joined up with Simon and Paul as a second guitarist, along with <a href="../__imgs/band/history/wayne.jpg" title="Wayne caught in the headlights" rel="#hist12">Wayne Collier</a>, an extraordinary drummer who played in almost every band in West London. <a href="../__imgs/band/history/menaredead.jpg" title="Men Are Dead Mk. II" rel="#hist11">What evolved was a prototype Tinyfish</a> sound and much of the band&rsquo;s current style comes from these early twin guitar shows.</p>
- <p>The millennium came and went, and so did the name &lsquo;Men Are Dead&rsquo;. In came Simon&rsquo;s alter ego &lsquo;Simon Walsh&rsquo;, a <em>nom-de-guerre</em> he still uses today when playing solo acoustic gigs. Whilst notching up appearances in the UK, Germany, France, Estonia and America, they recruited a third guitarist <a href="../__imgs/band/history/hw1.jpg" title="Tim solos at the Hope and Anchor" rel="#hist13">(Tim Eyles)</a> and all looked rosy (if a little Lynyrd Skynyrd) in the garden. Behind the scenes however, things were not going well with the band. Frustration with the strict definitions of acoustic music imposed by many clubs and venues began to take their toll on both the music and musicians. Their material was becoming more complex and the songs started to push past the three minute mark, as the band's deep-seated prog influences once again made themselves felt.</p>
-
- <p>Finally in the late autumn of 2004, after much soul searching, Simon sent Jim an e-mail suggesting that maybe there was little more they could achieve as an acoustic unit and perhaps they should return to their progressive roots. Jim happily agreed and an invite was duly sent out to both Paul and Rob asking if they would be interested in joining, which thankfully they did.</p>
- <p>Simon disbanded the acoustic band, with Tim Eyles joining the punk-pop band &lsquo;The Random&rsquo; and the four remaining musicians <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">assembled in Simon's loft</a> and began writing and rehearsing. Within six weeks it was obvious that there were real possibilities in the music they were making, but the question as to how to record this new material was causing them concern. None of them could afford to go the professional route, so the decision was made to turn the loft into a studio, and try it themselves.</p>
- <p>Robert had set up Lazy Gun Records several years previously, to promote both Men Are Dead and Simon Walsh, and suggested that this new band join the roster. This gave them complete artistic and financial control of their work. </p>
- <p>Bloody tight bastards.</p>
-
- <p>Finally the subject of the name for the band reared its ugly head. There were thoughts that they could resurrect the name Freefall but that idea was soon discarded. This was a new band, and it deserved a new name (besides, someone else was now using &lsquo;Freefall&rsquo; and they looked bigger and meaner than this band). It was Jim that quipped that they were just tiny fish compared to some of the huge prog bands still out there and within moments the name had stuck.</p>
- <p>The problem remained that they were a man short for playing live shows, but in the studio, that base was covered by Simon who, happily, can play both <a href="../__imgs/band/history/drumkit.jpg" title="Simon's electronic drumkit" rel="#hist15">drums</a> and <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">guitar</a> in equal measure (although not at the same time). Meanwhile, the studio had taken shape and the band had found that familiar progressive chemistry once again. The smiles were back on everybody&rsquo;s faces, and the band had a sound they could work to develop.</p>
- <p>When the talk turned once more to live performances, Jim mentioned that he knew a drummer of many bands, the semi-Italian <a href="../__imgs/band/history/leonstatue.jpg" title="Leon at the kit" rel="#hist16">Leon Camfield</a>, and after a few rehearsals (and many beers) together, Leon (for whom truely progressive music is a long held love (note King Crimson tattoo on arm)) enthusiastically joined to complete the Fab Five.</p>
-
- <p>So here we are in 2010. <a href="../__imgs/band/history/tinyfish1.jpg" title="tinyfish" rel="#hist17">Tinyfish</a> have gigged around the country, released both two albums, a mini-album, and a live album &amp; DVD, and have <a href="../__imgs/band/history/tinyfish2.jpg" title="tinyfish" rel="#hist18">arrived at a destination</a> where they feel at home, and are proud of their journey to this place of better dreams.</p>
- <p class="centre"><a href="../__imgs/band/history/strangestudioshot.jpg" title="a tinyfish close encounter" rel="#hist19">Bloody pretentious tossers.</a></p>
-</div>
-</body>
-</html>
-
diff --git a/libs/bower_components/jScrollPane/issues/12/before_reinit.html b/libs/bower_components/jScrollPane/issues/12/before_reinit.html
deleted file mode 100644
index 458e64530d..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/before_reinit.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<meta name="verify-v1" content="ven67p9fXoMQpbw1icSXo8l+I5Z+upY90LnIqaPDgKo=" />
-<link href="brs_main.css" rel="stylesheet" type="text/css"/>
-<link type="text/css" href="jscrollpane-2b3.css" rel="stylesheet" media="all" />
-<title>The History of Tinyfish</title>
-<!-- compliance patch for microsoft browsers -->
-<!--[if lt IE 8]><script src="../__js/IE8.js" type="text/javascript"></script><![endif]-->
-<script src="http://cdn.jquerytools.org/1.2.2/full/jquery.tools.min.js" type="text/javascript"></script>
-
-<script type="text/javascript" src="jquery.mousewheel.js"></script>
-<script type="text/javascript" src="jscrollpane-2b3.js"></script>
-
-<script language="javascript" type="text/javascript">
-$(function()
-{
- $("#content").jScrollPane({
- showArrows: true,
- autoReinitialise: true
- });
-});
-</script>
-</head>
-<body class="nopage">
-<div id="content">
- <h1>The History of Tinyfish</h1>
- <p>It all began with a pair of broken arms and two dodgy eyes.</p>
- <p>It&rsquo;s 1978, the year that <a href="../__imgs/band/history/schoolboyjim.jpg" title="Jim at school" rel="#hist02">Jim Sanders</a> and <a href="../__imgs/band/history/babysimon.jpg" title="Simon as a baby" rel="#hist01">Simon Godfrey</a> met at school in East Sheen (South London). Although each had been aware of the other since the age of five, the two would have been on nothing more than nodding acquaintance, save for two medical problems that forced them together and would eventually lead to the band we know today as Tinyfish.</p>
-
- <p>Bloody weaklings.</p>
- <p>Jim had been diagnosed with a rare retinal disease which had a good chance of robbing him of his vision, and had recently undergone laser eye surgery. Simon more comedically had broken both arms after falling off a roof, leaving him with seriously weakened joints. As part of their convalescence from their respective surgeries, both boys were excused sports for six months.</p>
- <p>While the rest of the kids kicked the living crap out of each other under the pretence of playing football or rugby, Jim and Simon sat on a low school wall watching the on-field carnage and eyeing one another warily. Initially Simon was the talkative one while Jim sat silently, but as soon as the subject matter turned to music, both began to find some common ground, and the conversation became a two way street.</p>
- <p>Initially, Jim had been a Rock/New Wave fan who loved Thin Lizzy (above all others), but incongruously, also the Skids (who would later become Big Country) and the Rezillos (who wouldn&rsquo;t). Simon on the other hand was a fan of ELO and The Sweet but both agreed that music, and in particular, rock bands, were the bee&rsquo;s knees.</p>
- <p>Around the same time , Simon had struck up a friendship with another boy at school called <a href="../__imgs/band/history/youngpaul.jpg" title="Paul - much younger" rel="#hist03">Paul Worwood</a>, initially during school music lessons. The pair were both big fans of Dungeons and Dragons and would play the game constantly throughout their teenage years.</p>
-
- <p>Bloody geeks.</p>
- <p>As the 70&rsquo;s gave way to the 80&rsquo;s and the three grew to be good friends, Jim drew Simon and Paul towards a new love; heavy metal. Over the next three years, the trio saw every metal band that played at their local venue (The Hammersmith Odeon). While the three saw the likes of Thin Lizzy, Saxon, MSG, Iron Maiden and The Scorpions, their listening tastes also encompassed bands such as Yes, Genesis, King Crimson and Magnum.</p>
- <p>Jim had first played &lsquo;Going For The One&rsquo; by Yes to Simon back in the 70's (Simon rather uncharitably dubbed it &lsquo;f***ing Country &amp; Western&rsquo;. To be fair, Jim told Simon not to bother with Jethro Tull, as he thought they were arse... without actually having ever heard them. Twit.). Jim persevered however, and when he spun &lsquo;A Farewell To Kings&rsquo; by Rush in an afternoon listening session, Simon was well and truly hooked. He now also likes Yes very much. Hah! Jim now also likes Jethro Tull. Hah! Hah!</p>
-
- <p>During their time at Richmond College (South West London), Jim and Simon met guitarist Nick Denville, and formed their first band, with Paul joining on bass soon after. Paul was the only person they knew who owned a car. They also thought he was a top bloke, and so without mentioning the car caveat, the three miscreants cajoled Paul into buying a bass guitar and an amplifier. They called themselves <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">&lsquo;Blackstone Edge&rsquo;</a> and they were bloody rubbish. All they needed was a keyboard player to crown their musical ineptitude.</p>
- <p>Simon&rsquo;s younger brother Jem was 14 when he received his first keyboard (a Casio home synth which he put through a flanger pedal to make it sound cosmic). Jem was initially invited to rehearsals to hold the lyrics up for Jim to sing from while the rest of the band played. It soon became obvious to the guys that Jem's talents were wasted as a music stand and so he was invited into the band. This line up survived for a few months before Nick Denville left to live a happier and entirely more melodic life elsewhere.</p>
- <p>Bloody kids.</p>
- <p>The band continued, and Simon relentlessly poured prog music into Jem's head which was immediately absorbed by the young keyboard player. Less than six months later, Jem had learned all of Tony Banks&rsquo; keyboard solos from both Seconds Out and Three Sides Live along with Rick Wakeman's and Patrick Moraz's solos from Yesshows. With Jem's considerable technique, and the band hungry to write original music, the direction of the band was truely set towards progressive rock. The name <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">Blackstone Edge</a> was soon dropped in favour of &lsquo;Freefall Warriors&rsquo; (after a story in a Doctor Who comic) which very quickly contracted simply to <a href="../__imgs/band/history/freefall.jpg" title="Freefall Mk.1" rel="#hist06">&lsquo;Freefall&rsquo;</a> and with the addition of vocalist Andrew Lovatt, the band began to rehearse <a href="../__imgs/band/history/freefallposter.jpg" title="Poster for Freefall's first gig" rel="#hist05">in preparation for live gigs.</a></p>
-
- <p>During this time the band bumped into actor <a href="../__imgs/band/history/tonyaitken.jpg" title="Tony Aitken" rel="#hist07">Tony Aitken</a> who had worked during his less successful years as a supply teacher at Jim and Simon&rsquo;s school in the 70&rsquo;s. Tony was looking for musicians to back him in a covers band, and the guys duly offered their services (even though they then had no live experience whatsoever). The arrangement worked so well that they kept the band going for over a decade and it was there, working the pubs and clubs of southern England, that they learned the musical chops that would serve them so well in later years.</p>
- <p>In parallel to their function band work, Freefall practice/writing sessions continued. As luck would have it, IQ rehearsed in the studio next door to them, and on the back of their first gig, attended by IQ&rsquo;s then manager, they managed to land the support slot at IQ&rsquo;s Christmas show <a href="../__imgs/band/history/freefallmarquee.jpg" title="Freefall at the Marquee" rel="#hist08">at the Marquee Club in London. Gulp.</a></p>
- <p>Thankfully, the band hit it off immediately with the crowd and soon managed to get a string of gigs with bands like Jadis, Ark, Galahad, Mentaur and Geoff Mann from Twelth Night. Freefall looked as though they were going to make a big impact with the prog community but after an ill-judged attempt to &lsquo;go commercial&rsquo; in the early &lsquo;90s, (Bloody managers!) Jim left the band and the remaining members recruited a very nice gentleman called <a href="../__imgs/band/history/johnboyes.jpg" title="and on guitar - Mr. John Boyes!" rel="#hist09">John Boyes</a> on guitar. However, the moment was lost and the band soon fell apart.</p>
-
- <p>Bloody idiots.</p>
- <p>Jim and Jem briefly went on, to form Pop-proggers &ldquo;Charlottes&rsquo; Web&rdquo; before Jem gave up the scene to work for national radio (although Jem's involvement with prog would be re-ignited a decade later with the formation (with John Boyes) of the Prog supergroup Frost*).</p>
- <p>Meanwhile, Simon and Paul formed an acoustic outfit called <a href="../__imgs/band/history/maddogs.jpg" title="Men Are Dead Mk. I" rel="#hist10">&lsquo;Men Are Dead&rsquo;</a> with keyboard player Col Alkins and lyricist/harmonica player Rob Ramsay. Simon had met Rob way back in the early 80&rsquo;s at Richmond College, at the same time Freefall were making their first tentative steps in music. They became good friends and Rob was always involved at some level, either by helping out at gigs or writing the occasional lyric.</p>
-
- <br />
- <p>Men Are Dead began to play gigs on London's open mic scene (where any artist can roll up and play a short set of between two and five songs) and the band proved to be extremely popular with both audience and fellow musos alike. Col left after their first album, but thankfully, Jim once again joined up with Simon and Paul as a second guitarist, along with <a href="../__imgs/band/history/wayne.jpg" title="Wayne caught in the headlights" rel="#hist12">Wayne Collier</a>, an extraordinary drummer who played in almost every band in West London. <a href="../__imgs/band/history/menaredead.jpg" title="Men Are Dead Mk. II" rel="#hist11">What evolved was a prototype Tinyfish</a> sound and much of the band&rsquo;s current style comes from these early twin guitar shows.</p>
- <p>The millennium came and went, and so did the name &lsquo;Men Are Dead&rsquo;. In came Simon&rsquo;s alter ego &lsquo;Simon Walsh&rsquo;, a <em>nom-de-guerre</em> he still uses today when playing solo acoustic gigs. Whilst notching up appearances in the UK, Germany, France, Estonia and America, they recruited a third guitarist <a href="../__imgs/band/history/hw1.jpg" title="Tim solos at the Hope and Anchor" rel="#hist13">(Tim Eyles)</a> and all looked rosy (if a little Lynyrd Skynyrd) in the garden. Behind the scenes however, things were not going well with the band. Frustration with the strict definitions of acoustic music imposed by many clubs and venues began to take their toll on both the music and musicians. Their material was becoming more complex and the songs started to push past the three minute mark, as the band's deep-seated prog influences once again made themselves felt.</p>
-
- <p>Finally in the late autumn of 2004, after much soul searching, Simon sent Jim an e-mail suggesting that maybe there was little more they could achieve as an acoustic unit and perhaps they should return to their progressive roots. Jim happily agreed and an invite was duly sent out to both Paul and Rob asking if they would be interested in joining, which thankfully they did.</p>
- <p>Simon disbanded the acoustic band, with Tim Eyles joining the punk-pop band &lsquo;The Random&rsquo; and the four remaining musicians <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">assembled in Simon's loft</a> and began writing and rehearsing. Within six weeks it was obvious that there were real possibilities in the music they were making, but the question as to how to record this new material was causing them concern. None of them could afford to go the professional route, so the decision was made to turn the loft into a studio, and try it themselves.</p>
- <p>Robert had set up Lazy Gun Records several years previously, to promote both Men Are Dead and Simon Walsh, and suggested that this new band join the roster. This gave them complete artistic and financial control of their work. </p>
- <p>Bloody tight bastards.</p>
-
- <p>Finally the subject of the name for the band reared its ugly head. There were thoughts that they could resurrect the name Freefall but that idea was soon discarded. This was a new band, and it deserved a new name (besides, someone else was now using &lsquo;Freefall&rsquo; and they looked bigger and meaner than this band). It was Jim that quipped that they were just tiny fish compared to some of the huge prog bands still out there and within moments the name had stuck.</p>
- <p>The problem remained that they were a man short for playing live shows, but in the studio, that base was covered by Simon who, happily, can play both <a href="../__imgs/band/history/drumkit.jpg" title="Simon's electronic drumkit" rel="#hist15">drums</a> and <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">guitar</a> in equal measure (although not at the same time). Meanwhile, the studio had taken shape and the band had found that familiar progressive chemistry once again. The smiles were back on everybody&rsquo;s faces, and the band had a sound they could work to develop.</p>
- <p>When the talk turned once more to live performances, Jim mentioned that he knew a drummer of many bands, the semi-Italian <a href="../__imgs/band/history/leonstatue.jpg" title="Leon at the kit" rel="#hist16">Leon Camfield</a>, and after a few rehearsals (and many beers) together, Leon (for whom truely progressive music is a long held love (note King Crimson tattoo on arm)) enthusiastically joined to complete the Fab Five.</p>
-
- <p>So here we are in 2010. <a href="../__imgs/band/history/tinyfish1.jpg" title="tinyfish" rel="#hist17">Tinyfish</a> have gigged around the country, released both two albums, a mini-album, and a live album &amp; DVD, and have <a href="../__imgs/band/history/tinyfish2.jpg" title="tinyfish" rel="#hist18">arrived at a destination</a> where they feel at home, and are proud of their journey to this place of better dreams.</p>
- <p class="centre"><a href="../__imgs/band/history/strangestudioshot.jpg" title="a tinyfish close encounter" rel="#hist19">Bloody pretentious tossers.</a></p>
-</div>
-</body>
-</html>
-
diff --git a/libs/bower_components/jScrollPane/issues/12/brs_main.css b/libs/bower_components/jScrollPane/issues/12/brs_main.css
deleted file mode 100644
index d4bf825511..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/brs_main.css
+++ /dev/null
@@ -1,301 +0,0 @@
-@charset "utf-8";
-/* CSS Document */
-@font-face {
- font-family: 'HelveticaNeueThin';
- src: url('helveticaneue-thin-webfont.eot');
- src: local(''), url('helveticaneue-thin-webfont.woff') format('woff'), url('helveticaneue-thin-webfont.ttf') format('truetype'), url('helveticaneue-thin-webfont.svg#webfont2SG3yTkB') format('svg');
- font-weight: normal;
- font-style: normal;
- font-variant: normal;
-}
-
-body {
- font-family: 'HelveticaNeueThin',Helvetica,Arial,sans-serif;
- font-weight: normal;
- font-style: normal;
- line-height: normal;
- font-size-adjust: 0.51;
- margin: 0px;
- color: #fff;
- background-color: #000;
- overflow:hidden;
-}
-
-P, A {
- font-size: 1em;
- line-height: 1.2em;
-}
-
-P {
- text-align: justify;
- margin-bottom: 1.0em;
-}
-
-a:active {color:#e0262f; text-decoration: none;} /* selected link */
-a:visited {color:#c62128; text-decoration: none;} /* visited link */
-a:link {color:#d2232a; text-decoration: none;} /* unvisited link */
-a:hover {color:#df262e; text-decoration: underline;} /* mouse over link */
-
-LI LI, LI LI A, TD, TD P, BLOCKQUOTE P {
- font-size: 1em;
- line-height: 1.2em;
-}
-
-TABLE {
- border: none;
-}
-
-TD {
- vertical-align: top;
- padding: 0px;
-}
-
-A {
- outline: none;
-}
-
-A IMG {
- border: none;
-}
-
-object { outline:none; }
-
-.red {
- color: #d2232a;
-}
-
-STRONG {
- color: #d2232a;
- font-weight: bold;
-}
-
-h1,h2,h3,h4,h5 {
- color: #d2232a;
-}
-
-h1 {
- font-size: 1.6em;
- font-weight: normal;
- font-style: normal;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-h2 {
- font-size: 1.3em;
- font-weight: normal;
- font-style: italic;
- margin-top: 0.8em;
- margin-bottom: 0px;
-}
-
-h5 {
- font-size: 0.8em;
- margin: 0.5em 0px 0px 0px;
-}
-
-hr {
- color: #ff0000;
-}
-
-/* ----------------- begin supersize --------------------- */
-
-#loading {
- position: absolute;
- top: 49.5%;
- left: 49.5%;
- z-index: 5;
- width: 24px;
- height: 24px;
- text-indent: -999em;
- background-image: url('../__imgs/furn/loading.gif');
-}
-
-#supersize {
- position:fixed;
-}
-
-#supersize img, #supersize a {
- height:100%;
- width:100%;
- position:absolute;
- z-index: 0;
-}
-
-#supersize img {
- image-rendering: optimizeQuality; /* Firefox 3.6+; default behavior is identical, no need to specify */
- -ms-interpolation-mode: bicubic; /* Internet Explorer 7.0; default in IE8+ */
-}
-
-#supersize .prevslide, #supersize .prevslide img {
- z-index: 1;
-}
-
-#supersize .activeslide, #supersize .activeslide img {
- z-index: 2;
-}
-
-/* ------------------ end supersize ---------------------- */
-
-/* ------------------- begin header ---------------------- */
-
-#header {
- position: absolute;
- top: 15px;
- width: 100%;
- margin: 0px auto;
- z-index: 4;
- text-align: center;
-}
-
-#header p {
- text-align: center;
- margin-top: 0.5em;
- }
-
-/* -------------------- end header ----------------------- */
-
-/* ------------------- begin content --------------------- */
-
-#content {
- z-index: 3;
- background-color: #000;
- background-color: rgba(0,0,0,0.9);
- position: absolute;
- left: 0px;
- bottom: 17%;
- height: 62%;
- width: 45%;
- border: 1px solid #555;
- border-left: 0px;
- padding: 0px;
- padding-left: 30px;
- padding-right: 20px;
- overflow: auto;
-}
-
-.frontpage #content {
- visibility: hidden;
-}
-
-.gallerypage #content {
- border: none;
- width: 100%;
- height: 33em;
- bottom: 15%;
- padding: 0px;
- margin: 0px;
-}
-
-.gallerypage #content p {
- text-align: center;
-}
-
-.videopage #content {
- border: none;
- width: 100%;
- height: 65%;
- bottom: 15%;
- padding: 0px;
- margin: 0px;
-}
-
-.videopage #content p {
- text-align: center;
-}
-
-
-/* -------------------- end content ---------------------- */
-
-/* ----------------- begin navigation -------------------- */
-
-#navigate {
- position: absolute;
- height: 4em;
- width: 100%;
- padding: 0px;
- margin: 0px auto;
- bottom: 5%;
- z-index: 3;
- background-color: #000;
- background-color: rgba(0,0,0,0.9);
- border: 1px solid #555;
- border-left: 0px;
- border-right: 0px;
-}
-
-#nav, #nav ul {
- margin: 0px;
- padding: 0px;
- list-style-type: none;
- list-style-position: outside;
- position: relative;
- line-height: 1.6em;
-}
-
-#nav {
- padding: 0.4em;
-}
-
-#nav a {
- display: block;
- height: 1.6em;
- padding: 0px 10px;
- text-decoration:none;
- line-height: 1.6em;
- background-color: #000;
- background-color: rgba(0,0,0,0.9); /* bug in Opera!!! */
-}
-
-#nav a:link, #nav a:active, #nav a:visited {
- color: #fff;
-}
-
-#nav a:hover {
- color: #d2232a;
-}
-
-#nav li {
- float: left;
- font-size: 1em;
- line-height: 1.6em;
-}
-
-#nav ul {
- position:absolute;
- display: none;
-}
-
-#nav ul li a {
- float: left;
- font-size: 1em;
- line-height: 1.6em;
-}
-
-#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li:hover ul ul ul ul {
- display: none;
-}
-
-#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li li li li:hover ul {
- display: block;
- height: 1.6em;
-}
-
-/* ------------------ end navigation --------------------- */
-
-/* ------------------ begin viewcart --------------------- */
-
-#viewcart {
- z-index: 4;
- background-color: #000;
- background-color: rgba(0,0,0,0.9);
- position: absolute;
- right: 10px;
- bottom: 5.5%;
- height: 51px;
- width: 130px;
- padding: 0px;
- overflow: hidden;
-}
-
-/* ------------------- end viewcart ---------------------- */
diff --git a/libs/bower_components/jScrollPane/issues/12/index.html b/libs/bower_components/jScrollPane/issues/12/index.html
deleted file mode 100644
index 9a6f32c8e7..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - issue 12</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="../../style/demo.css" rel="stylesheet" media="all" />
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="../../script/demo.js"></script>
- </head>
- <body>
- <div id="top-nav">
- <img src="../../image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="../../index.html">Home</a></li>
- <li><a href="../../index.html#examples">Examples</a></li>
- <li><a href="../../index.html#themes">Themes</a></li>
- <li><a href="../../index.html#usage">How to use</a></li>
- <li><a href="../../faqs.html">FAQs</a></li>
- <li><a href="../../known_issues.html">Known issues</a></li>
- <li><a href="../../index.html#support">Support</a></li>
- <li><a href="../../index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - issue 12</h1>
- <p>
- This page demonstrates the bug described in <a href="http://github.com/vitch/jScrollPane/issues#issue/12">
- issue 12</a> as reported (with nice striped down test cases) by
- <a href="http://groups.google.com/group/jscrollpane/browse_thread/thread/98efa9ded76d5729">TinyFish</a>.
- </p>
- <ul class="link-list">
- <li>
- <a href="before.html">Before</a> - showing the bug as it appears in the version of jScrollPane which
- was current when it was reported.
- </li>
- <li>
- <a href="native.html">Native</a> - showing how the page looks with native scrollbars (i.e. if
- jScrollPane isn't initialised).
- </li>
- <li>
- <a href="after.html">After</a> - showing the page which was displaying the bug with the latest
- version of jScrollPane.
- </li>
- </ul>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/12/jquery.mousewheel.js b/libs/bower_components/jScrollPane/issues/12/jquery.mousewheel.js
deleted file mode 100644
index 27ed2f102f..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/jquery.mousewheel.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
- * Licensed under the MIT License (LICENSE.txt).
- *
- * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
- * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
- * Thanks to: Seamus Leahy for adding deltaX and deltaY
- *
- * Version: 3.0.3
- *
- * Requires: 1.2.2+
- */
-
-(function($) {
-
-var types = ['DOMMouseScroll', 'mousewheel'];
-
-$.event.special.mousewheel = {
- setup: function() {
- if ( this.addEventListener ) {
- for ( var i=types.length; i; ) {
- this.addEventListener( types[--i], handler, false );
- }
- } else {
- this.onmousewheel = handler;
- }
- },
-
- teardown: function() {
- if ( this.removeEventListener ) {
- for ( var i=types.length; i; ) {
- this.removeEventListener( types[--i], handler, false );
- }
- } else {
- this.onmousewheel = null;
- }
- }
-};
-
-$.fn.extend({
- mousewheel: function(fn) {
- return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
- },
-
- unmousewheel: function(fn) {
- return this.unbind("mousewheel", fn);
- }
-});
-
-
-function handler(event) {
- var orgEvent = event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
-
- event = $.event.fix(event || window.event);
- event.type = "mousewheel";
-
- // Old school scrollwheel delta
- if ( event.wheelDelta ) { delta = event.wheelDelta/120; }
- if ( event.detail ) { delta = -event.detail/3; }
-
- // New school multidimensional scroll (touchpads) deltas
- deltaY = delta;
-
- // Gecko
- if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
- deltaY = 0;
- deltaX = -1*delta;
- }
-
- // Webkit
- if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
- if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
-
- // Add event and delta to the front of the arguments
- args.unshift(event, delta, deltaX, deltaY);
-
- return $.event.handle.apply(this, args);
-}
-
-})(jQuery); \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/12/jscrollpane-2b3.css b/libs/bower_components/jScrollPane/issues/12/jscrollpane-2b3.css
deleted file mode 100644
index 4b91ece526..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/jscrollpane-2b3.css
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * CSS Styles that are needed by jScrollPane for it to operate correctly.
- *
- * Include this stylesheet in your site or copy and paste the styles below into your stylesheet - jScrollPane
- * may not operate correctly without them.
- */
-
-.jspContainer
-{
- overflow: hidden;
- position: relative;
-}
-
-.jspPane
-{
- position: absolute;
-}
-
-.jspVerticalBar
-{
- position: absolute;
- top: 0;
- right: 0;
- width: 16px;
- height: 100%;
- background: red;
-}
-
-.jspHorizontalBar
-{
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 16px;
- background: red;
-}
-
-.jspVerticalBar *,
-.jspHorizontalBar *
-{
- margin: 0;
- padding: 0;
-}
-
-.jspCap
-{
- display: none;
-}
-
-.jspHorizontalBar .jspCap
-{
- float: left;
-}
-
-.jspTrack
-{
- background: #000 url(../__imgs/furn/track.gif) repeat-y center;
- position: relative;
-}
-
-.jspDrag
-{
- background: #666;
- border: solid #aaa 2px;
- position: relative;
- top: 0;
- left: 0;
- cursor: pointer;
-}
-
-.jspHorizontalBar .jspTrack,
-.jspHorizontalBar .jspDrag
-{
- float: left;
- height: 100%;
-}
-
-.jspArrow
-{
- background-color: rgba(0,0,0,0.9);
- text-indent: -20000px;
- display: block;
- cursor: pointer;
-}
-
-.jspArrowUp
-{
- background-image: url("../__imgs/furn/arrow_up.gif");
-}
-
-.jspArrowDown
-{
- background-image: url("../__imgs/furn/arrow_down.gif");
-}
-
-.jspArrow.jspDisabled
-{
- cursor: default;
- background: #80808d;
-}
-
-.jspArrowUp.jspDisabled
-{
- cursor: default;
- background-image: url("../__imgs/furn/arrow_up.gif");
-}
-
-.jspArrowDown.jspDisabled
-{
- cursor: default;
- background-image: url("../__imgs/furn/arrow_down.gif");
-}
-
-.jspVerticalBar .jspArrow
-{
- height: 16px;
-}
-
-.jspHorizontalBar .jspArrow
-{
- width: 16px;
- float: left;
- height: 100%;
-}
-
-.jspVerticalBar .jspArrow:focus
-{
- outline: none;
-}
-
-.jspCorner
-{
- background: #eeeef4;
- float: left;
- height: 100%;
-}
-
-/* Yuk! CSS Hack for IE6 3 pixel bug :( */
-* html .jspCorner
-{
- margin: 0 -3px 0 0;
-} \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/12/jscrollpane-2b3.js b/libs/bower_components/jScrollPane/issues/12/jscrollpane-2b3.js
deleted file mode 100644
index b87f97e107..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/jscrollpane-2b3.js
+++ /dev/null
@@ -1,1063 +0,0 @@
-/*!
- * jScrollPane - v2.0.0beta3 - 2010-08-27
- * http://jscrollpane.kelvinluck.com/
- *
- * Copyright (c) 2010 Kelvin Luck
- * Dual licensed under the MIT or GPL licenses.
- */
-
-// Script: jScrollPane - cross browser customisable scrollbars
-//
-// *Version: 2.0.0beta3, Last updated: 2010-08-27*
-//
-// Project Home - http://jscrollpane.kelvinluck.com/
-// GitHub - http://github.com/vitch/jScrollPane
-// Source - http://github.com/vitch/jScrollPane/raw/master/script/jquery.jscrollpane.js
-// (Minified) - http://github.com/vitch/jScrollPane/raw/master/script/jquery.jscrollpane.min.js
-//
-// About: License
-//
-// Copyright (c) 2010 Kelvin Luck
-// Dual licensed under the MIT or GPL Version 2 licenses.
-// http://jscrollpane.kelvinluck.com/MIT-LICENSE.txt
-// http://jscrollpane.kelvinluck.com/GPL-LICENSE.txt
-//
-// About: Examples
-//
-// All examples and demos are available through the jScrollPane example site at:
-// http://jscrollpane.kelvinluck.com/
-//
-// About: Support and Testing
-//
-// This plugin is tested on the browsers below and has been found to work reliably on them. If you run
-// into a problem on one of the supported browsers then please visit the support section on the jScrollPane
-// website (http://jscrollpane.kelvinluck.com/) for more information on getting support. You are also
-// welcome to fork the project on GitHub if you can contribute a fix for a given issue.
-//
-// jQuery Versions - 1.4.2
-// Browsers Tested - Firefox 3.6.8, Safari 5, Opera 10.6, Chrome 5.0, IE 6, 7, 8
-//
-// About: Release History
-//
-// 2.0.0beta3 - (2010-08-27) Horizontal mousewheel, mwheelIntent, keyboard support, bug fixes
-// 2.0.0beta2 - (2010-08-21) Bug fixes
-// 2.0.0beta1 - (2010-08-17) Rewrite to follow modern best practices and enable horizontal scrolling, initially hidden
-// elements and dynamically sized elements.
-// 1.x - (2006-12-31 - 2010-07-31) Initial version, hosted at googlecode, deprecated
-
-(function($,window,undefined){
-
- $.fn.jScrollPane = function(settings)
- {
- // JScrollPane "class" - public methods are available through $('selector').data('jsp')
- function JScrollPane(elem, s)
- {
-
- var settings, jsp = this, pane, paneWidth, paneHeight, container, contentWidth, contentHeight,
- percentInViewH, percentInViewV, isScrollableV, isScrollableH, verticalDrag, dragMaxY,
- verticalDragPosition, horizontalDrag, dragMaxX, horizontalDragPosition,
- verticalBar, verticalTrack, scrollbarWidth, verticalTrackHeight, verticalDragHeight, arrowUp, arrowDown,
- horizontalBar, horizontalTrack, horizontalTrackWidth, horizontalDragWidth, arrowLeft, arrowRight,
- reinitialiseInterval, originalPadding, originalPaddingTotalWidth, previousPaneWidth,
- wasAtTop = true, wasAtLeft = true, wasAtBottom = false, wasAtRight = false,
- mwEvent = $.fn.mwheelIntent ? 'mwheelIntent.jsp' : 'mousewheel.jsp';
-
- originalPadding = elem.css('paddingTop') + ' ' +
- elem.css('paddingRight') + ' ' +
- elem.css('paddingBottom') + ' ' +
- elem.css('paddingLeft');
- originalPaddingTotalWidth = (parseInt(elem.css('paddingLeft')) || 0) +
- (parseInt(elem.css('paddingRight')) || 0);
-
- initialise(s);
-
- function initialise(s)
- {
-
- var clonedElem, tempWrapper, /*firstChild, lastChild, */isMaintainingPositon, lastContentX, lastContentY,
- hasContainingSpaceChanged;
-
- settings = s;
-
- if (pane == undefined) {
-
- elem.css(
- {
- 'overflow': 'hidden',
- 'padding': 0
- }
- );
- // TODO: Deal with where width/ height is 0 as it probably means the element is hidden and we should
- // come back to it later and check once it is unhidden...
- paneWidth = elem.innerWidth() + originalPaddingTotalWidth;
- paneHeight = elem.innerHeight();
-
- elem.width(paneWidth);
-
- pane = $('<div class="jspPane" />').wrap(
- $('<div class="jspContainer" />')
- .css({
- 'width': paneWidth + 'px',
- 'height': paneHeight + 'px'
- }
- )
- );
-
- elem.wrapInner(pane.parent());
- // Need to get the vars after being added to the document, otherwise they reference weird
- // disconnected orphan elements...
- container = elem.find('>.jspContainer');
- pane = container.find('>.jspPane');
- pane.css('padding', originalPadding);
-
- /*
- // Move any margins from the first and last children up to the container so they can still
- // collapse with neighbouring elements as they would before jScrollPane
- firstChild = pane.find(':first-child');
- lastChild = pane.find(':last-child');
- elem.css(
- {
- 'margin-top': firstChild.css('margin-top'),
- 'margin-bottom': lastChild.css('margin-bottom')
- }
- );
- firstChild.css('margin-top', 0);
- lastChild.css('margin-bottom', 0);
- */
- } else {
-
- elem.css('width', null);
-
- hasContainingSpaceChanged = elem.outerWidth() + originalPaddingTotalWidth != paneWidth || elem.outerHeight() != paneHeight;
-
- if (hasContainingSpaceChanged) {
- paneWidth = elem.innerWidth() + originalPaddingTotalWidth;
- paneHeight = elem.innerHeight();
- container.css({
- 'width': paneWidth + 'px',
- 'height': paneHeight + 'px'
- });
- }
-
- previousPaneWidth = pane.innerWidth();
-
- if (!hasContainingSpaceChanged && pane.outerWidth() == contentWidth && pane.outerHeight() == contentHeight) {
- // Nothing has changed since we last initialised
- if (isScrollableH || isScrollableV) { // If we had already set a width then re-set it
- pane.css('width', previousPaneWidth + 'px');
- elem.css('width', (previousPaneWidth + originalPaddingTotalWidth) + 'px');
- }
- // Then abort...
- return;
- }
-
- pane.css('width', null);
- elem.css('width', (paneWidth + originalPaddingTotalWidth) + 'px');
-
- container.find('>.jspVerticalBar,>.jspHorizontalBar').remove().end();
- }
-
- // Unfortunately it isn't that easy to find out the width of the element as it will always report the
- // width as allowed by its container, regardless of overflow settings.
- // A cunning workaround is to clone the element, set its position to absolute and place it in a narrow
- // container. Now it will push outwards to its maxium real width...
- clonedElem = pane.clone().css('position', 'absolute');
- tempWrapper = $('<div style="width:1px; position: relative;" />').append(clonedElem);
- $('body').append(tempWrapper);
- contentWidth = Math.max(pane.outerWidth(), clonedElem.outerWidth());
- tempWrapper.remove();
-
- contentHeight = pane.outerHeight(true);
- /*alert(contentHeight); */
- percentInViewH = contentWidth / paneWidth;
- percentInViewV = contentHeight / paneHeight;
- isScrollableV = percentInViewV > 1;
-
- isScrollableH = percentInViewH > 1;
-
- //console.log(paneWidth, paneHeight, contentWidth, contentHeight, percentInViewH, percentInViewV, isScrollableH, isScrollableV);
-
- if (!(isScrollableH || isScrollableV)) {
- elem.removeClass('jspScrollable');
- pane.css({
- 'top': 0,
- 'width': container.width() + 'px'
- });
- removeMousewheel();
- removeFocusHandler();
- removeKeyboardNav();
- unhijackInternalLinks();
- } else {
- elem.addClass('jspScrollable');
-
- isMaintainingPositon = settings.maintainPosition && (verticalDragPosition || horizontalDragPosition);
- if (isMaintainingPositon) {
- lastContentX = contentPositionX();
- lastContentY = contentPositionY();
- }
-
- initialiseVerticalScroll();
- initialiseHorizontalScroll();
- resizeScrollbars();
-
- if (isMaintainingPositon) {
- scrollToX(lastContentX);
- scrollToY(lastContentY);
- }
-
- initFocusHandler();
- initMousewheel();
- if (settings.enableKeyboardNavigation) {
- initKeyboardNav();
- }
-
- observeHash();
- if (settings.hijackInternalLinks) {
- hijackInternalLinks();
- }
- }
-
- if (settings.autoReinitialise && !reinitialiseInterval) {
- reinitialiseInterval = setInterval(
- function()
- {
- initialise(settings);
- },
- settings.autoReinitialiseDelay
- );
- } else if (!settings.autoReinitialise && reinitialiseInterval) {
- clearInterval(reinitialiseInterval)
- }
-
- elem.trigger('jsp-initialised', [isScrollableH || isScrollableV]);
- }
-
- function initialiseVerticalScroll()
- {
- if (isScrollableV) {
-
- container.append(
- $('<div class="jspVerticalBar" />').append(
- $('<div class="jspCap jspCapTop" />'),
- $('<div class="jspTrack" />').append(
- $('<div class="jspDrag" />').append(
- $('<div class="jspDragTop" />'),
- $('<div class="jspDragBottom" />')
- )
- ),
- $('<div class="jspCap jspCapBottom" />')
- )
- );
-
- verticalBar = container.find('>.jspVerticalBar');
- verticalTrack = verticalBar.find('>.jspTrack');
- verticalDrag = verticalTrack.find('>.jspDrag');
-
- if (settings.showArrows) {
- arrowUp = $('<a class="jspArrow jspArrowUp" />').bind(
- 'mousedown.jsp', getArrowScroll(0, -1)
- ).bind('click.jsp', nil);
- arrowDown = $('<a class="jspArrow jspArrowDown" />').bind(
- 'mousedown.jsp', getArrowScroll(0, 1)
- ).bind('click.jsp', nil);
- if (settings.arrowScrollOnHover) {
- arrowUp.bind('mouseover.jsp', getArrowScroll(0, -1, arrowUp));
- arrowDown.bind('mouseover.jsp', getArrowScroll(0, 1, arrowDown));
- }
-
- appendArrows(verticalTrack, settings.verticalArrowPositions, arrowUp, arrowDown);
- }
-
- verticalTrackHeight = paneHeight;
- container.find('>.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow').each(
- function()
- {
- verticalTrackHeight -= $(this).outerHeight();
- }
- );
-
-
- verticalDrag.hover(
- function()
- {
- verticalDrag.addClass('jspHover');
- },
- function()
- {
- verticalDrag.removeClass('jspHover');
- }
- ).bind(
- 'mousedown.jsp',
- function(e)
- {
- // Stop IE from allowing text selection
- $('html').bind('dragstart.jsp selectstart.jsp', function() { return false; });
-
- verticalDrag.addClass('jspActive');
-
- var startY = e.pageY - verticalDrag.position().top;
-
- $('html').bind(
- 'mousemove.jsp',
- function(e)
- {
- positionDragY(e.pageY - startY, false);
- }
- ).bind('mouseup.jsp mouseleave.jsp', cancelDrag);
- return false;
- }
- );
- sizeVerticalScrollbar();
- updateVerticalArrows();
- }
- }
-
- function sizeVerticalScrollbar()
- {
- verticalTrack.height(verticalTrackHeight + 'px');
- verticalDragPosition = 0;
- scrollbarWidth = settings.verticalGutter + verticalTrack.outerWidth();
-
- // Make the pane thinner to allow for the vertical scrollbar
- pane.width(paneWidth - scrollbarWidth - originalPaddingTotalWidth);
-
- // Add margin to the left of the pane if scrollbars are on that side (to position
- // the scrollbar on the left or right set it's left or right property in CSS)
- if (verticalBar.position().left == 0) {
- pane.css('margin-left', scrollbarWidth + 'px');
- }
- }
-
- function initialiseHorizontalScroll()
- {
- if (isScrollableH) {
-
- container.append(
- $('<div class="jspHorizontalBar" />').append(
- $('<div class="jspCap jspCapLeft" />'),
- $('<div class="jspTrack" />').append(
- $('<div class="jspDrag" />').append(
- $('<div class="jspDragLeft" />'),
- $('<div class="jspDragRight" />')
- )
- ),
- $('<div class="jspCap jspCapRight" />')
- )
- );
-
- horizontalBar = container.find('>.jspHorizontalBar');
- horizontalTrack = horizontalBar.find('>.jspTrack');
- horizontalDrag = horizontalTrack.find('>.jspDrag');
-
- if (settings.showArrows) {
- arrowLeft = $('<a class="jspArrow jspArrowLeft" />').bind(
- 'mousedown.jsp', getArrowScroll(-1, 0)
- ).bind('click.jsp', nil);
- arrowRight = $('<a class="jspArrow jspArrowRight" />').bind(
- 'mousedown.jsp', getArrowScroll(1, 0)
- ).bind('click.jsp', nil);
- if (settings.arrowScrollOnHover) {
- arrowLeft.bind('mouseover.jsp', getArrowScroll(-1, 0, arrowLeft));
- arrowRight.bind('mouseover.jsp', getArrowScroll(1, 0, arrowRight));
- }
- appendArrows(horizontalTrack, settings.horizontalArrowPositions, arrowLeft, arrowRight);
- }
-
- horizontalDrag.hover(
- function()
- {
- horizontalDrag.addClass('jspHover');
- },
- function()
- {
- horizontalDrag.removeClass('jspHover');
- }
- ).bind(
- 'mousedown.jsp',
- function(e)
- {
- // Stop IE from allowing text selection
- $('html').bind('dragstart.jsp selectstart.jsp', function() { return false; });
-
- horizontalDrag.addClass('jspActive');
-
- var startX = e.pageX - horizontalDrag.position().left;
-
- $('html').bind(
- 'mousemove.jsp',
- function(e)
- {
- positionDragX(e.pageX - startX, false);
- }
- ).bind('mouseup.jsp mouseleave.jsp', cancelDrag);
- return false;
- }
- );
- horizontalTrackWidth = container.innerWidth();
- sizeHorizontalScrollbar();
- updateHorizontalArrows();
- } else {
- // no horizontal scroll
- }
- }
-
- function sizeHorizontalScrollbar()
- {
-
- container.find('>.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow').each(
- function()
- {
- horizontalTrackWidth -= $(this).outerWidth();
- }
- );
-
- horizontalTrack.width(horizontalTrackWidth + 'px');
- horizontalDragPosition = 0;
- }
-
- function resizeScrollbars()
- {
- if (isScrollableH && isScrollableV) {
- var horizontalTrackHeight = horizontalTrack.outerHeight(),
- verticalTrackWidth = verticalTrack.outerWidth();
- verticalTrackHeight -= horizontalTrackHeight;
- $(horizontalBar).find('>.jspCap:visible,>.jspArrow').each(
- function()
- {
- horizontalTrackWidth += $(this).outerWidth();
- }
- );
- horizontalTrackWidth -= verticalTrackWidth;
- paneHeight -= verticalTrackWidth;
- paneWidth -= horizontalTrackHeight;
- horizontalTrack.parent().append(
- $('<div class="jspCorner" />').css('width', horizontalTrackHeight + 'px')
- );
- sizeVerticalScrollbar();
- sizeHorizontalScrollbar();
- }
- // reflow content
- if (isScrollableH) {
- pane.width((container.outerWidth() - originalPaddingTotalWidth) + 'px');
- }
- contentHeight = pane.outerHeight();
- percentInViewV = contentHeight / paneHeight;
-
- if (isScrollableH) {
- horizontalDragWidth = 1 / percentInViewH * horizontalTrackWidth;
- if (horizontalDragWidth > settings.horizontalDragMaxWidth) {
- horizontalDragWidth = settings.horizontalDragMaxWidth;
- } else if (horizontalDragWidth < settings.horizontalDragMinWidth) {
- horizontalDragWidth = settings.horizontalDragMinWidth;
- }
- horizontalDrag.width(horizontalDragWidth + 'px');
- dragMaxX = horizontalTrackWidth - horizontalDragWidth;
- }
- if (isScrollableV) {
- verticalDragHeight = 1 / percentInViewV * verticalTrackHeight;
- if (verticalDragHeight > settings.verticalDragMaxHeight) {
- verticalDragHeight = settings.verticalDragMaxHeight;
- } else if (verticalDragHeight < settings.verticalDragMinHeight) {
- verticalDragHeight = settings.verticalDragMinHeight;
- }
- verticalDrag.height(verticalDragHeight + 'px');
- dragMaxY = verticalTrackHeight - verticalDragHeight;
- }
- }
-
- function appendArrows(ele, p, a1, a2)
- {
- var p1 = "before", p2 = "after", aTemp;
-
- // Sniff for mac... Is there a better way to determine whether the arrows would naturally appear
- // at the top or the bottom of the bar?
- if (p == "os") {
- p = /Mac/.test(navigator.platform) ? "after" : "split";
- }
- if (p == p1) {
- p2 = p;
- } else if (p == p2) {
- p1 = p;
- aTemp = a1;
- a1 = a2;
- a2 = aTemp;
- }
-
- ele[p1](a1)[p2](a2);
- }
-
- function getArrowScroll(dirX, dirY, ele) {
- return function()
- {
- arrowScroll(dirX, dirY, this, ele);
- this.blur();
- return false;
- }
- }
-
- function arrowScroll(dirX, dirY, arrow, ele)
- {
- arrow = $(arrow).addClass('jspActive');
-
- var eve, doScroll = function()
- {
- if (dirX != 0) {
- positionDragX(horizontalDragPosition + dirX * settings.arrowButtonSpeed, false);
- }
- if (dirY != 0) {
- positionDragY(verticalDragPosition + dirY * settings.arrowButtonSpeed, false);
- }
- },
- scrollInt = setInterval(doScroll, settings.arrowRepeatFreq);
-
- doScroll();
-
- eve = ele == undefined ? 'mouseup.jsp' : 'mouseout.jsp';
- ele = ele || $('html');
- ele.bind(
- eve,
- function()
- {
- arrow.removeClass('jspActive');
- clearInterval(scrollInt);
- ele.unbind(eve);
- }
- );
- }
-
- function cancelDrag()
- {
- $('html').unbind('dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp');
-
- verticalDrag && verticalDrag.removeClass('jspActive');
- horizontalDrag && horizontalDrag.removeClass('jspActive');
- }
-
- function positionDragY(destY, animate)
- {
- if (!isScrollableV) {
- return;
- }
- if (destY < 0) {
- destY = 0;
- } else if (destY > dragMaxY) {
- destY = dragMaxY;
- }
-
- // can't just check if(animate) because false is a valid value that could be passed in...
- if (animate == undefined) {
- animate = settings.animateScroll;
- }
- if (animate) {
- jsp.animate(verticalDrag, 'top', destY, _positionDragY);
- } else {
- verticalDrag.css('top', destY);
- _positionDragY(destY);
- }
-
- }
-
- function _positionDragY(destY)
- {
- if (destY == undefined) {
- destY = verticalDrag.position().top;
- }
-
- container.scrollTop(0);
- verticalDragPosition = destY;
-
- var isAtTop = verticalDragPosition == 0,
- isAtBottom = verticalDragPosition == dragMaxY,
- percentScrolled = destY/ dragMaxY,
- destTop = -percentScrolled * (contentHeight - paneHeight);
-
- if (wasAtTop != isAtTop || wasAtBottom != isAtBottom) {
- wasAtTop = isAtTop;
- wasAtBottom = isAtBottom;
- elem.trigger('jsp-arrow-change', [wasAtTop, wasAtBottom, wasAtLeft, wasAtRight]);
- }
-
- updateVerticalArrows(isAtTop, isAtBottom);
- pane.css('top', destTop);
- elem.trigger('jsp-scroll-y', [-destTop, isAtTop, isAtBottom]);
- }
-
- function positionDragX(destX, animate)
- {
- if (!isScrollableH) {
- return;
- }
- if (destX < 0) {
- destX = 0;
- } else if (destX > dragMaxX) {
- destX = dragMaxX;
- }
-
- if (animate == undefined) {
- animate = settings.animateScroll;
- }
- if (animate) {
- jsp.animate(horizontalDrag, 'left', destX, _positionDragX);
- } else {
- horizontalDrag.css('left', destX);
- _positionDragX(destX);
- }
- }
-
- function _positionDragX(destX)
- {
- if (destX == undefined) {
- destX = horizontalDrag.position().left;
- }
-
- container.scrollTop(0);
- horizontalDragPosition = destX;
-
- var isAtLeft = horizontalDragPosition == 0,
- isAtRight = horizontalDragPosition == dragMaxY,
- percentScrolled = destX / dragMaxX,
- destLeft = -percentScrolled * (contentWidth - paneWidth);
-
- if (wasAtLeft != isAtLeft || wasAtRight != isAtRight) {
- wasAtLeft = isAtLeft;
- wasAtRight = isAtRight;
- elem.trigger('jsp-arrow-change', [wasAtTop, wasAtBottom, wasAtLeft, wasAtRight]);
- }
-
- updateHorizontalArrows(isAtLeft, isAtRight);
- pane.css('left', destLeft);
- elem.trigger('jsp-scroll-x', [-destLeft, isAtLeft, isAtRight]);
- }
-
- function updateVerticalArrows(isAtTop, isAtBottom)
- {
- if (settings.showArrows) {
- arrowUp[isAtTop ? 'addClass' : 'removeClass']('jspDisabled');
- arrowDown[isAtBottom ? 'addClass' : 'removeClass']('jspDisabled');
- }
- }
-
- function updateHorizontalArrows(isAtLeft, isAtRight)
- {
- if (settings.showArrows) {
- arrowLeft[isAtLeft ? 'addClass' : 'removeClass']('jspDisabled');
- arrowRight[isAtRight ? 'addClass' : 'removeClass']('jspDisabled');
- }
- }
-
- function scrollToY(destY, animate)
- {
- var percentScrolled = destY / (contentHeight - paneHeight);
- positionDragY(percentScrolled * dragMaxY, animate);
- }
-
- function scrollToX(destX, animate)
- {
- var percentScrolled = destX / (contentWidth - paneWidth);
- positionDragX(percentScrolled * dragMaxX, animate);
- }
-
- function scrollToElement(ele, stickToTop, animate)
- {
- var e, eleHeight, eleTop = 0, viewportTop, maxVisibleEleTop, destY;
-
- // Legal hash values aren't necessarily legal jQuery selectors so we need to catch any
- // errors from the lookup...
- try {
- e = $(ele);
- } catch (err) {
- return;
- }
- eleHeight = e.outerHeight();
-
- container.scrollTop(0);
-
- // loop through parents adding the offset top of any elements that are relatively positioned between
- // the focused element and the jspPane so we can get the true distance from the top
- // of the focused element to the top of the scrollpane...
- while (!e.is('.jspPane')) {
- eleTop += e.position().top;
- e = e.offsetParent();
- if (/^body|html$/i.test(e[0].nodeName)) {
- // we ended up too high in the document structure. Quit!
- return;
- }
- }
-
-
- viewportTop = contentPositionY();
- maxVisibleEleTop = viewportTop + paneHeight;
- if (eleTop < viewportTop || stickToTop) { // element is above viewport
- destY = eleTop - settings.verticalGutter;
- } else if (eleTop + eleHeight > maxVisibleEleTop) { // element is below viewport
- destY = eleTop - paneHeight + eleHeight + settings.verticalGutter;
- }
- if (destY) {
- scrollToY(destY, animate);
- }
- // TODO: Implement automatic horizontal scrolling?
- }
-
- function contentPositionX()
- {
- return -pane.position().left;
- }
-
- function contentPositionY()
- {
- return -pane.position().top;
- }
-
- function initMousewheel()
- {
- container.unbind(mwEvent).bind(
- mwEvent,
- function (event, delta, deltaX, deltaY) {
- var dX = horizontalDragPosition, dY = verticalDragPosition;
- positionDragX(horizontalDragPosition + deltaX * settings.mouseWheelSpeed, false)
- positionDragY(verticalDragPosition - deltaY * settings.mouseWheelSpeed, false);
- // return true if there was no movement so rest of screen can scroll
- return dX == horizontalDragPosition && dY == verticalDragPosition;
- }
- );
- }
-
- function removeMousewheel()
- {
- container.unbind(mwEvent);
- }
-
- function nil()
- {
- return false;
- }
-
- function initFocusHandler()
- {
- pane.unbind('focusin.jsp').bind(
- 'focusin.jsp',
- function(e)
- {
- if(e.target === pane[0]){return;}
- scrollToElement(e.target, false);
- }
- );
- }
-
- function removeFocusHandler()
- {
-
- pane.unbind('focusin.jsp');
- }
-
- function initKeyboardNav()
- {
- var pressed, pressedTimer;
- elem.attr('tabindex', 0)
- .unbind('keydown.jsp')
- .bind(
- 'keydown.jsp',
- function(e)
- {
- if(e.target !== elem[0]){
- return;
- }
- var dX = horizontalDragPosition, dY = verticalDragPosition, step = pressed ? 2 : 16;
- switch(e.keyCode) {
- case 40: // down
- positionDragY(verticalDragPosition + step, false);
- break;
- case 38: // up
- positionDragY(verticalDragPosition - step, false);
- break;
- case 34: // page down
- case 32: // space
- scrollToY(contentPositionY() + Math.max(32, paneHeight) - 16);
- break;
- case 33: // page up
- scrollToY(contentPositionY() - paneHeight + 16);
- break;
- case 35: // end
- scrollToY(contentHeight - paneHeight);
- break;
- case 36: // home
- scrollToY(0);
- break;
- case 39: // right
- positionDragX(horizontalDragPosition + step, false);
- break;
- case 37: // left
- positionDragX(horizontalDragPosition - step, false);
- break;
- }
-
- if( !(dX == horizontalDragPosition && dY == verticalDragPosition) ){
- pressed = true;
- clearTimeout(pressedTimer);
- pressedTimer = setTimeout(function(){
- pressed = false;
- }, 260);
- return false;
- }
- }
- );
- if(settings.hideFocus) {
- elem.css('outline', 'none');
- if('hideFocus' in container[0]){
- elem.attr('hideFocus', true);
- }
- } else {
- elem.css('outline', '');
- if('hideFocus' in container[0]){
- elem.attr('hideFocus', false);
- }
- }
- }
-
- function removeKeyboardNav()
- {
- elem.attr('tabindex', '-1')
- .removeAttr('tabindex')
- .unbind('keydown.jsp');
- }
-
- function observeHash()
- {
- if (location.hash && location.hash.length > 1) {
- var e, retryInt;
- try {
- e = $(location.hash);
- } catch (err) {
- return;
- }
-
- if (e.length && pane.find(e)) {
- // nasty workaround but it appears to take a little while before the hash has done its thing
- // to the rendered page so we just wait until the container's scrollTop has been messed up.
- if (container.scrollTop() == 0) {
- retryInt = setInterval(
- function()
- {
- if (container.scrollTop() > 0) {
- scrollToElement(location.hash, true);
- $(document).scrollTop(container.position().top);
- clearInterval(retryInt);
- }
- },
- 50
- )
- } else {
- scrollToElement(location.hash, true);
- $(document).scrollTop(container.position().top);
- }
- }
- }
- }
-
- function unhijackInternalLinks()
- {
- $('a.jspHijack').unbind('click.jsp-hijack').removeClass('jspHijack');
- }
-
- function hijackInternalLinks()
- {
- unhijackInternalLinks();
- $('a[href^=#]').addClass('jspHijack').bind(
- 'click.jsp-hijack',
- function()
- {
- var uriParts = this.href.split('#'), hash;
- if (uriParts.length > 1) {
- hash = uriParts[1];
- if (hash.length > 0 && pane.find('#' + hash).length > 0) {
- scrollToElement('#' + hash, true);
- // Need to return false otherwise things mess up... Would be nice to maybe also scroll
- // the window to the top of the scrollpane?
- return false;
- }
- }
- }
- )
- }
-
- // Public API
- $.extend(
- jsp,
- {
- // Reinitialises the scroll pane (if it's internal dimensions have changed since the last time it
- // was initialised). The settings object which is passed in will override any settings from the
- // previous time it was initialised - if you don't pass any settings then the ones from the previous
- // initialisation will be used.
- reinitialise: function(s)
- {
- s = $.extend({}, s, settings);
- initialise(s);
- },
- // Scrolls the specified element (a jQuery object, DOM node or jQuery selector string) into view so
- // that it can be seen within the viewport. If stickToTop is true then the element will appear at
- // the top of the viewport, if it is false then the viewport will scroll as little as possible to
- // show the element. You can also specify if you want animation to occur. If you don't provide this
- // argument then the animateScroll value from the settings object is used instead.
- scrollToElement: function(ele, stickToTop, animate)
- {
- scrollToElement(ele, stickToTop, animate);
- },
- // Scrolls the pane so that the specified co-ordinates within the content are at the top left
- // of the viewport. animate is optional and if not passed then the value of animateScroll from
- // the settings object this jScrollPane was initialised with is used.
- scrollTo: function(destX, destY, animate)
- {
- scrollToX(destX, animate);
- scrollToY(destY, animate);
- },
- // Scrolls the pane so that the specified co-ordinate within the content is at the left of the
- // viewport. animate is optional and if not passed then the value of animateScroll from the settings
- // object this jScrollPane was initialised with is used.
- scrollToX: function(destX, animate)
- {
- scrollToX(destX, animate);
- },
- // Scrolls the pane so that the specified co-ordinate within the content is at the top of the
- // viewport. animate is optional and if not passed then the value of animateScroll from the settings
- // object this jScrollPane was initialised with is used.
- scrollToY: function(destY, animate)
- {
- scrollToY(destY, animate);
- },
- // Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- // the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- scrollBy: function(deltaX, deltaY, animate)
- {
- jsp.scrollByX(deltaX, animate);
- jsp.scrollByY(deltaY, animate);
- },
- // Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- // the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- scrollByX: function(deltaX, animate)
- {
- var destX = contentPositionX() + deltaX,
- percentScrolled = destX / (contentWidth - paneWidth);
- positionDragX(percentScrolled * dragMaxX, animate);
- },
- // Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- // the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- scrollByY: function(deltaY, animate)
- {
- var destY = contentPositionY() + deltaY,
- percentScrolled = destY / (contentHeight - paneHeight);
- positionDragY(percentScrolled * dragMaxY, animate);
- },
- // This method is called when jScrollPane is trying to animate to a new position. You can override
- // it if you want to provide advanced animation functionality. It is passed the following arguments:
- // * ele - the element whose position is being animated
- // * prop - the property that is being animated
- // * value - the value it's being animated to
- // * stepCallback - a function that you must execute each time you update the value of the property
- // You can use the default implementation (below) as a starting point for your own implementation.
- animate: function(ele, prop, value, stepCallback)
- {
- var params = {};
- params[prop] = value;
- ele.animate(
- params,
- {
- 'duration' : settings.animateDuration,
- 'ease' : settings.animateEase,
- 'queue' : false,
- 'step' : stepCallback
- }
- );
- },
- // Returns the current x position of the viewport with regards to the content pane.
- getContentPositionX: function()
- {
- return contentPositionX();
- },
- // Returns the current y position of the viewport with regards to the content pane.
- getContentPositionY: function()
- {
- return contentPositionY();
- },
- // Returns whether or not this scrollpane has a horizontal scrollbar.
- getIsScrollableH: function()
- {
- return isScrollableH;
- },
- // Returns whether or not this scrollpane has a vertical scrollbar.
- getIsScrollableV: function()
- {
- return isScrollableV;
- },
- // Gets a reference to the content pane. It is important that you use this method if you want to
- // edit the content of your jScrollPane as if you access the element directly then you may have some
- // problems (as your original element has had additional elements for the scrollbars etc added into
- // it).
- getContentPane: function()
- {
- return pane;
- },
- // Scrolls this jScrollPane down as far as it can currently scroll. If animate isn't passed then the
- // animateScroll value from settings is used instead.
- scrollToBottom: function(animate)
- {
- positionDragY(dragMaxY, animate);
- },
- // Hijacks the links on the page which link to content inside the scrollpane. If you have changed
- // the content of your page (e.g. via AJAX) and want to make sure any new anchor links to the
- // contents of your scroll pane will work then call this function.
- hijackInternalLinks: function()
- {
- hijackInternalLinks();
- }
- }
- );
- }
-
- // Pluginifying code...
-
- settings = $.extend({}, $.fn.jScrollPane.defaults, settings);
-
- var ret;
- this.each(
- function()
- {
- var elem = $(this), jspApi = elem.data('jsp');
- if (jspApi) {
- jspApi.reinitialise(settings);
- } else {
- jspApi = new JScrollPane(elem, settings);
- elem.data('jsp', jspApi);
- }
- ret = ret ? ret.add(elem) : elem;
- }
- )
- return ret;
- };
-
- $.fn.jScrollPane.defaults = {
- 'showArrows' : false,
- 'maintainPosition' : true,
- 'autoReinitialise' : false,
- 'autoReinitialiseDelay' : 500,
- 'verticalDragMinHeight' : 0,
- 'verticalDragMaxHeight' : 99999,
- 'horizontalDragMinWidth' : 0,
- 'horizontalDragMaxWidth' : 99999,
- 'animateScroll' : false,
- 'animateDuration' : 300,
- 'animateEase' : 'linear',
- 'hijackInternalLinks' : false,
- 'verticalGutter' : 4,
- 'horizontalGutter' : 4,
- 'mouseWheelSpeed' : 10,
- 'arrowButtonSpeed' : 10,
- 'arrowRepeatFreq' : 100,
- 'arrowScrollOnHover' : false,
- 'verticalArrowPositions' : 'split',
- 'horizontalArrowPositions' : 'split',
- 'enableKeyboardNavigation' : true,
- 'hideFocus' : false
- };
-
-})(jQuery,this);
-
diff --git a/libs/bower_components/jScrollPane/issues/12/native.html b/libs/bower_components/jScrollPane/issues/12/native.html
deleted file mode 100644
index 54f9920f49..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/native.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<meta name="verify-v1" content="ven67p9fXoMQpbw1icSXo8l+I5Z+upY90LnIqaPDgKo=" />
-<link href="brs_main.css" rel="stylesheet" type="text/css"/>
-<link type="text/css" href="../../style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-<title>The History of Tinyfish</title>
-<!-- compliance patch for microsoft browsers -->
-<!--[if lt IE 8]><script src="../__js/IE8.js" type="text/javascript"></script><![endif]-->
-<script src="http://cdn.jquerytools.org/1.2.2/full/jquery.tools.min.js" type="text/javascript"></script>
-
-<script type="text/javascript" src="../../script/jquery.mousewheel.js"></script>
-<script type="text/javascript" src="../../script/jquery.jscrollpane.js"></script>
-
-<script language="javascript" type="text/javascript">
-$(function()
-{
-});
-</script>
-</head>
-<body class="nopage">
-<div id="content">
- <h1>The History of Tinyfish</h1>
- <p>It all began with a pair of broken arms and two dodgy eyes.</p>
- <p>It&rsquo;s 1978, the year that <a href="../__imgs/band/history/schoolboyjim.jpg" title="Jim at school" rel="#hist02">Jim Sanders</a> and <a href="../__imgs/band/history/babysimon.jpg" title="Simon as a baby" rel="#hist01">Simon Godfrey</a> met at school in East Sheen (South London). Although each had been aware of the other since the age of five, the two would have been on nothing more than nodding acquaintance, save for two medical problems that forced them together and would eventually lead to the band we know today as Tinyfish.</p>
-
- <p>Bloody weaklings.</p>
- <p>Jim had been diagnosed with a rare retinal disease which had a good chance of robbing him of his vision, and had recently undergone laser eye surgery. Simon more comedically had broken both arms after falling off a roof, leaving him with seriously weakened joints. As part of their convalescence from their respective surgeries, both boys were excused sports for six months.</p>
- <p>While the rest of the kids kicked the living crap out of each other under the pretence of playing football or rugby, Jim and Simon sat on a low school wall watching the on-field carnage and eyeing one another warily. Initially Simon was the talkative one while Jim sat silently, but as soon as the subject matter turned to music, both began to find some common ground, and the conversation became a two way street.</p>
- <p>Initially, Jim had been a Rock/New Wave fan who loved Thin Lizzy (above all others), but incongruously, also the Skids (who would later become Big Country) and the Rezillos (who wouldn&rsquo;t). Simon on the other hand was a fan of ELO and The Sweet but both agreed that music, and in particular, rock bands, were the bee&rsquo;s knees.</p>
- <p>Around the same time , Simon had struck up a friendship with another boy at school called <a href="../__imgs/band/history/youngpaul.jpg" title="Paul - much younger" rel="#hist03">Paul Worwood</a>, initially during school music lessons. The pair were both big fans of Dungeons and Dragons and would play the game constantly throughout their teenage years.</p>
-
- <p>Bloody geeks.</p>
- <p>As the 70&rsquo;s gave way to the 80&rsquo;s and the three grew to be good friends, Jim drew Simon and Paul towards a new love; heavy metal. Over the next three years, the trio saw every metal band that played at their local venue (The Hammersmith Odeon). While the three saw the likes of Thin Lizzy, Saxon, MSG, Iron Maiden and The Scorpions, their listening tastes also encompassed bands such as Yes, Genesis, King Crimson and Magnum.</p>
- <p>Jim had first played &lsquo;Going For The One&rsquo; by Yes to Simon back in the 70's (Simon rather uncharitably dubbed it &lsquo;f***ing Country &amp; Western&rsquo;. To be fair, Jim told Simon not to bother with Jethro Tull, as he thought they were arse... without actually having ever heard them. Twit.). Jim persevered however, and when he spun &lsquo;A Farewell To Kings&rsquo; by Rush in an afternoon listening session, Simon was well and truly hooked. He now also likes Yes very much. Hah! Jim now also likes Jethro Tull. Hah! Hah!</p>
-
- <p>During their time at Richmond College (South West London), Jim and Simon met guitarist Nick Denville, and formed their first band, with Paul joining on bass soon after. Paul was the only person they knew who owned a car. They also thought he was a top bloke, and so without mentioning the car caveat, the three miscreants cajoled Paul into buying a bass guitar and an amplifier. They called themselves <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">&lsquo;Blackstone Edge&rsquo;</a> and they were bloody rubbish. All they needed was a keyboard player to crown their musical ineptitude.</p>
- <p>Simon&rsquo;s younger brother Jem was 14 when he received his first keyboard (a Casio home synth which he put through a flanger pedal to make it sound cosmic). Jem was initially invited to rehearsals to hold the lyrics up for Jim to sing from while the rest of the band played. It soon became obvious to the guys that Jem's talents were wasted as a music stand and so he was invited into the band. This line up survived for a few months before Nick Denville left to live a happier and entirely more melodic life elsewhere.</p>
- <p>Bloody kids.</p>
- <p>The band continued, and Simon relentlessly poured prog music into Jem's head which was immediately absorbed by the young keyboard player. Less than six months later, Jem had learned all of Tony Banks&rsquo; keyboard solos from both Seconds Out and Three Sides Live along with Rick Wakeman's and Patrick Moraz's solos from Yesshows. With Jem's considerable technique, and the band hungry to write original music, the direction of the band was truely set towards progressive rock. The name <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">Blackstone Edge</a> was soon dropped in favour of &lsquo;Freefall Warriors&rsquo; (after a story in a Doctor Who comic) which very quickly contracted simply to <a href="../__imgs/band/history/freefall.jpg" title="Freefall Mk.1" rel="#hist06">&lsquo;Freefall&rsquo;</a> and with the addition of vocalist Andrew Lovatt, the band began to rehearse <a href="../__imgs/band/history/freefallposter.jpg" title="Poster for Freefall's first gig" rel="#hist05">in preparation for live gigs.</a></p>
-
- <p>During this time the band bumped into actor <a href="../__imgs/band/history/tonyaitken.jpg" title="Tony Aitken" rel="#hist07">Tony Aitken</a> who had worked during his less successful years as a supply teacher at Jim and Simon&rsquo;s school in the 70&rsquo;s. Tony was looking for musicians to back him in a covers band, and the guys duly offered their services (even though they then had no live experience whatsoever). The arrangement worked so well that they kept the band going for over a decade and it was there, working the pubs and clubs of southern England, that they learned the musical chops that would serve them so well in later years.</p>
- <p>In parallel to their function band work, Freefall practice/writing sessions continued. As luck would have it, IQ rehearsed in the studio next door to them, and on the back of their first gig, attended by IQ&rsquo;s then manager, they managed to land the support slot at IQ&rsquo;s Christmas show <a href="../__imgs/band/history/freefallmarquee.jpg" title="Freefall at the Marquee" rel="#hist08">at the Marquee Club in London. Gulp.</a></p>
- <p>Thankfully, the band hit it off immediately with the crowd and soon managed to get a string of gigs with bands like Jadis, Ark, Galahad, Mentaur and Geoff Mann from Twelth Night. Freefall looked as though they were going to make a big impact with the prog community but after an ill-judged attempt to &lsquo;go commercial&rsquo; in the early &lsquo;90s, (Bloody managers!) Jim left the band and the remaining members recruited a very nice gentleman called <a href="../__imgs/band/history/johnboyes.jpg" title="and on guitar - Mr. John Boyes!" rel="#hist09">John Boyes</a> on guitar. However, the moment was lost and the band soon fell apart.</p>
-
- <p>Bloody idiots.</p>
- <p>Jim and Jem briefly went on, to form Pop-proggers &ldquo;Charlottes&rsquo; Web&rdquo; before Jem gave up the scene to work for national radio (although Jem's involvement with prog would be re-ignited a decade later with the formation (with John Boyes) of the Prog supergroup Frost*).</p>
- <p>Meanwhile, Simon and Paul formed an acoustic outfit called <a href="../__imgs/band/history/maddogs.jpg" title="Men Are Dead Mk. I" rel="#hist10">&lsquo;Men Are Dead&rsquo;</a> with keyboard player Col Alkins and lyricist/harmonica player Rob Ramsay. Simon had met Rob way back in the early 80&rsquo;s at Richmond College, at the same time Freefall were making their first tentative steps in music. They became good friends and Rob was always involved at some level, either by helping out at gigs or writing the occasional lyric.</p>
-
- <br />
- <p>Men Are Dead began to play gigs on London's open mic scene (where any artist can roll up and play a short set of between two and five songs) and the band proved to be extremely popular with both audience and fellow musos alike. Col left after their first album, but thankfully, Jim once again joined up with Simon and Paul as a second guitarist, along with <a href="../__imgs/band/history/wayne.jpg" title="Wayne caught in the headlights" rel="#hist12">Wayne Collier</a>, an extraordinary drummer who played in almost every band in West London. <a href="../__imgs/band/history/menaredead.jpg" title="Men Are Dead Mk. II" rel="#hist11">What evolved was a prototype Tinyfish</a> sound and much of the band&rsquo;s current style comes from these early twin guitar shows.</p>
- <p>The millennium came and went, and so did the name &lsquo;Men Are Dead&rsquo;. In came Simon&rsquo;s alter ego &lsquo;Simon Walsh&rsquo;, a <em>nom-de-guerre</em> he still uses today when playing solo acoustic gigs. Whilst notching up appearances in the UK, Germany, France, Estonia and America, they recruited a third guitarist <a href="../__imgs/band/history/hw1.jpg" title="Tim solos at the Hope and Anchor" rel="#hist13">(Tim Eyles)</a> and all looked rosy (if a little Lynyrd Skynyrd) in the garden. Behind the scenes however, things were not going well with the band. Frustration with the strict definitions of acoustic music imposed by many clubs and venues began to take their toll on both the music and musicians. Their material was becoming more complex and the songs started to push past the three minute mark, as the band's deep-seated prog influences once again made themselves felt.</p>
-
- <p>Finally in the late autumn of 2004, after much soul searching, Simon sent Jim an e-mail suggesting that maybe there was little more they could achieve as an acoustic unit and perhaps they should return to their progressive roots. Jim happily agreed and an invite was duly sent out to both Paul and Rob asking if they would be interested in joining, which thankfully they did.</p>
- <p>Simon disbanded the acoustic band, with Tim Eyles joining the punk-pop band &lsquo;The Random&rsquo; and the four remaining musicians <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">assembled in Simon's loft</a> and began writing and rehearsing. Within six weeks it was obvious that there were real possibilities in the music they were making, but the question as to how to record this new material was causing them concern. None of them could afford to go the professional route, so the decision was made to turn the loft into a studio, and try it themselves.</p>
- <p>Robert had set up Lazy Gun Records several years previously, to promote both Men Are Dead and Simon Walsh, and suggested that this new band join the roster. This gave them complete artistic and financial control of their work. </p>
- <p>Bloody tight bastards.</p>
-
- <p>Finally the subject of the name for the band reared its ugly head. There were thoughts that they could resurrect the name Freefall but that idea was soon discarded. This was a new band, and it deserved a new name (besides, someone else was now using &lsquo;Freefall&rsquo; and they looked bigger and meaner than this band). It was Jim that quipped that they were just tiny fish compared to some of the huge prog bands still out there and within moments the name had stuck.</p>
- <p>The problem remained that they were a man short for playing live shows, but in the studio, that base was covered by Simon who, happily, can play both <a href="../__imgs/band/history/drumkit.jpg" title="Simon's electronic drumkit" rel="#hist15">drums</a> and <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">guitar</a> in equal measure (although not at the same time). Meanwhile, the studio had taken shape and the band had found that familiar progressive chemistry once again. The smiles were back on everybody&rsquo;s faces, and the band had a sound they could work to develop.</p>
- <p>When the talk turned once more to live performances, Jim mentioned that he knew a drummer of many bands, the semi-Italian <a href="../__imgs/band/history/leonstatue.jpg" title="Leon at the kit" rel="#hist16">Leon Camfield</a>, and after a few rehearsals (and many beers) together, Leon (for whom truely progressive music is a long held love (note King Crimson tattoo on arm)) enthusiastically joined to complete the Fab Five.</p>
-
- <p>So here we are in 2010. <a href="../__imgs/band/history/tinyfish1.jpg" title="tinyfish" rel="#hist17">Tinyfish</a> have gigged around the country, released both two albums, a mini-album, and a live album &amp; DVD, and have <a href="../__imgs/band/history/tinyfish2.jpg" title="tinyfish" rel="#hist18">arrived at a destination</a> where they feel at home, and are proud of their journey to this place of better dreams.</p>
- <p class="centre"><a href="../__imgs/band/history/strangestudioshot.jpg" title="a tinyfish close encounter" rel="#hist19">Bloody pretentious tossers.</a></p>
-</div>
-</body>
-</html>
-
diff --git a/libs/bower_components/jScrollPane/issues/12/wrapped.html b/libs/bower_components/jScrollPane/issues/12/wrapped.html
deleted file mode 100644
index 863fb1cb70..0000000000
--- a/libs/bower_components/jScrollPane/issues/12/wrapped.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<meta name="verify-v1" content="ven67p9fXoMQpbw1icSXo8l+I5Z+upY90LnIqaPDgKo=" />
-<link href="brs_main.css" rel="stylesheet" type="text/css"/>
-<link type="text/css" href="jscrollpane-2b3.css" rel="stylesheet" media="all" />
-
-<style type="text/css">
-#content
-{
- overflow: hidden;
-}
-#scroller
-{
- width: 100%;
- height: 100%;
-}
-</style>
-
-<title>The History of Tinyfish</title>
-<!-- compliance patch for microsoft browsers -->
-<!--[if lt IE 8]><script src="../__js/IE8.js" type="text/javascript"></script><![endif]-->
-<script src="http://cdn.jquerytools.org/1.2.2/full/jquery.tools.min.js" type="text/javascript"></script>
-
-<script type="text/javascript" src="jquery.mousewheel.js"></script>
-<script type="text/javascript" src="jscrollpane-2b3.js"></script>
-
-<script language="javascript" type="text/javascript">
-$(function()
-{
- $("#scroller").jScrollPane({
- showArrows: true
- });
-});
-</script>
-</head>
-<body class="nopage">
-<div id="content">
-<div id="scroller">
- <h1>The History of Tinyfish</h1>
- <p>It all began with a pair of broken arms and two dodgy eyes.</p>
- <p>It&rsquo;s 1978, the year that <a href="../__imgs/band/history/schoolboyjim.jpg" title="Jim at school" rel="#hist02">Jim Sanders</a> and <a href="../__imgs/band/history/babysimon.jpg" title="Simon as a baby" rel="#hist01">Simon Godfrey</a> met at school in East Sheen (South London). Although each had been aware of the other since the age of five, the two would have been on nothing more than nodding acquaintance, save for two medical problems that forced them together and would eventually lead to the band we know today as Tinyfish.</p>
-
- <p>Bloody weaklings.</p>
- <p>Jim had been diagnosed with a rare retinal disease which had a good chance of robbing him of his vision, and had recently undergone laser eye surgery. Simon more comedically had broken both arms after falling off a roof, leaving him with seriously weakened joints. As part of their convalescence from their respective surgeries, both boys were excused sports for six months.</p>
- <p>While the rest of the kids kicked the living crap out of each other under the pretence of playing football or rugby, Jim and Simon sat on a low school wall watching the on-field carnage and eyeing one another warily. Initially Simon was the talkative one while Jim sat silently, but as soon as the subject matter turned to music, both began to find some common ground, and the conversation became a two way street.</p>
- <p>Initially, Jim had been a Rock/New Wave fan who loved Thin Lizzy (above all others), but incongruously, also the Skids (who would later become Big Country) and the Rezillos (who wouldn&rsquo;t). Simon on the other hand was a fan of ELO and The Sweet but both agreed that music, and in particular, rock bands, were the bee&rsquo;s knees.</p>
- <p>Around the same time , Simon had struck up a friendship with another boy at school called <a href="../__imgs/band/history/youngpaul.jpg" title="Paul - much younger" rel="#hist03">Paul Worwood</a>, initially during school music lessons. The pair were both big fans of Dungeons and Dragons and would play the game constantly throughout their teenage years.</p>
-
- <p>Bloody geeks.</p>
- <p>As the 70&rsquo;s gave way to the 80&rsquo;s and the three grew to be good friends, Jim drew Simon and Paul towards a new love; heavy metal. Over the next three years, the trio saw every metal band that played at their local venue (The Hammersmith Odeon). While the three saw the likes of Thin Lizzy, Saxon, MSG, Iron Maiden and The Scorpions, their listening tastes also encompassed bands such as Yes, Genesis, King Crimson and Magnum.</p>
- <p>Jim had first played &lsquo;Going For The One&rsquo; by Yes to Simon back in the 70's (Simon rather uncharitably dubbed it &lsquo;f***ing Country &amp; Western&rsquo;. To be fair, Jim told Simon not to bother with Jethro Tull, as he thought they were arse... without actually having ever heard them. Twit.). Jim persevered however, and when he spun &lsquo;A Farewell To Kings&rsquo; by Rush in an afternoon listening session, Simon was well and truly hooked. He now also likes Yes very much. Hah! Jim now also likes Jethro Tull. Hah! Hah!</p>
-
- <p>During their time at Richmond College (South West London), Jim and Simon met guitarist Nick Denville, and formed their first band, with Paul joining on bass soon after. Paul was the only person they knew who owned a car. They also thought he was a top bloke, and so without mentioning the car caveat, the three miscreants cajoled Paul into buying a bass guitar and an amplifier. They called themselves <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">&lsquo;Blackstone Edge&rsquo;</a> and they were bloody rubbish. All they needed was a keyboard player to crown their musical ineptitude.</p>
- <p>Simon&rsquo;s younger brother Jem was 14 when he received his first keyboard (a Casio home synth which he put through a flanger pedal to make it sound cosmic). Jem was initially invited to rehearsals to hold the lyrics up for Jim to sing from while the rest of the band played. It soon became obvious to the guys that Jem's talents were wasted as a music stand and so he was invited into the band. This line up survived for a few months before Nick Denville left to live a happier and entirely more melodic life elsewhere.</p>
- <p>Bloody kids.</p>
- <p>The band continued, and Simon relentlessly poured prog music into Jem's head which was immediately absorbed by the young keyboard player. Less than six months later, Jem had learned all of Tony Banks&rsquo; keyboard solos from both Seconds Out and Three Sides Live along with Rick Wakeman's and Patrick Moraz's solos from Yesshows. With Jem's considerable technique, and the band hungry to write original music, the direction of the band was truely set towards progressive rock. The name <a href="../__imgs/band/history/blackstoneedge.jpg" title="Blackstone Edge" rel="#hist04">Blackstone Edge</a> was soon dropped in favour of &lsquo;Freefall Warriors&rsquo; (after a story in a Doctor Who comic) which very quickly contracted simply to <a href="../__imgs/band/history/freefall.jpg" title="Freefall Mk.1" rel="#hist06">&lsquo;Freefall&rsquo;</a> and with the addition of vocalist Andrew Lovatt, the band began to rehearse <a href="../__imgs/band/history/freefallposter.jpg" title="Poster for Freefall's first gig" rel="#hist05">in preparation for live gigs.</a></p>
-
- <p>During this time the band bumped into actor <a href="../__imgs/band/history/tonyaitken.jpg" title="Tony Aitken" rel="#hist07">Tony Aitken</a> who had worked during his less successful years as a supply teacher at Jim and Simon&rsquo;s school in the 70&rsquo;s. Tony was looking for musicians to back him in a covers band, and the guys duly offered their services (even though they then had no live experience whatsoever). The arrangement worked so well that they kept the band going for over a decade and it was there, working the pubs and clubs of southern England, that they learned the musical chops that would serve them so well in later years.</p>
- <p>In parallel to their function band work, Freefall practice/writing sessions continued. As luck would have it, IQ rehearsed in the studio next door to them, and on the back of their first gig, attended by IQ&rsquo;s then manager, they managed to land the support slot at IQ&rsquo;s Christmas show <a href="../__imgs/band/history/freefallmarquee.jpg" title="Freefall at the Marquee" rel="#hist08">at the Marquee Club in London. Gulp.</a></p>
- <p>Thankfully, the band hit it off immediately with the crowd and soon managed to get a string of gigs with bands like Jadis, Ark, Galahad, Mentaur and Geoff Mann from Twelth Night. Freefall looked as though they were going to make a big impact with the prog community but after an ill-judged attempt to &lsquo;go commercial&rsquo; in the early &lsquo;90s, (Bloody managers!) Jim left the band and the remaining members recruited a very nice gentleman called <a href="../__imgs/band/history/johnboyes.jpg" title="and on guitar - Mr. John Boyes!" rel="#hist09">John Boyes</a> on guitar. However, the moment was lost and the band soon fell apart.</p>
-
- <p>Bloody idiots.</p>
- <p>Jim and Jem briefly went on, to form Pop-proggers &ldquo;Charlottes&rsquo; Web&rdquo; before Jem gave up the scene to work for national radio (although Jem's involvement with prog would be re-ignited a decade later with the formation (with John Boyes) of the Prog supergroup Frost*).</p>
- <p>Meanwhile, Simon and Paul formed an acoustic outfit called <a href="../__imgs/band/history/maddogs.jpg" title="Men Are Dead Mk. I" rel="#hist10">&lsquo;Men Are Dead&rsquo;</a> with keyboard player Col Alkins and lyricist/harmonica player Rob Ramsay. Simon had met Rob way back in the early 80&rsquo;s at Richmond College, at the same time Freefall were making their first tentative steps in music. They became good friends and Rob was always involved at some level, either by helping out at gigs or writing the occasional lyric.</p>
-
- <br />
- <p>Men Are Dead began to play gigs on London's open mic scene (where any artist can roll up and play a short set of between two and five songs) and the band proved to be extremely popular with both audience and fellow musos alike. Col left after their first album, but thankfully, Jim once again joined up with Simon and Paul as a second guitarist, along with <a href="../__imgs/band/history/wayne.jpg" title="Wayne caught in the headlights" rel="#hist12">Wayne Collier</a>, an extraordinary drummer who played in almost every band in West London. <a href="../__imgs/band/history/menaredead.jpg" title="Men Are Dead Mk. II" rel="#hist11">What evolved was a prototype Tinyfish</a> sound and much of the band&rsquo;s current style comes from these early twin guitar shows.</p>
- <p>The millennium came and went, and so did the name &lsquo;Men Are Dead&rsquo;. In came Simon&rsquo;s alter ego &lsquo;Simon Walsh&rsquo;, a <em>nom-de-guerre</em> he still uses today when playing solo acoustic gigs. Whilst notching up appearances in the UK, Germany, France, Estonia and America, they recruited a third guitarist <a href="../__imgs/band/history/hw1.jpg" title="Tim solos at the Hope and Anchor" rel="#hist13">(Tim Eyles)</a> and all looked rosy (if a little Lynyrd Skynyrd) in the garden. Behind the scenes however, things were not going well with the band. Frustration with the strict definitions of acoustic music imposed by many clubs and venues began to take their toll on both the music and musicians. Their material was becoming more complex and the songs started to push past the three minute mark, as the band's deep-seated prog influences once again made themselves felt.</p>
-
- <p>Finally in the late autumn of 2004, after much soul searching, Simon sent Jim an e-mail suggesting that maybe there was little more they could achieve as an acoustic unit and perhaps they should return to their progressive roots. Jim happily agreed and an invite was duly sent out to both Paul and Rob asking if they would be interested in joining, which thankfully they did.</p>
- <p>Simon disbanded the acoustic band, with Tim Eyles joining the punk-pop band &lsquo;The Random&rsquo; and the four remaining musicians <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">assembled in Simon's loft</a> and began writing and rehearsing. Within six weeks it was obvious that there were real possibilities in the music they were making, but the question as to how to record this new material was causing them concern. None of them could afford to go the professional route, so the decision was made to turn the loft into a studio, and try it themselves.</p>
- <p>Robert had set up Lazy Gun Records several years previously, to promote both Men Are Dead and Simon Walsh, and suggested that this new band join the roster. This gave them complete artistic and financial control of their work. </p>
- <p>Bloody tight bastards.</p>
-
- <p>Finally the subject of the name for the band reared its ugly head. There were thoughts that they could resurrect the name Freefall but that idea was soon discarded. This was a new band, and it deserved a new name (besides, someone else was now using &lsquo;Freefall&rsquo; and they looked bigger and meaner than this band). It was Jim that quipped that they were just tiny fish compared to some of the huge prog bands still out there and within moments the name had stuck.</p>
- <p>The problem remained that they were a man short for playing live shows, but in the studio, that base was covered by Simon who, happily, can play both <a href="../__imgs/band/history/drumkit.jpg" title="Simon's electronic drumkit" rel="#hist15">drums</a> and <a href="../__imgs/band/history/guitars.jpg" title="A plethora of guitars" rel="#hist14">guitar</a> in equal measure (although not at the same time). Meanwhile, the studio had taken shape and the band had found that familiar progressive chemistry once again. The smiles were back on everybody&rsquo;s faces, and the band had a sound they could work to develop.</p>
- <p>When the talk turned once more to live performances, Jim mentioned that he knew a drummer of many bands, the semi-Italian <a href="../__imgs/band/history/leonstatue.jpg" title="Leon at the kit" rel="#hist16">Leon Camfield</a>, and after a few rehearsals (and many beers) together, Leon (for whom truely progressive music is a long held love (note King Crimson tattoo on arm)) enthusiastically joined to complete the Fab Five.</p>
-
- <p>So here we are in 2010. <a href="../__imgs/band/history/tinyfish1.jpg" title="tinyfish" rel="#hist17">Tinyfish</a> have gigged around the country, released both two albums, a mini-album, and a live album &amp; DVD, and have <a href="../__imgs/band/history/tinyfish2.jpg" title="tinyfish" rel="#hist18">arrived at a destination</a> where they feel at home, and are proud of their journey to this place of better dreams.</p>
- <p class="centre"><a href="../__imgs/band/history/strangestudioshot.jpg" title="a tinyfish close encounter" rel="#hist19">Bloody pretentious tossers.</a></p>
-</div>
-</div>
-</body>
-</html>
-
diff --git a/libs/bower_components/jScrollPane/issues/7/after.html b/libs/bower_components/jScrollPane/issues/7/after.html
deleted file mode 100644
index a91d42dace..0000000000
--- a/libs/bower_components/jScrollPane/issues/7/after.html
+++ /dev/null
@@ -1,190 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <!-- Thanks to Rob Lifford ( http://www.lifford.org/ ) for the test case -->
- <meta charset="utf-8">
- <title>jScrollPane 2 reinit bug?</title>
- <style type="text/css">
- body, html {
- margin: 0;
- padding: 20px;
- font-family: Verdana, sans-serif;
- font-size: 85%;
- line-height: 1.5;
- }
-
- .float {
- float: left;
- }
-
- .clear {
- clear: both;
- }
-
- .scroll-container {
- width: 400px;
- height: 200px;
- overflow: auto;
- margin: 0 2em 1.5em 0;
- }
-
- .fluid-width {
- width: 100%;
- }
-
- .padded {
- padding: 5px;
- }
-
- ul {
- margin: 0;
- padding: 0;
- line-height: 1;
- list-style: none;
- border-bottom: solid 1px #ccc;
- }
-
- li {
- margin: 0;
- padding: 10px 5px;
- border-top: solid 1px #ccc;
- }
-
- </style>
- <link rel="stylesheet" type="text/css" href="../../style/jquery.jscrollpane.css" />
-
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
-
- <script type="text/javascript" src="../../script/jquery.jscrollpane.js"></script>
-
- <script type="text/javascript">
- $(function()
- {
- var element = $('.scroll-container').jScrollPane();
- var api = element.data('jsp');
-
- $('#jsp').click(function() {
- elem = $('.scroll-container').jScrollPane();
- });
-
- $('#api').click(function() {
- api.reinitialise();
- });
-
- });
- </script>
-
- </head>
- <body>
-
- <div class="scroll-container float">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
-
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
-
- <li>the next list item</li>
- </ul>
- </div>
-
- <div class="scroll-container float">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- </ul>
- </div>
-
- <div class="scroll-container padded clear">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
-
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
-
- <li>the next list item</li>
- </ul>
- </div>
-
- <div class="scroll-container fluid-width clear">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
-
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
-
- <li>the next list item</li>
- </ul>
- </div>
-
-
- <p class="clear"><button id="api">reinit via API</button> <button id="jsp">Reinit by re-calling .jScrollPane</button> </p>
-
- <p>In the above testcase: reinitialising jScrollPane (either via the api or simply by re-calling .jScrollPane() on the original element) strips out the width of the div.jspPane and causes a rendering issue: the absolutely-positioned div renders only as wide as its text content. The expected behavior is that it'll fill the available width, as it does on page load after the first call to .jScrollPane().</p>
-
-
-<p><strong>UPDATE:</strong> this is fixed for scrollable content in v2b2, but when the content is not scrollable there's still undesired rendering on first load.</p>
-
-<p>Additionally, padding calculations might need some tweaks. The third list box here is identical to the first two except for an added 5px of padding all the way around: note how the jspVerticalBar is partially pushed out of view.</p>
-
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/7/before.html b/libs/bower_components/jScrollPane/issues/7/before.html
deleted file mode 100644
index c703503f15..0000000000
--- a/libs/bower_components/jScrollPane/issues/7/before.html
+++ /dev/null
@@ -1,190 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <!-- Thanks to Rob Lifford ( http://www.lifford.org/ ) for the test case -->
- <meta charset="utf-8">
- <title>jScrollPane 2 reinit bug?</title>
- <style type="text/css">
- body, html {
- margin: 0;
- padding: 20px;
- font-family: Verdana, sans-serif;
- font-size: 85%;
- line-height: 1.5;
- }
-
- .float {
- float: left;
- }
-
- .clear {
- clear: both;
- }
-
- .scroll-container {
- width: 400px;
- height: 200px;
- overflow: auto;
- margin: 0 2em 1.5em 0;
- }
-
- .fluid-width {
- width: 100%;
- }
-
- .padded {
- padding: 5px;
- }
-
- ul {
- margin: 0;
- padding: 0;
- line-height: 1;
- list-style: none;
- border-bottom: solid 1px #ccc;
- }
-
- li {
- margin: 0;
- padding: 10px 5px;
- border-top: solid 1px #ccc;
- }
-
- </style>
- <link rel="stylesheet" type="text/css" href="jscrollpane-2b1.css" />
-
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
-
- <script type="text/javascript" src="jscrollpane-2b2.js"></script>
-
- <script type="text/javascript">
- $(function()
- {
- var element = $('.scroll-container').jScrollPane();
- var api = element.data('jsp');
-
- $('#jsp').click(function() {
- elem = $('.scroll-container').jScrollPane();
- });
-
- $('#api').click(function() {
- api.reinitialise();
- });
-
- });
- </script>
-
- </head>
- <body>
-
- <div class="scroll-container float">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
-
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
-
- <li>the next list item</li>
- </ul>
- </div>
-
- <div class="scroll-container float">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- </ul>
- </div>
-
- <div class="scroll-container padded clear">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
-
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
-
- <li>the next list item</li>
- </ul>
- </div>
-
- <div class="scroll-container fluid-width clear">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
-
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
-
- <li>the next list item</li>
- </ul>
- </div>
-
-
- <p class="clear"><button id="api">reinit via API</button> <button id="jsp">Reinit by re-calling .jScrollPane</button> </p>
-
- <p>In the above testcase: reinitialising jScrollPane (either via the api or simply by re-calling .jScrollPane() on the original element) strips out the width of the div.jspPane and causes a rendering issue: the absolutely-positioned div renders only as wide as its text content. The expected behavior is that it'll fill the available width, as it does on page load after the first call to .jScrollPane().</p>
-
-
-<p><strong>UPDATE:</strong> this is fixed for scrollable content in v2b2, but when the content is not scrollable there's still undesired rendering on first load.</p>
-
-<p>Additionally, padding calculations might need some tweaks. The third list box here is identical to the first two except for an added 5px of padding all the way around: note how the jspVerticalBar is partially pushed out of view.</p>
-
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/7/index.html b/libs/bower_components/jScrollPane/issues/7/index.html
deleted file mode 100644
index 7d8e95f039..0000000000
--- a/libs/bower_components/jScrollPane/issues/7/index.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - issue 7</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="../../style/demo.css" rel="stylesheet" media="all" />
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="../../script/demo.js"></script>
- </head>
- <body>
- <div id="top-nav">
- <img src="../../image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="../../index.html">Home</a></li>
- <li><a href="../../index.html#examples">Examples</a></li>
- <li><a href="../../index.html#themes">Themes</a></li>
- <li><a href="../../index.html#usage">How to use</a></li>
- <li><a href="../../faqs.html">FAQs</a></li>
- <li><a href="../../known_issues.html">Known issues</a></li>
- <li><a href="../../index.html#support">Support</a></li>
- <li><a href="../../index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - issue 7</h1>
- <p>
- This page demonstrates the bug described in <a href="http://github.com/vitch/jScrollPane/issues#issue/7">
- issue 7</a> as reported (with nice striped down test cases) by <a href="http://rob.lifford.org/">Rob
- Lifford</a>.
- </p>
- <ul class="link-list">
- <li>
- <a href="before.html">Before</a> - showing the bug as it appears in the version of jScrollPane which
- was current when it was reported.
- </li>
- <li>
- <a href="native.html">Native</a> - showing how the page looks with native scrollbars (i.e. if
- jScrollPane isn't initialised).
- </li>
- <li>
- <a href="after.html">After</a> - showing the page which was displaying the bug with the latest
- version of jScrollPane.
- </li>
- </ul>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/7/jscrollpane-2b1.css b/libs/bower_components/jScrollPane/issues/7/jscrollpane-2b1.css
deleted file mode 100644
index a051caed0a..0000000000
--- a/libs/bower_components/jScrollPane/issues/7/jscrollpane-2b1.css
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * CSS Styles that are needed by jScrollPane for it to operate correctly.
- *
- * Include this stylesheet in your site or copy and paste the styles below into your stylesheet - jScrollPane
- * may not operate correctly without them.
- */
-
-.jspContainer
-{
- overflow: hidden;
- position: relative;
-}
-
-.jspPane
-{
- position: absolute;
-}
-
-.jspVerticalBar
-{
- position: absolute;
- top: 0;
- right: 0;
- width: 16px;
- height: 100%;
- background: red;
-}
-
-.jspHorizontalBar
-{
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 16px;
- background: red;
-}
-
-.jspVerticalBar *,
-.jspHorizontalBar *
-{
- margin: 0;
- padding: 0;
-}
-
-.jspCap
-{
- display: none;
-}
-
-.jspHorizontalBar .jspCap
-{
- float: left;
-}
-
-.jspTrack
-{
- background: #dde;
- position: relative;
-}
-
-.jspDrag
-{
- background: #bbd;
- position: relative;
- top: 0;
- left: 0;
- cursor: pointer;
-}
-
-.jspHorizontalBar .jspTrack,
-.jspHorizontalBar .jspDrag
-{
- float: left;
- height: 100%;
-}
-
-.jspArrow
-{
- background: #50506d;
- text-indent: -20000px;
- display: block;
- cursor: pointer;
-}
-
-.jspArrow.jspDisabled
-{
- cursor: default;
- background: #80808d;
-}
-
-.jspVerticalBar .jspArrow
-{
- height: 16px;
-}
-
-.jspHorizontalBar .jspArrow
-{
- width: 16px;
- float: left;
- height: 100%;
-}
-
-.jspVerticalBar .jspArrow:focus
-{
- outline: none;
-}
-
-.jspCorner
-{
- background: #eeeef4;
- float: left;
- height: 100%;
-}
-
-/* Yuk! CSS Hack for IE6 3 pixel bug :( */
-* html .jspCorner
-{
- margin: 0 -3px 0 0;
-} \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/issues/7/jscrollpane-2b2.js b/libs/bower_components/jScrollPane/issues/7/jscrollpane-2b2.js
deleted file mode 100644
index e8e89e3e4a..0000000000
--- a/libs/bower_components/jScrollPane/issues/7/jscrollpane-2b2.js
+++ /dev/null
@@ -1,947 +0,0 @@
-/*!
- * jScrollPane - v2.0.0beta2 - 2010-08-19
- * http://jscrollpane.kelvinluck.com/
- *
- * Copyright (c) 2010 Kelvin Luck
- * Dual licensed under the MIT or GPL licenses.
- */
-
-// Script: jScrollPane - cross browser customisable scrollbars
-//
-// *Version: 2.0.0beta2, Last updated: 2010-08-19*
-//
-// Project Home - http://jscrollpane.kelvinluck.com/
-// GitHub - http://github.com/vitch/jScrollPane
-// Source - http://github.com/vitch/jScrollPane/raw/master/script/jquery.jscrollpane.js
-// (Minified) - http://github.com/vitch/jScrollPane/raw/master/script/jquery.jscrollpane.min.js
-//
-// About: License
-//
-// Copyright (c) 2010 Kelvin Luck
-// Dual licensed under the MIT or GPL Version 2 licenses.
-// http://jscrollpane.kelvinluck.com/MIT-LICENSE.txt
-// http://jscrollpane.kelvinluck.com/GPL-LICENSE.txt
-//
-// About: Examples
-//
-// All examples and demos are available through the jScrollPane example site at:
-// http://jscrollpane.kelvinluck.com/
-//
-// About: Support and Testing
-//
-// This plugin is tested on the browsers below and has been found to work reliably on them. If you run
-// into a problem on one of the supported browsers then please visit the support section on the jScrollPane
-// website (http://jscrollpane.kelvinluck.com/) for more information on getting support. You are also
-// welcome to fork the project on GitHub if you can contribute a fix for a given issue.
-//
-// jQuery Versions - 1.4.2
-// Browsers Tested - Firefox 3.6.8, Safari 5, Opera 10.6, Chrome 5.0, IE 6, 7, 8
-//
-// About: Release History
-//
-// 2.0.0beta2 - (2010-08-19) Bug fixes
-// 2.0.0beta1 - (2010-08-17) Rewrite to follow modern best practices and enable horizontal scrolling, initially hidden
-// elements and dynamically sized elements.
-// 1.x - (2006-12-31 - 2010-07-31) Initial version, hosted at googlecode, deprecated
-
-(function($,window,undefined){
-
- $.fn.jScrollPane = function(settings)
- {
- // JScrollPane "class" - public methods are available through $('selector').data('jsp')
- function JScrollPane(elem, s)
- {
-
- var settings, jsp = this, pane, paneWidth, paneHeight, container, contentWidth, contentHeight,
- percentInViewH, percentInViewV, isScrollableV, isScrollableH, verticalDrag, dragMaxY,
- verticalDragPosition, horizontalDrag, dragMaxX, horizontalDragPosition,
- verticalBar, verticalTrack, scrollbarWidth, verticalTrackHeight, verticalDragHeight, arrowUp, arrowDown,
- horizontalBar, horizontalTrack, horizontalTrackWidth, horizontalDragWidth, arrowLeft, arrowRight,
- reinitialiseInterval, originalPadding, originalPaddingTotalWidth, previousPaneWidth;
-
- originalPadding = elem.css('paddingTop') + ' ' +
- elem.css('paddingRight') + ' ' +
- elem.css('paddingBottom') + ' ' +
- elem.css('paddingLeft');
- originalPaddingTotalWidth = (parseInt(elem.css('paddingLeft')) || 0) +
- (parseInt(elem.css('paddingRight')) || 0);
-
- initialise(s);
-
- function initialise(s)
- {
-
- var clonedElem, tempWrapper, /*firstChild, lastChild, */isMaintainingPositon, lastContentX, lastContentY,
- hasContainingSpaceChanged;
-
- settings = s;
-
- if (pane == undefined) {
-
- elem.css(
- {
- 'overflow': 'hidden',
- 'padding': 0
- }
- );
- // TODO: Deal with where width/ height is 0 as it probably means the element is hidden and we should
- // come back to it later and check once it is unhidden...
- paneWidth = elem.innerWidth() + originalPaddingTotalWidth;
- paneHeight = elem.innerHeight();
-
- pane = $('<div class="jspPane" />').wrap(
- $('<div class="jspContainer" />')
- .css({
- 'width': paneWidth + 'px',
- 'height': paneHeight + 'px'
- }
- )
- );
-
- elem.wrapInner(pane.parent());
- // Need to get the vars after being added to the document, otherwise they reference weird
- // disconnected orphan elements...
- container = elem.find('>.jspContainer');
- pane = container.find('>.jspPane');
- pane.css('padding', originalPadding);
-
- /*
- // Move any margins from the first and last children up to the container so they can still
- // collapse with neighbouring elements as they would before jScrollPane
- firstChild = pane.find(':first-child');
- lastChild = pane.find(':last-child');
- elem.css(
- {
- 'margin-top': firstChild.css('margin-top'),
- 'margin-bottom': lastChild.css('margin-bottom')
- }
- );
- firstChild.css('margin-top', 0);
- lastChild.css('margin-bottom', 0);
- */
- } else {
- hasContainingSpaceChanged = elem.outerWidth() != paneWidth || elem.outerHeight() != paneHeight;
-
- if (hasContainingSpaceChanged) {
- paneWidth = elem.innerWidth();
- paneHeight = elem.innerHeight();
- container.css({
- 'width': paneWidth + 'px',
- 'height': paneHeight + 'px'
- });
- }
-
- previousPaneWidth = pane.innerWidth();
- pane.css('width', null);
-
- if (!hasContainingSpaceChanged && pane.outerWidth() == contentWidth && pane.outerHeight() == contentHeight) {
- // Nothing has changed since we last initialised
- if (isScrollableH || isScrollableV) { // If we had already set a width then re-set it
- pane.css('width', previousPaneWidth + 'px');
- }
- // Then abort...
- return;
- }
-
- container.find('>.jspVerticalBar,>.jspHorizontalBar').remove().end();
- }
-
- // Unfortunately it isn't that easy to find out the width of the element as it will always report the
- // width as allowed by its container, regardless of overflow settings.
- // A cunning workaround is to clone the element, set its position to absolute and place it in a narrow
- // container. Now it will push outwards to its maxium real width...
- clonedElem = pane.clone().css('position', 'absolute');
- tempWrapper = $('<div style="width:1px; position: relative;" />').append(clonedElem);
- $('body').append(tempWrapper);
- contentWidth = Math.max(pane.outerWidth(), clonedElem.outerWidth());
- tempWrapper.remove();
-
- contentHeight = pane.outerHeight();
- percentInViewH = contentWidth / paneWidth;
- percentInViewV = contentHeight / paneHeight;
- isScrollableV = percentInViewV > 1;
-
- isScrollableH = percentInViewH > 1;
-
- //console.log(paneWidth, paneHeight, contentWidth, contentHeight, percentInViewH, percentInViewV, isScrollableH, isScrollableV);
-
- if (!(isScrollableH || isScrollableV)) {
- elem.removeClass('jspScrollable');
- pane.css('top', 0);
- removeMousewheel();
- removeFocusHandler();
- unhijackInternalLinks();
- } else {
- elem.addClass('jspScrollable');
-
- isMaintainingPositon = settings.maintainPosition && (verticalDragPosition || horizontalDragPosition);
- if (isMaintainingPositon) {
- lastContentX = contentPositionX();
- lastContentY = contentPositionY();
- }
-
- initialiseVerticalScroll();
- initialiseHorizontalScroll();
- resizeScrollbars();
-
- if (isMaintainingPositon) {
- scrollToX(lastContentX);
- scrollToY(lastContentY);
- }
-
- initFocusHandler();
- observeHash();
- if (settings.hijackInternalLinks) {
- hijackInternalLinks();
- }
- }
-
- if (settings.autoReinitialise && !reinitialiseInterval) {
- reinitialiseInterval = setInterval(
- function()
- {
- initialise(settings);
- },
- settings.autoReinitialiseDelay
- );
- } else if (!settings.autoReinitialise && reinitialiseInterval) {
- clearInterval(reinitialiseInterval)
- }
- }
-
- function initialiseVerticalScroll()
- {
- if (isScrollableV) {
-
- container.append(
- $('<div class="jspVerticalBar" />').append(
- $('<div class="jspCap jspCapTop" />'),
- $('<div class="jspTrack" />').append(
- $('<div class="jspDrag" />').append(
- $('<div class="jspDragTop" />'),
- $('<div class="jspDragBottom" />')
- )
- ),
- $('<div class="jspCap jspCapBottom" />')
- )
- );
-
- verticalBar = container.find('>.jspVerticalBar');
- verticalTrack = verticalBar.find('>.jspTrack');
- verticalDrag = verticalTrack.find('>.jspDrag');
-
- if (settings.showArrows) {
- arrowUp = $('<a href="#" class="jspArrow jspArrowUp">Scroll up</a>').bind(
- 'mousedown.jsp', getArrowScroll(0, -1)
- ).bind('click.jsp', nil);
- arrowDown = $('<a href="#" class="jspArrow jspArrowDown">Scroll down</a>').bind(
- 'mousedown.jsp', getArrowScroll(0, 1)
- ).bind('click.jsp', nil);
- if (settings.arrowScrollOnHover) {
- arrowUp.bind('mouseover.jsp', getArrowScroll(0, -1, arrowUp));
- arrowDown.bind('mouseover.jsp', getArrowScroll(0, 1, arrowDown));
- }
-
- appendArrows(verticalTrack, settings.verticalArrowPositions, arrowUp, arrowDown);
- }
-
- verticalTrackHeight = paneHeight;
- container.find('>.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow').each(
- function()
- {
- verticalTrackHeight -= $(this).outerHeight();
- }
- );
-
-
- verticalDrag.hover(
- function()
- {
- verticalDrag.addClass('jspHover');
- },
- function()
- {
- verticalDrag.removeClass('jspHover');
- }
- ).bind(
- 'mousedown.jsp',
- function(e)
- {
- // Stop IE from allowing text selection
- $('html').bind('dragstart.jsp selectstart.jsp', function() { return false; });
-
- verticalDrag.addClass('jspActive');
-
- var startY = e.pageY - verticalDrag.position().top;
-
- $('html').bind(
- 'mousemove.jsp',
- function(e)
- {
- positionDragY(e.pageY - startY, false);
- }
- ).bind('mouseup.jsp mouseleave.jsp', cancelDrag);
- return false;
- }
- );
- sizeVerticalScrollbar();
- updateVerticalArrows();
- initMousewheel();
- } else {
- // no vertical scroll
- removeMousewheel();
- }
- }
-
- function sizeVerticalScrollbar()
- {
- verticalTrack.height(verticalTrackHeight + 'px');
- verticalDragPosition = 0;
- scrollbarWidth = settings.verticalGutter + verticalTrack.outerWidth();
-
- // Make the pane thinner to allow for the vertical scrollbar
- pane.width(paneWidth - scrollbarWidth - originalPaddingTotalWidth);
-
- // Add margin to the left of the pane if scrollbars are on that side (to position
- // the scrollbar on the left or right set it's left or right property in CSS)
- if (verticalBar.position().left == 0) {
- pane.css('margin-left', scrollbarWidth + 'px');
- }
- }
-
- function initialiseHorizontalScroll()
- {
- if (isScrollableH) {
-
- container.append(
- $('<div class="jspHorizontalBar" />').append(
- $('<div class="jspCap jspCapLeft" />'),
- $('<div class="jspTrack" />').append(
- $('<div class="jspDrag" />').append(
- $('<div class="jspDragLeft" />'),
- $('<div class="jspDragRight" />')
- )
- ),
- $('<div class="jspCap jspCapRight" />')
- )
- );
-
- horizontalBar = container.find('>.jspHorizontalBar');
- horizontalTrack = horizontalBar.find('>.jspTrack');
- horizontalDrag = horizontalTrack.find('>.jspDrag');
-
- if (settings.showArrows) {
- arrowLeft = $('<a href="#" class="jspArrow jspArrowLeft">Scroll left</a>').bind(
- 'mousedown.jsp', getArrowScroll(-1, 0)
- ).bind('click.jsp', nil);
- arrowRight = $('<a href="#" class="jspArrow jspArrowRight">Scroll right</a>').bind(
- 'mousedown.jsp', getArrowScroll(1, 0)
- ).bind('click.jsp', nil);
- if (settings.arrowScrollOnHover) {
- arrowLeft.bind('mouseover.jsp', getArrowScroll(-1, 0, arrowLeft));
- arrowRight.bind('mouseover.jsp', getArrowScroll(1, 0, arrowRight));
- }
- appendArrows(horizontalTrack, settings.horizontalArrowPositions, arrowLeft, arrowRight);
- }
-
- horizontalDrag.hover(
- function()
- {
- horizontalDrag.addClass('jspHover');
- },
- function()
- {
- horizontalDrag.removeClass('jspHover');
- }
- ).bind(
- 'mousedown.jsp',
- function(e)
- {
- // Stop IE from allowing text selection
- $('html').bind('dragstart.jsp selectstart.jsp', function() { return false; });
-
- horizontalDrag.addClass('jspActive');
-
- var startX = e.pageX - horizontalDrag.position().left;
-
- $('html').bind(
- 'mousemove.jsp',
- function(e)
- {
- positionDragX(e.pageX - startX, false);
- }
- ).bind('mouseup.jsp mouseleave.jsp', cancelDrag);
- return false;
- }
- );
- horizontalTrackWidth = container.innerWidth();
- sizeHorizontalScrollbar();
- updateHorizontalArrows();
- } else {
- // no horizontal scroll
- }
- }
-
- function sizeHorizontalScrollbar()
- {
-
- container.find('>.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow').each(
- function()
- {
- horizontalTrackWidth -= $(this).outerWidth();
- }
- );
-
- horizontalTrack.width(horizontalTrackWidth + 'px');
- horizontalDragPosition = 0;
- }
-
- function resizeScrollbars()
- {
- if (isScrollableH && isScrollableV) {
- var horizontalTrackHeight = horizontalTrack.outerHeight(),
- verticalTrackWidth = verticalTrack.outerWidth();
- verticalTrackHeight -= horizontalTrackHeight;
- $(horizontalBar).find('>.jspCap:visible,>.jspArrow').each(
- function()
- {
- horizontalTrackWidth += $(this).outerWidth();
- }
- );
- horizontalTrackWidth -= verticalTrackWidth;
- paneHeight -= verticalTrackWidth;
- paneWidth -= horizontalTrackHeight;
- horizontalTrack.parent().append(
- $('<div class="jspCorner" />').css('width', horizontalTrackHeight + 'px')
- );
- sizeVerticalScrollbar();
- sizeHorizontalScrollbar();
- }
- // reflow content
- if (isScrollableH) {
- pane.width((container.outerWidth() - originalPaddingTotalWidth) + 'px');
- }
- contentHeight = pane.outerHeight();
- percentInViewV = contentHeight / paneHeight;
-
- if (isScrollableH) {
- horizontalDragWidth = 1 / percentInViewH * horizontalTrackWidth;
- if (horizontalDragWidth > settings.horizontalDragMaxWidth) {
- horizontalDragWidth = settings.horizontalDragMaxWidth;
- } else if (horizontalDragWidth < settings.horizontalDragMinWidth) {
- horizontalDragWidth = settings.horizontalDragMinWidth;
- }
- horizontalDrag.width(horizontalDragWidth + 'px');
- dragMaxX = horizontalTrackWidth - horizontalDragWidth;
- }
- if (isScrollableV) {
- verticalDragHeight = 1 / percentInViewV * verticalTrackHeight;
- if (verticalDragHeight > settings.verticalDragMaxHeight) {
- verticalDragHeight = settings.verticalDragMaxHeight;
- } else if (verticalDragHeight < settings.verticalDragMinHeight) {
- verticalDragHeight = settings.verticalDragMinHeight;
- }
- verticalDrag.height(verticalDragHeight + 'px');
- dragMaxY = verticalTrackHeight - verticalDragHeight;
- }
- }
-
- function appendArrows(ele, p, a1, a2)
- {
- var p1 = "before", p2 = "after", aTemp;
-
- // Sniff for mac... Is there a better way to determine whether the arrows would naturally appear
- // at the top or the bottom of the bar?
- if (p == "os") {
- p = /Mac/.test(navigator.platform) ? "after" : "split";
- }
- if (p == p1) {
- p2 = p;
- } else if (p == p2) {
- p1 = p;
- aTemp = a1;
- a1 = a2;
- a2 = aTemp;
- }
-
- ele[p1](a1)[p2](a2);
- }
-
- function getArrowScroll(dirX, dirY, ele) {
- return function()
- {
- arrowScroll(dirX, dirY, this, ele);
- this.blur();
- return false;
- }
- }
-
- function arrowScroll(dirX, dirY, arrow, ele)
- {
- arrow = $(arrow).addClass('jspActive');
-
- var eve, doScroll = function()
- {
- if (dirX != 0) {
- positionDragX(horizontalDragPosition + dirX * settings.arrowButtonSpeed, false);
- }
- if (dirY != 0) {
- positionDragY(verticalDragPosition + dirY * settings.arrowButtonSpeed, false);
- }
- },
- scrollInt = setInterval(doScroll, settings.arrowRepeatFreq);
-
- doScroll();
-
- eve = ele == undefined ? 'mouseup.jsp' : 'mouseout.jsp';
- ele = ele || $('html');
- ele.bind(
- eve,
- function()
- {
- arrow.removeClass('jspActive');
- clearInterval(scrollInt);
- ele.unbind(eve);
- }
- );
- }
-
- function cancelDrag()
- {
- $('html').unbind('dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp');
-
- verticalDrag && verticalDrag.removeClass('jspActive');
- horizontalDrag && horizontalDrag.removeClass('jspActive');
- }
-
- function positionDragY(destY, animate)
- {
- if (!isScrollableV) {
- return;
- }
- if (destY < 0) {
- destY = 0;
- } else if (destY > dragMaxY) {
- destY = dragMaxY;
- }
-
- // can't just check if(animate) because false is a valid value that could be passed in...
- if (animate == undefined) {
- animate = settings.animateScroll;
- }
- if (animate) {
- jsp.animate(verticalDrag, 'top', destY, _positionDragY);
- } else {
- verticalDrag.css('top', destY);
- _positionDragY(destY);
- }
-
- }
-
- function _positionDragY(destY)
- {
- if (destY == undefined) {
- destY = verticalDrag.position().top;
- }
-
- container.scrollTop(0);
- verticalDragPosition = destY;
-
- var isAtTop = verticalDragPosition == 0,
- isAtBottom = verticalDragPosition == dragMaxY,
- percentScrolled = destY/ dragMaxY,
- destTop = -percentScrolled * (contentHeight - paneHeight);
-
- updateVerticalArrows(isAtTop, isAtBottom);
- pane.css('top', destTop);
- elem.trigger('jsp-scroll-y', [-destTop, isAtTop, isAtBottom]);
- }
-
- function positionDragX(destX, animate)
- {
- if (!isScrollableH) {
- return;
- }
- if (destX < 0) {
- destX = 0;
- } else if (destX > dragMaxX) {
- destX = dragMaxX;
- }
-
- if (animate == undefined) {
- animate = settings.animateScroll;
- }
- if (animate) {
- jsp.animate(horizontalDrag, 'left', destX, _positionDragX);
- } else {
- horizontalDrag.css('left', destX);
- _positionDragX(destX);
- }
- }
-
- function _positionDragX(destX)
- {
- if (destX == undefined) {
- destX = horizontalDrag.position().left;
- }
-
- container.scrollTop(0);
- horizontalDragPosition = destX;
-
- var isAtLeft = horizontalDragPosition == 0,
- isAtRight = horizontalDragPosition == dragMaxY,
- percentScrolled = destX / dragMaxX,
- destLeft = -percentScrolled * (contentWidth - paneWidth);
-
- updateHorizontalArrows(isAtLeft, isAtRight);
- pane.css('left', destLeft);
- elem.trigger('jsp-scroll-x', [-destLeft, isAtLeft, isAtRight]);
- }
-
- function updateVerticalArrows(isAtTop, isAtBottom)
- {
- if (settings.showArrows) {
- arrowUp[isAtTop ? 'addClass' : 'removeClass']('jspDisabled');
- arrowDown[isAtBottom ? 'addClass' : 'removeClass']('jspDisabled');
- }
- }
-
- function updateHorizontalArrows(isAtLeft, isAtRight)
- {
- if (settings.showArrows) {
- arrowLeft[isAtLeft ? 'addClass' : 'removeClass']('jspDisabled');
- arrowRight[isAtRight ? 'addClass' : 'removeClass']('jspDisabled');
- }
- }
-
- function scrollToY(destY, animate)
- {
- var percentScrolled = destY / (contentHeight - paneHeight);
- positionDragY(percentScrolled * dragMaxY, animate);
- }
-
- function scrollToX(destX, animate)
- {
- var percentScrolled = destX / (contentWidth - paneWidth);
- positionDragX(percentScrolled * dragMaxX, animate);
- }
-
- function scrollToElement(ele, stickToTop, animate)
- {
- var e, eleHeight, eleTop = 0, viewportTop, maxVisibleEleTop, destY;
-
- // Legal hash values aren't necessarily legal jQuery selectors so we need to catch any
- // errors from the lookup...
- try {
- e = $(ele);
- } catch (err) {
- return;
- }
- eleHeight = e.outerHeight();
-
- container.scrollTop(0);
-
- // loop through parents adding the offset top of any elements that are relatively positioned between
- // the focused element and the jspPane so we can get the true distance from the top
- // of the focused element to the top of the scrollpane...
- while (!e.is('.jspPane')) {
- eleTop += e.position().top;
- e = e.offsetParent();
- if (/^body|html$/i.test(e[0].nodeName)) {
- // we ended up too high in the document structure. Quit!
- return;
- }
- }
-
-
- viewportTop = contentPositionY();
- maxVisibleEleTop = viewportTop + paneHeight;
- if (eleTop < viewportTop || stickToTop) { // element is above viewport
- destY = eleTop - settings.verticalGutter;
- } else if (eleTop + eleHeight > maxVisibleEleTop) { // element is below viewport
- destY = eleTop - paneHeight + eleHeight + settings.verticalGutter;
- }
- if (destY) {
- scrollToY(destY, animate);
- }
- // TODO: Implement automatic horizontal scrolling?
- }
-
- function contentPositionX()
- {
- return -pane.position().left;
- }
-
- function contentPositionY()
- {
- return -pane.position().top;
- }
-
- function initMousewheel()
- {
- container.unbind('mousewheel.jsp').bind(
- 'mousewheel.jsp',
- function (event, delta) {
- var d = verticalDragPosition;
- positionDragY(verticalDragPosition - delta * settings.mouseWheelSpeed, false);
- // return true if there was no movement so rest of screen can scroll
- return d == verticalDragPosition;
- }
- );
- }
-
- function removeMousewheel()
- {
- container.unbind('mousewheel.jsp');
- }
-
- function nil()
- {
- return false;
- }
-
- function initFocusHandler()
- {
- pane.find(':input,a').bind(
- 'focus.jsp',
- function()
- {
- scrollToElement(this, false);
- }
- );
- }
-
- function removeFocusHandler()
- {
-
- pane.find(':input,a').unbind('focus.jsp')
- }
-
- function observeHash()
- {
- if (location.hash && location.hash.length > 1) {
- var e, retryInt;
- try {
- e = $(location.hash);
- } catch (err) {
- return;
- }
-
- if (e.length && pane.find(e)) {
- // nasty workaround but it appears to take a little while before the hash has done its thing
- // to the rendered page so we just wait until the container's scrollTop has been messed up.
- if (container.scrollTop() == 0) {
- retryInt = setInterval(
- function()
- {
- if (container.scrollTop() > 0) {
- scrollToElement(location.hash, true);
- $(document).scrollTop(container.position().top);
- clearInterval(retryInt);
- }
- },
- 50
- )
- } else {
- scrollToElement(location.hash, true);
- $(document).scrollTop(container.position().top);
- }
- }
- }
- }
-
- function unhijackInternalLinks()
- {
- $('a.jspHijack').unbind('click.jsp-hijack').removeClass('jspHijack');
- }
-
- function hijackInternalLinks()
- {
- unhijackInternalLinks();
- $('a[href^=#]').addClass('jspHijack').bind(
- 'click.jsp-hijack',
- function()
- {
- var uriParts = this.href.split('#'), hash;
- if (uriParts.length > 1) {
- hash = uriParts[1];
- if (hash.length > 0 && pane.find('#' + hash).length > 0) {
- scrollToElement('#' + hash, true);
- // Need to return false otherwise things mess up... Would be nice to maybe also scroll
- // the window to the top of the scrollpane?
- return false;
- }
- }
- }
- )
- }
-
- // Public API
- $.extend(
- jsp,
- {
- // Reinitialises the scroll pane (if it's internal dimensions have changed since the last time it
- // was initialised). The settings object which is passed in will override any settings from the
- // previous time it was initialised - if you don't pass any settings then the ones from the previous
- // initialisation will be used.
- reinitialise: function(s)
- {
- s = $.extend({}, s, settings);
- initialise(s);
- },
- // Scrolls the specified element (a jQuery object, DOM node or jQuery selector string) into view so
- // that it can be seen within the viewport. If stickToTop is true then the element will appear at
- // the top of the viewport, if it is false then the viewport will scroll as little as possible to
- // show the element. You can also specify if you want animation to occur. If you don't provide this
- // argument then the animateScroll value from the settings object is used instead.
- scrollToElement: function(ele, stickToTop, animate)
- {
- scrollToElement(ele, stickToTop, animate);
- },
- // Scrolls the pane so that the specified co-ordinates within the content are at the top left
- // of the viewport. animate is optional and if not passed then the value of animateScroll from
- // the settings object this jScrollPane was initialised with is used.
- scrollTo: function(destX, destY, animate)
- {
- scrollToX(destX, animate);
- scrollToY(destY, animate);
- },
- // Scrolls the pane so that the specified co-ordinate within the content is at the left of the
- // viewport. animate is optional and if not passed then the value of animateScroll from the settings
- // object this jScrollPane was initialised with is used.
- scrollToX: function(destX, animate)
- {
- scrollToX(destX, animate);
- },
- // Scrolls the pane so that the specified co-ordinate within the content is at the top of the
- // viewport. animate is optional and if not passed then the value of animateScroll from the settings
- // object this jScrollPane was initialised with is used.
- scrollToY: function(destY, animate)
- {
- scrollToY(destY, animate);
- },
- // Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- // the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- scrollBy: function(deltaX, deltaY, animate)
- {
- jsp.scrollByX(deltaX, animate);
- jsp.scrollByY(deltaY, animate);
- },
- // Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- // the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- scrollByX: function(deltaX, animate)
- {
- var destX = contentPositionX() + deltaX,
- percentScrolled = destX / (contentWidth - paneWidth);
- positionDragX(percentScrolled * dragMaxX, animate);
- },
- // Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
- // the value of animateScroll from the settings object this jScrollPane was initialised with is used.
- scrollByY: function(deltaY, animate)
- {
- var destY = contentPositionY() + deltaY,
- percentScrolled = destY / (contentHeight - paneHeight);
- positionDragY(percentScrolled * dragMaxY, animate);
- },
- // This method is called when jScrollPane is trying to animate to a new position. You can override
- // it if you want to provide advanced animation functionality. It is passed the following arguments:
- // * ele - the element whose position is being animated
- // * prop - the property that is being animated
- // * value - the value it's being animated to
- // * stepCallback - a function that you must execute each time you update the value of the property
- // You can use the default implementation (below) as a starting point for your own implementation.
- animate: function(ele, prop, value, stepCallback)
- {
- var params = {};
- params[prop] = value;
- ele.animate(
- params,
- {
- 'duration' : settings.animateDuration,
- 'ease' : settings.animateEase,
- 'queue' : false,
- 'step' : stepCallback
- }
- );
- },
- // Returns the current x position of the viewport with regards to the content pane.
- getContentPositionX: function()
- {
- return contentPositionX();
- },
- // Returns the current y position of the viewport with regards to the content pane.
- getContentPositionY: function()
- {
- return contentPositionY();
- },
- // Gets a reference to the content pane. It is important that you use this method if you want to
- // edit the content of your jScrollPane as if you access the element directly then you may have some
- // problems (as your original element has had additional elements for the scrollbars etc added into
- // it).
- getContentPane: function()
- {
- return pane;
- },
- // Scrolls this jScrollPane down as far as it can currently scroll. If animate isn't passed then the
- // animateScroll value from settings is used instead.
- scrollToBottom: function(animate)
- {
- positionDragY(dragMaxY, animate);
- },
- // Hijacks the links on the page which link to content inside the scrollpane. If you have changed
- // the content of your page (e.g. via AJAX) and want to make sure any new anchor links to the
- // contents of your scroll pane will work then call this function.
- hijackInternalLinks: function()
- {
- hijackInternalLinks();
- }
- }
- );
- }
-
- // Pluginifying code...
-
- settings = $.extend({}, $.fn.jScrollPane.defaults, settings);
-
- var ret;
- this.each(
- function()
- {
- var elem = $(this), jspApi = elem.data('jsp');
- if (jspApi) {
- jspApi.reinitialise(settings);
- } else {
- jspApi = new JScrollPane(elem, settings);
- elem.data('jsp', jspApi);
- }
- ret = ret ? ret.add(elem) : elem;
- }
- )
- return ret;
- };
-
- $.fn.jScrollPane.defaults = {
- 'showArrows' : false,
- 'maintainPosition' : true,
- 'autoReinitialise' : false,
- 'autoReinitialiseDelay' : 500,
- 'verticalDragMinHeight' : 0,
- 'verticalDragMaxHeight' : 99999,
- 'horizontalDragMinWidth' : 0,
- 'horizontalDragMaxWidth' : 99999,
- 'animateScroll' : false,
- 'animateDuration' : 300,
- 'animateEase' : 'linear',
- 'hijackInternalLinks' : false,
- 'verticalGutter' : 4,
- 'horizontalGutter' : 4,
- 'mouseWheelSpeed' : 10,
- 'arrowButtonSpeed' : 10,
- 'arrowRepeatFreq' : 100,
- 'arrowScrollOnHover' : false,
- 'verticalArrowPositions' : 'split',
- 'horizontalArrowPositions' : 'split'
- };
-
-})(jQuery,this);
-
diff --git a/libs/bower_components/jScrollPane/issues/7/native.html b/libs/bower_components/jScrollPane/issues/7/native.html
deleted file mode 100644
index 51d0c8e6dc..0000000000
--- a/libs/bower_components/jScrollPane/issues/7/native.html
+++ /dev/null
@@ -1,171 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <!-- Thanks to Rob Lifford ( http://www.lifford.org/ ) for the test case -->
- <meta charset="utf-8">
- <title>jScrollPane 2 reinit bug?</title>
- <style type="text/css">
- body, html {
- margin: 0;
- padding: 20px;
- font-family: Verdana, sans-serif;
- font-size: 85%;
- line-height: 1.5;
- }
-
- .float {
- float: left;
- }
-
- .clear {
- clear: both;
- }
-
- .scroll-container {
- width: 400px;
- height: 200px;
- overflow: auto;
- margin: 0 2em 1.5em 0;
- }
-
- .fluid-width {
- width: 100%;
- }
-
- .padded {
- padding: 5px;
- }
-
- ul {
- margin: 0;
- padding: 0;
- line-height: 1;
- list-style: none;
- border-bottom: solid 1px #ccc;
- }
-
- li {
- margin: 0;
- padding: 10px 5px;
- border-top: solid 1px #ccc;
- }
-
- </style>
- <link rel="stylesheet" type="text/css" href="jscrollpane-2b1.css" />
-
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
-
- </head>
- <body>
-
- <div class="scroll-container float">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
-
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
-
- <li>the next list item</li>
- </ul>
- </div>
-
- <div class="scroll-container float">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- </ul>
- </div>
-
- <div class="scroll-container padded clear">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
-
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
-
- <li>the next list item</li>
- </ul>
- </div>
-
- <div class="scroll-container fluid-width clear">
- <ul>
- <li><strong>scrollable list box</strong></li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
-
- <li>another list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
-
- <li>list item</li>
- <li>another list item</li>
- <li>the next list item</li>
- <li>the next list item</li>
- <li>list item</li>
- <li>another list item</li>
-
- <li>the next list item</li>
- </ul>
- </div>
-
-
- <p class="clear"><button id="api">reinit via API</button> <button id="jsp">Reinit by re-calling .jScrollPane</button> </p>
-
- <p>In the above testcase: reinitialising jScrollPane (either via the api or simply by re-calling .jScrollPane() on the original element) strips out the width of the div.jspPane and causes a rendering issue: the absolutely-positioned div renders only as wide as its text content. The expected behavior is that it'll fill the available width, as it does on page load after the first call to .jScrollPane().</p>
-
-
-<p><strong>UPDATE:</strong> this is fixed for scrollable content in v2b2, but when the content is not scrollable there's still undesired rendering on first load.</p>
-
-<p>Additionally, padding calculations might need some tweaks. The third list box here is identical to the first two except for an added 5px of padding all the way around: note how the jspVerticalBar is partially pushed out of view.</p>
-
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/known_issues.html b/libs/bower_components/jScrollPane/known_issues.html
deleted file mode 100644
index 1d962fafda..0000000000
--- a/libs/bower_components/jScrollPane/known_issues.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - known issues</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - cross browser styleable scrollbars with jQuery and CSS</h1>
- <p>
- This page discusses known issues with jScrollPane and provides suggested workarounds for these issues.
- </p>
- <h2 id="opera-scrollbar">In Opera the main window scrollbar appears when a jScrollPane contains lots of content</h2>
- <p>
- As far as I can tell this is due to a bug in Opera. The workaround is to include something absolutely
- positioned as a parent of your jScrollPane. See <a href="http://code.google.com/p/jscrollpane/issues/detail?id=19">
- this bug report</a> (from the previous version of jScrollPane) for discussion of this problem.
- </p>
- <h2 id="webkit-css-first">In Webkit browsers CSS must be included before Javascript</h2>
- <p>
- For jScrollPane to work correctly in Webkit based browsers (e.g. Safari, Chrome, iOS and Android) then
- the CSS must be included above your javascript includes. Otherwise jScrollPane can't correctly measure
- the size of the item you are applying jScrollPane to. See all of the <a href="index.html#examples">
- example</a> or <a href="index.html#themes">theme</a> pages for a reference as to the correct ordering
- of items in your &lt;head&gt;.
- </p>
- <h2 id="specified-width">Width specified directly on an element you apply jScrollPane to will be overwritten</h2>
- <p>
- If you apply a width to an element (e.g. via jQuery's width method or via a style attribute) then this
- width will be overwritten when you reinitialise the scrollpane. Unforunately I can't find a way to avoid
- this and still support percentage based widths for elements/
- </p>
- <p>
- As a workaround you can specify the width via a CSS class refering to a stylesheet rule. If you can't do
- this (e.g. you calculate the width dynamically) you will have to wrap your element in an additional div
- and apply the width to that element while setting the width of your element to 100% via the stylesheet.
- </p>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/less_basic.html b/libs/bower_components/jScrollPane/less_basic.html
deleted file mode 100644
index db76f0201d..0000000000
--- a/libs/bower_components/jScrollPane/less_basic.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>Less basic jScrollPane demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- // Initialise the scrollpanes
- $('.scroll-pane').jScrollPane();
-
- // Add some content to #pane2
- var pane2api = $('#pane2').data('jsp');
- var originalContent = pane2api.getContentPane().html();
- pane2api.getContentPane().html(originalContent + originalContent + originalContent);
-
- // Reinitialise the #pane2 scrollpane
- pane2api.reinitialise();
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - less basic demo page</h1>
- <p>
- This page shows some slightly more complex features of jScrollPane... Matching multiple elements but
- allowing each to work independantly, <a href="api.html#reinitialise">reinitialising</a> when you call it
- again etc... Note that you need to use the API to <a href="api.html#getContentPane">getContentPane</a>
- to add and remove content (as your original element now contains the scrollbars etc).
- </p>
- <h2>Pane 1</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Pane 2</h2>
- <div class="scroll-pane" id="pane2">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/mwheel_intent.html b/libs/bower_components/jScrollPane/mwheel_intent.html
deleted file mode 100644
index c674cf14e7..0000000000
--- a/libs/bower_components/jScrollPane/mwheel_intent.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane mwheelIntent demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the mwheelIntent plugin -->
- <script type="text/javascript" src="script/mwheelIntent.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane();
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - mwheelIntent demo page</h1>
- <p>
- This demonstration shows how the <a href="http://www.protofunc.com/scripts/jquery/mwheelIntent/">
- mwheelIntent</a> plugin can be used to increase the usability of jScrollPane when using the mouse wheel.
- Note that when you scroll this page the body continues to scroll unless you stop scrolling and move your
- mouse over a jScrollPane.
- </p>
- <p>
- To use the mwheelIntent plugin with jScrollPane simply include it in the head of your document (as I
- do above).
- </p>
-
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <div class="scroll-pane horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/override_animate.html b/libs/bower_components/jScrollPane/override_animate.html
deleted file mode 100644
index 448e898cff..0000000000
--- a/libs/bower_components/jScrollPane/override_animate.html
+++ /dev/null
@@ -1,215 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane override animate demo page</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
-
- div#forms
- {
- overflow: hidden;
-
- }
-
- form
- {
- float: left;
- width: 50%;
- padding: 0 0 1em;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- var pane = $('.scroll-pane');
- pane.jScrollPane(
- {
- showArrows: true,
- animateScroll: true
- }
- );
- var api = pane.data('jsp');
-
- api.animate = function(ele, prop, value, stepCallback)
- {
- // Set the property to its new value
- ele.css(prop, value);
- // Call the stepCallback so that jScrollPane can update everything as necessary
- stepCallback();
- /*
- // Default implemenation for reference
- var params = {};
- params[prop] = value;
- ele.animate(
- params,
- {
- 'duration' : settings.animateDuration,
- 'easing' : settings.animateEase,
- 'queue' : false,
- 'step' : stepCallback
- }
- );
- */
- }
-
- $('#but-scroll-to').bind(
- 'click',
- function()
- {
- // Note, there is also scrollToX and scrollToY methods if you only
- // want to scroll in one dimension
- api.scrollTo(parseInt($('#toX').val()), parseInt($('#toY').val()));
- return false;
- }
- );
-
- $('#but-scroll-by').bind(
- 'click',
- function()
- {
- // Note, there is also scrollByX and scrollByY methods if you only
- // want to scroll in one dimension
- api.scrollBy(parseInt($('#byX').val()), parseInt($('#byY').val()));
- return false;
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - overriding animate example</h1>
- <p>
- This example extends the <a href="scroll_to_animate.html">scroll to animate</a> example to show how you
- can override the <a href="api.html#animate">animate</a> method of the jScrollPane API to implement your
- own custom animation.
- </p>
- <p>
- For the purposes of the demo we simply implement an animation which jumps to the end point (i.e. doesn't
- animate at all!) but it shows how you would hook your custom code in...
- </p>
- <div id="forms">
- <form>
- <fieldset>
- <legend>scrollTo functionality</legend>
- <label for="toX">To x:</label>
- <input type="text" id="toX" name="toX" value="0" />
- <label for="toY">To y:</label>
- <input type="text" id="toY" name="toY" value="0" />
- <input type="submit" id="but-scroll-to" value="Scroll to" />
- </fieldset>
- </form>
- <form>
- <fieldset>
- <legend>scrollBy functionality</legend>
- <label for="byX">By x:</label>
- <input type="text" id="byX" name="byX" value="0" />
- <label for="byY">By y:</label>
- <input type="text" id="byY" name="byY" value="0" />
- <input type="submit" id="but-scroll-by" value="Scroll by" />
- </fieldset>
- </form>
- </div>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p style="width: 900px;">
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/runeimp.html b/libs/bower_components/jScrollPane/runeimp.html
deleted file mode 100644
index 394f4049bf..0000000000
--- a/libs/bower_components/jScrollPane/runeimp.html
+++ /dev/null
@@ -1,314 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - RuneImp demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .section
- {
- width: 190px;
- height: 300px;
- float: left;
- margin: 0 0 1em 0;
- }
- .scroll-pane
- {
- width: 170px;
- padding: 0 10px;
- height: 100%;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane();
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - RuneImp demo page</h1>
- <p>
- This demonstration tries to recreate the situation described in
- <a href="http://code.google.com/p/jscrollpane/issues/detail?id=60#c65">this support ticket</a> to fix
- the problem and verify the fix. If you view this example page with javascript disabled and then with it
- enabled you will see that the result is almost identical in terms of scrollbar placement and content
- padding.
- </p>
- <p>
- After looking at this example it occured to me that the aim of the layout could probably be better served
- by using margins as well as padding so I put together a <a href="runeimp2.html">follow on example</a>.
- </p>
-
- <h2>Panes</h2>
- <div class="section">
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </div>
- <div class="section">
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </div>
- <div class="section">
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </div>
- <div class="section">
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/runeimp2.html b/libs/bower_components/jScrollPane/runeimp2.html
deleted file mode 100644
index afe5fd01c4..0000000000
--- a/libs/bower_components/jScrollPane/runeimp2.html
+++ /dev/null
@@ -1,320 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - RuneImp demo 2</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .section
- {
- width: 180px;
- margin: 0 13px 1em 0;
- height: 300px;
- float: left;
- }
- .last
- {
- margin-right: 0;
- }
- .scroll-pane
- {
- background: #fff;
- padding: 0 0 0 10px;
- width: 170px;
- height: 100%;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane();
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - RuneImp demo 2 page</h1>
- <p>
- This demonstration is an extension of the <a href="runeimp.html">RuneImp demo</a> to verify that
- jScrollPane works correctly when the gap between the sections is specified as margin on the container
- (rather than padding on the element). As you can see, I still using padding on the left hand side of
- the scrolling element to bring the text in from the edge but I also use margins to make the space on
- the right hand side of the scrollbars.
- </p>
- <p>
- Note that I've made the background of .scroll-pane white in this example to demonstrate that the gap
- is margin rather than padding. You can also change the margin rules on .section and .last to padding and
- the layout will continue to work as expected.
- </p>
-
- <h2>Panes</h2>
- <div class="section">
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </div>
- <div class="section">
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </div>
- <div class="section">
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </div>
- <div class="section last">
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/scroll_on_left.html b/libs/bower_components/jScrollPane/scroll_on_left.html
deleted file mode 100644
index 1031dd418a..0000000000
--- a/libs/bower_components/jScrollPane/scroll_on_left.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane demo - scroll on left hand side</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
-
- /* Force the scroll bar to the left hand side of the screen */
- .jspVerticalBar
- {
- left: 0;
- }
-
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane();
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - scroll on left demo</h1>
- <p>
- This demonstration shows how you can make the jScrollPane scrollbars appear on the left hand side of
- your content. You simply set "left: 0" on the .jspVerticalBar class (this overrides the "right: 0" in
- the jquery.jscrollpane.css file).
- </p>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/scroll_to.html b/libs/bower_components/jScrollPane/scroll_to.html
deleted file mode 100644
index 3d8e173ac8..0000000000
--- a/libs/bower_components/jScrollPane/scroll_to.html
+++ /dev/null
@@ -1,188 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane scrollTo/ scrollBy demo page</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
-
- div#forms
- {
- overflow: hidden;
-
- }
-
- form
- {
- float: left;
- width: 50%;
- padding: 0 0 1em;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- var pane = $('.scroll-pane');
- pane.jScrollPane(
- {
- showArrows: true
- }
- );
- var api = pane.data('jsp');
-
- $('#but-scroll-to').bind(
- 'click',
- function()
- {
- // Note, there is also scrollToX and scrollToY methods if you only
- // want to scroll in one dimension
- api.scrollTo(parseInt($('#toX').val()), parseInt($('#toY').val()));
- return false;
- }
- );
-
- $('#but-scroll-by').bind(
- 'click',
- function()
- {
- // Note, there is also scrollByX and scrollByY methods if you only
- // want to scroll in one dimension
- api.scrollBy(parseInt($('#byX').val()), parseInt($('#byY').val()));
- return false;
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - scrollTo/ scrollBy page</h1>
- <p>
- This example shows how you can use the jScrollPane <a href="api.html">API</a> to tell a scrollpane
- to <a href="api.html#scrollTo">scrollTo</a> a particular place or <a href="api.html#scrollBy">scrollBy
- </a> a particular amount. Use the form below to experiment with this functionality:
- </p>
- <div id="forms">
- <form>
- <fieldset>
- <legend>scrollTo functionality</legend>
- <label for="toX">To x:</label>
- <input type="text" id="toX" name="toX" value="0" />
- <label for="toY">To y:</label>
- <input type="text" id="toY" name="toY" value="0" />
- <input type="submit" id="but-scroll-to" value="Scroll to" />
- </fieldset>
- </form>
- <form>
- <fieldset>
- <legend>scrollBy functionality</legend>
- <label for="byX">By x:</label>
- <input type="text" id="byX" name="byX" value="0" />
- <label for="byY">By y:</label>
- <input type="text" id="byY" name="byY" value="0" />
- <input type="submit" id="but-scroll-by" value="Scroll by" />
- </fieldset>
- </form>
- </div>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p style="width: 900px;">
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/scroll_to_animate.html b/libs/bower_components/jScrollPane/scroll_to_animate.html
deleted file mode 100644
index 3ae825a211..0000000000
--- a/libs/bower_components/jScrollPane/scroll_to_animate.html
+++ /dev/null
@@ -1,197 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane scrollTo/ scrollBy with animation demo page</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
-
- div#forms
- {
- overflow: hidden;
-
- }
-
- form
- {
- float: left;
- width: 50%;
- padding: 0 0 1em;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- var pane = $('.scroll-pane');
- pane.jScrollPane(
- {
- showArrows: true,
- animateScroll: true
- }
- );
- var api = pane.data('jsp');
-
- $('#but-scroll-to').bind(
- 'click',
- function()
- {
- // Note, there is also scrollToX and scrollToY methods if you only
- // want to scroll in one dimension
- api.scrollTo(parseInt($('#toX').val()), parseInt($('#toY').val()));
- return false;
- }
- );
-
- $('#but-scroll-by').bind(
- 'click',
- function()
- {
- // Note, there is also scrollByX and scrollByY methods if you only
- // want to scroll in one dimension
- api.scrollBy(parseInt($('#byX').val()), parseInt($('#byY').val()));
- return false;
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - scrollTo/ scrollBy with animation page</h1>
- <p>
- This example extends the basic <a href="scroll_to.html">scrollTo/ scrollBy</a> demo and passes
- <strong><a href="settings.html#animateScroll">animateScroll</a>: true</strong> in the settings.
- This means that when you call <a href="api.html#scrollTo">scrollTo</a> or <a href="api.html#scrollBy">
- scrollBy</a> the transition to the new state is animated.
- </p>
- <p>
- Note that the <a href="api.html#animate">animate</a> function which is called is a property on the
- jScrollPane API method. This means that you are free to overwrite it if you want to implement custom
- animation settings for your paricular use case. If you just want to tweak the speed and easing of the
- default animation then you can use the <a href="settings.html#animateDuration">animateDuration</a> and
- <a href="settings.html#animateEase">animateEase</a> settings properties.
- </p>
- <div id="forms">
- <form>
- <fieldset>
- <legend>scrollTo functionality</legend>
- <label for="toX">To x:</label>
- <input type="text" id="toX" name="toX" value="0" />
- <label for="toY">To y:</label>
- <input type="text" id="toY" name="toY" value="0" />
- <input type="submit" id="but-scroll-to" value="Scroll to" />
- </fieldset>
- </form>
- <form>
- <fieldset>
- <legend>scrollBy functionality</legend>
- <label for="byX">By x:</label>
- <input type="text" id="byX" name="byX" value="0" />
- <label for="byY">By y:</label>
- <input type="text" id="byY" name="byY" value="0" />
- <input type="submit" id="but-scroll-by" value="Scroll by" />
- </fieldset>
- </form>
- </div>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p style="width: 900px;">
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/settings.html b/libs/bower_components/jScrollPane/settings.html
deleted file mode 100644
index aaa9ff50c5..0000000000
--- a/libs/bower_components/jScrollPane/settings.html
+++ /dev/null
@@ -1,202 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane - settings object documentation</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - settings object documentation</h1>
- <p>
- This page details the various options that you can pass into the settings object when you initialise
- jScrollPane. Note that there is also a number of changes you can make through the <a href="api.html">
- API</a> after the scrollpane is already initialised and a number of <a href="events.html">events</a> you
- can listen to.
- </p>
- <h2 id="showArrows">showArrows <span class="setting-type">- boolean (default false)</span></h2>
- <p>
- Whether arrows should be shown on the generated scroll pane. When set to false only the scrollbar track
- and drag will be shown, if set to true then arrows buttons will also be shown. <a href="arrows.html">
- Demo</a>.
- </p>
- <h2 id="maintainPosition">maintainPosition <span class="setting-type">- boolean (default true)</span></h2>
- <p>
- Whether the scrollpane should attempt to maintain it's position whenever it is reinitialised. If true
- then the viewport of the scrollpane will remain the same when it is reinitialised, if false then the
- viewport will jump back up to the top when the scrollpane is reinitialised. See also
- <a href="#stickToBottom">stickToBottom</a> and <a href="#stickToRight">stickToRight</a>.
- </p>
- <h2 id="stickToBottom">stickToBottom<span class="setting-type">- boolean (default false)</span></h2>
- <p>
- If <a href="#maintainPosition">maintainPosition</a> is true and the scrollpane is scrolled to the
- bottom then the scrollpane then the scrollpane will remain scrolled to the bottom even if new content
- is added to the pane which makes it taller.
- </p>
- <h2 id="stickToRight">stickToRight<span class="setting-type">- boolean (default false)</span></h2>
- <p>
- If <a href="#maintainPosition">maintainPosition</a> is true and the scrollpane is scrolled to its
- right edge then the scrollpane then the scrollpane will remain scrolled to the right edge even if new
- content is added to the pane which makes it wider.
- </p>
- <h2 id="autoReinitialise">autoReinitialise <span class="setting-type">- boolean (default false)</span></h2>
- <p>
- Whether jScrollPane should automatically reinitialise itself periodically after you have initially
- initialised it. This can help with instances when the size of the content of the scrollpane (or the
- surrounding element) changes. However, it does involve an overhead of running a javascript function on
- a timer so it is recommended only to activate where necessary. <a href="auto_reinitialise.html">Demo</a>.
- </p>
- <h2 id="autoReinitialiseDelay">autoReinitialiseDelay <span class="setting-type">- int (default 500)</span></h2>
- <p>
- The number of milliseconds between each reinitialisation (if <a href="#autoReinitialise">autoReinitialise</a>
- is true).
- </p>
- <h2 id="verticalDragMinHeight">verticalDragMinHeight <span class="setting-type">- int (default 0)</span></h2>
- <p>
- The smallest height that the vertical drag can have. The size of the drag elements is based on the
- proportion of the size of the content to the size of the viewport but is contrained within the minimum
- and maximum dimensions given. <a href="drag_size.html">Demo</a>.
- </p>
- <h2 id="verticalDragMaxHeight">verticalDragMaxHeight <span class="setting-type">- int (default 99999)</span></h2>
- <p>
- See <a href="#verticalDragMinHeight">verticalDragMinHeight</a>.
- </p>
- <h2 id="horizontalDragMinWidth">horizontalDragMinWidth <span class="setting-type">- int (default 0)</span></h2>
- <p>
- See <a href="#verticalDragMinHeight">verticalDragMinHeight</a>.
- </p>
- <h2 id="horizontalDragMaxWidth">horizontalDragMaxWidth <span class="setting-type">- int (default 99999)</span></h2>
- <p>
- See <a href="#verticalDragMinHeight">verticalDragMinHeight</a>.
- </p>
- <h2 id="contentWidth">contentWidth <span class="setting-type">- int (default undefined)</span></h2>
- <p>
- The width of the content of the scroll pane. The default value of undefined will allow jScrollPane to
- calculate the width of it's content. However, in some cases you will want to disable this (e.g. to
- prevent horizontal scrolling or where the calculation of the size of the content doesn't return reliable
- results)
- </p>
- <h2 id="animateScroll">animateScroll <span class="setting-type">- boolean (default false)</span></h2>
- <p>
- Whether to use animation when calling <a href="api.html#scrollTo">scrollTo</a> or <a href="api.html#scrollBy">
- scrollBy</a>. You can control the animation speed and easing by using the <a href="#animateDuration">
- animateDuration</a> and <a href="#animateEase">animateEase</a> settings or if you want to exercise more
- complete control then you can override the <a href="api.html#animate">animate</a> API method.
- <a href="scroll_to_animate.html">Demo</a>.
- </p>
- <h2 id="animateDuration">animateDuration <span class="setting-type">- int (default 300)</span></h2>
- <p>
- The number of milliseconds taken to animate to a new position (see <a href="#animateScroll">animateScroll
- </a>).
- </p>
- <h2 id="animateEase">animateEase <span class="setting-type">- string (default 'linear')</span></h2>
- <p>
- The type of easing to use when animating to a new position (see <a href="#animateScroll">animateScroll
- </a> and <a href="http://api.jquery.com/animate/#easing">easing</a>).
- </p>
- <h2 id="hijackInternalLinks">hijackInternalLinks <span class="setting-type">- boolean (default false)</span></h2>
- <p>
- Whether internal links on the page should be hijacked so that if they point so content within a
- jScrollPane then they automatically scroll the jScrollPane to the correct place. <a href="anchors.html">
- Demo</a>.
- </p>
- <h2 id="verticalGutter">verticalGutter <span class="setting-type">- int (default 4)</span></h2>
- <p>
- The amount of space between the side of the content and the vertical scrollbar.
- </p>
- <h2 id="horizontalGutter">horizontalGutter <span class="setting-type">- int (default 4)</span></h2>
- <p>
- The amount of space between the bottom of the content and the horizontal scrollbar.
- </p>
- <h2 id="mouseWheelSpeed">mouseWheelSpeed <span class="setting-type">- int (default 10)</span></h2>
- <p>
- A multiplier which is used to control the amount that the scrollpane scrolls each time the mouse wheel
- is turned. If a recent version of the mousewheel plugin is used then the `deltaFactor` from that is used
- to get a [more reliable](https://github.com/brandonaaron/jquery-mousewheel#getting-the-scroll-distance)
- indication of how far the user wanted to scroll.
- </p>
- <h2 id="arrowButtonSpeed">arrowButtonSpeed <span class="setting-type">- int (default 10)</span></h2>
- <p>
- A multiplier which is used to control the amount that the scrollpane scrolls each time on of the arrow
- buttons is pressed.
- </p>
- <h2 id="arrowRepeatFreq">arrowRepeatFreq <span class="setting-type">- int (default 100)</span></h2>
- <p>
- The number of milliseconds between each repeated scroll event when the mouse is held down over one of
- the arrow keys.
- </p>
- <h2 id="arrowScrollOnHover">arrowScrollOnHover <span class="setting-type">- boolean (default false)</span></h2>
- <p>
- Whether the arrow buttons should cause the jScrollPane to scroll while you are hovering over them.
- <a href="arrow_hover.html">Demo</a>.
- </p>
- <h2 id="verticalArrowPositions">
- verticalArrowPositions <span class="setting-type">- string [split|before|after|os] (default split)</span>
- </h2>
- <p>
- Where the vertical arrows should appear relative to the vertical track. <a href="arrow_positions.html">
- Demo</a>.
- </p>
- <h2 id="horizontalArrowPositions">
- horizontalArrowPositions <span class="setting-type">- string [split|before|after|os] (default split)</span>
- </h2>
- <p>
- Where the horizontal arrows should appear relative to the horizontal track. <a href="arrow_positions.html">
- Demo</a>.
- </p>
- <h2 id="enableKeyboardNavigation">
- enableKeyboardNavigation <span class="setting-type">- boolean (default true)</span>
- </h2>
- <p>
- Whether keyboard navigation should be enabled (e.g. whether the user can focus the scrollpane and then
- use the arrow (and other) keys to navigate around.
- </p>
- <h2 id="hideFocus">
- hideFocus <span class="setting-type">- boolean (default false)</span>
- </h2>
- <p>
- Whether the focus outline should be hidden in all browsers. For best accessibility you should not change
- this option. You can style the outline with the CSS property outline and outline-offset.
- </p>
- <h2 id="clickOnTrack">
- clickOnTrack <span class="setting-type">- boolean (default true)</span>
- </h2>
- <p>
- Whether clicking on the track (e.g. the area behind the drag) should scroll towards the point clicked on.
- Defaults to true as this is the native behaviour in these situations.
- </p>
- <h2 id="trackClickSpeed">trackClickSpeed <span class="setting-type">- int (default 30)</span></h2>
- <p>
- A multiplier which is used to control the amount that the scrollpane scrolls each trackClickRepeatFreq
- while the mouse button is held down over the track.
- </p>
- <h2 id="trackClickRepeatFreq">trackClickRepeatFreq <span class="setting-type">- int (default 100)</span></h2>
- <p>
- The number of milliseconds between each repeated scroll event when the mouse is held down over the
- track.
- </p>
-
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/short.html b/libs/bower_components/jScrollPane/short.html
deleted file mode 100644
index 0e2115b257..0000000000
--- a/libs/bower_components/jScrollPane/short.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>Short jScrollPane demo</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane
- {
- width: 100%;
- max-height: 200px;
- overflow: auto;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane();
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="index.html">Home</a></li>
- <li><a href="index.html#examples">Examples</a></li>
- <li><a href="index.html#themes">Themes</a></li>
- <li><a href="index.html#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="index.html#support">Support</a></li>
- <li><a href="index.html#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - demo page showing "no scroll necessary"</h1>
- <p>
- This demonstration shows how jScrollPane won't add scrollbars if you apply it to an element which
- doesn't require scrolling.
- </p>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_222222_256x240.png b/libs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_222222_256x240.png
deleted file mode 100755
index b273ff111d..0000000000
--- a/libs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_222222_256x240.png
+++ /dev/null
Binary files differ
diff --git a/libs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_888888_256x240.png b/libs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_888888_256x240.png
deleted file mode 100755
index 6d02426c11..0000000000
--- a/libs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_888888_256x240.png
+++ /dev/null
Binary files differ
diff --git a/libs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_cd0a0a_256x240.png b/libs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_cd0a0a_256x240.png
deleted file mode 100755
index 2ab019b73e..0000000000
--- a/libs/bower_components/jScrollPane/themes/lozenge/image/ui-icons_cd0a0a_256x240.png
+++ /dev/null
Binary files differ
diff --git a/libs/bower_components/jScrollPane/themes/lozenge/index.html b/libs/bower_components/jScrollPane/themes/lozenge/index.html
deleted file mode 100644
index e2092b6d83..0000000000
--- a/libs/bower_components/jScrollPane/themes/lozenge/index.html
+++ /dev/null
@@ -1,337 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane theme demo: Lozenge</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="../../style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="../../style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
- <!-- the styles for the lozenge theme -->
- <link type="text/css" href="style/jquery.jscrollpane.lozenge.css" rel="stylesheet" media="all" />
-
- <style type="text/css" id="page-css">
- /* Styles specific to this particular page */
- .scroll-pane,
- .scroll-pane-arrows
- {
- width: 100%;
- height: 200px;
- overflow: auto;
- }
- .horizontal-only
- {
- height: auto;
- max-height: 200px;
- }
- </style>
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="../../script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="../../script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="../../script/demo.js"></script>
-
- <script type="text/javascript" id="sourcecode">
- $(function()
- {
- $('.scroll-pane').jScrollPane();
- $('.scroll-pane-arrows').jScrollPane(
- {
- showArrows: true,
- horizontalGutter: 10
- }
- );
- });
- </script>
- </head>
- <body>
- <div id="top-nav">
- <img src="../../image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="../../">Home</a></li>
- <li><a href="../../#examples">Examples</a></li>
- <li><a href="../../#themes">Themes</a></li>
- <li><a href="../../#usage">How to use</a></li>
- <li><a href="../../faqs.html">FAQs</a></li>
- <li><a href="../../known_issues.html">Known issues</a></li>
- <li><a href="../../#support">Support</a></li>
- <li><a href="../../#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane - lozenge theme</h1>
- <p>
- Lozenge is a very simple theme with rounded corners for the drag element (on browsers which support the
- relevant CSS properties) and simple arrow graphics (borrowed from the jQuery UI
- <a href="http://jqueryui.com/themeroller/">Lightness</a> theme). It also supports hover and disabled
- states for the various elements.
- </p>
- <h2>Vertical only</h2>
- <div class="scroll-pane">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Vertical with arrows</h2>
- <div class="scroll-pane-arrows">
- <p>
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Horizontal only</h2>
- <div class="scroll-pane horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Horizontal only with arrows</h2>
- <div class="scroll-pane-arrows horizontal-only">
- <p style="width: 1000px;">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- </div>
- <h2>Both</h2>
- <div class="scroll-pane">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Both with arrows</h2>
- <div class="scroll-pane-arrows">
- <p style="width: 1000px">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec in ligula id sem tristique ultrices
- eget id neque. Duis enim turpis, tempus at accumsan vitae, lobortis id sapien. Pellentesque nec orci
- mi, in pharetra ligula. Nulla facilisi. Nulla facilisi. Mauris convallis venenatis massa, quis
- consectetur felis ornare quis. Sed aliquet nunc ac ante molestie ultricies. Nam pulvinar ultricies
- bibendum. Vivamus diam leo, faucibus et vehicula eu, molestie sit amet dui. Proin nec orci et elit
- semper ultrices. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus
- mus. Sed quis urna mi, ac dignissim mauris. Quisque mollis ornare mauris, sed laoreet diam malesuada
- quis. Proin vel elementum ante. Donec hendrerit arcu ac odio tincidunt posuere. Vestibulum nec risus
- eu lacus semper viverra.
- </p>
- <p>
- Vestibulum dictum consectetur magna eu egestas. Praesent molestie dapibus erat, sit amet sodales
- lectus congue ut. Nam adipiscing, tortor ac blandit egestas, lorem ligula posuere ipsum, nec
- faucibus nisl enim eu purus. Quisque bibendum diam quis nunc eleifend at molestie libero tincidunt.
- Quisque tincidunt sapien a sapien pellentesque consequat. Mauris adipiscing venenatis augue ut
- tempor. Donec auctor mattis quam quis aliquam. Nullam ultrices erat in dolor pharetra bibendum.
- Suspendisse eget odio ut libero imperdiet rhoncus. Curabitur aliquet, ipsum sit amet aliquet varius,
- est urna ullamcorper magna, sed eleifend libero nunc non erat. Vivamus semper turpis ac turpis
- volutpat non cursus velit aliquam. Fusce id tortor id sapien porta egestas. Nulla venenatis luctus
- libero et suscipit. Sed sed purus risus. Donec auctor, leo nec eleifend vehicula, lacus felis
- sollicitudin est, vitae lacinia lectus urna nec libero. Aliquam pellentesque, arcu condimentum
- pharetra vestibulum, lectus felis malesuada felis, vel fringilla dolor dui tempus nisi. In hac
- habitasse platea dictumst. Ut imperdiet mauris vitae eros varius eget accumsan lectus adipiscing.
- </p>
- <p>
- Quisque et massa leo, sit amet adipiscing nisi. Mauris vel condimentum dolor. Duis quis ullamcorper
- eros. Proin metus dui, facilisis id bibendum sed, aliquet non ipsum. Aenean pulvinar risus eu nisi
- dictum eleifend. Maecenas mattis dolor eget lectus pretium eget molestie libero auctor. Praesent sit
- amet tellus sed nibh convallis semper. Curabitur nisl odio, feugiat non dapibus sed, tincidunt ut
- est. Nullam erat velit, suscipit aliquet commodo sit amet, mollis in mauris. Curabitur pharetra
- dictum interdum. In posuere pretium ultricies. Curabitur volutpat eros vehicula quam ultrices
- varius. Proin volutpat enim a massa tempor ornare. Sed ullamcorper fermentum nisl, ac hendrerit sem
- feugiat ac. Donec porttitor ullamcorper quam. Morbi pretium adipiscing quam, quis bibendum diam
- congue eget. Sed at lectus at est malesuada iaculis. Sed fermentum quam dui. Donec eget ipsum dolor,
- id mollis nisi. Donec fermentum vehicula porta.
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero
- sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed,
- commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros
- ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis.
- Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna
- eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis
- luctus, metus
- </p>
- <p>
- Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
- Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit
- amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
- </p>
- </div>
- <h2>Page javascript</h2>
- <div id="sourcecode-display">
- <p>The contents of this div will be replaced by the javascript added to this page</p>
- </div>
- <h2>Page CSS</h2>
- <div id="css-display">
- <p>The contents of this div will be replaced by the CSS added to this page</p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/themes/lozenge/style/jquery.jscrollpane.lozenge.css b/libs/bower_components/jScrollPane/themes/lozenge/style/jquery.jscrollpane.lozenge.css
deleted file mode 100644
index 7bdbffa016..0000000000
--- a/libs/bower_components/jScrollPane/themes/lozenge/style/jquery.jscrollpane.lozenge.css
+++ /dev/null
@@ -1,78 +0,0 @@
-
-.jspHorizontalBar,
-.jspVerticalBar,
-.jspTrack
-{
- background: #eeeef4;
-}
-
-.jspDrag
-{
- background: #bbd;
-
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
- border-radius: 10px;
-}
-
-.jspTrack .jspActive,
-.jspTrack .jspHover,
-.jspDrag:hover
-{
- background: #8B8B9F;
-}
-
-
-.jspArrow
-{
- background: url(../image/ui-icons_222222_256x240.png) no-repeat;
-
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
- border-radius: 10px;
-}
-
-.jspVerticalBar>.jspActive,
-.jspArrow:hover
-{
- background-image: url('../image/ui-icons_cd0a0a_256x240.png');
-}
-
-.jspVerticalBar>.jspDisabled,
-.jspVerticalBar>.jspDisabled:hover,
-.jspHorizontalBar>.jspDisabled,
-.jspHorizontalBar>.jspDisabled:hover
-{
- background-color: transparent;
- background-image: url('../image/ui-icons_888888_256x240.png');
-}
-
-.jspVerticalBar .jspArrow
-{
- height: 15px;
-}
-
-.jspHorizontalBar .jspArrow
-{
- width: 15px;
-}
-
-.jspArrowUp
-{
- background-position: 0 0;
-}
-
-.jspArrowDown
-{
- background-position: -64px 0 !important;
-}
-
-.jspArrowLeft
-{
- background-position: -96px 0 !important;
-}
-
-.jspArrowRight
-{
- background-position: -32px 0 !important;
-} \ No newline at end of file
diff --git a/libs/bower_components/jScrollPane/v1.html b/libs/bower_components/jScrollPane/v1.html
deleted file mode 100644
index 4c14ae5a74..0000000000
--- a/libs/bower_components/jScrollPane/v1.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-
- <title>jScrollPane version 1.x</title>
-
- <!-- styles specific to demo site -->
- <link type="text/css" href="style/demo.css" rel="stylesheet" media="all" />
- <!-- styles needed by jScrollPane - include in your own sites -->
- <link type="text/css" href="style/jquery.jscrollpane.css" rel="stylesheet" media="all" />
-
- <!-- latest jQuery direct from google's CDN -->
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
- <!-- the mousewheel plugin -->
- <script type="text/javascript" src="script/jquery.mousewheel.js"></script>
- <!-- the jScrollPane script -->
- <script type="text/javascript" src="script/jquery.jscrollpane.min.js"></script>
- <!-- scripts specific to this demo site -->
- <script type="text/javascript" src="script/demo.js"></script>
- </head>
- <body>
- <div id="top-nav">
- <img src="image/logo.png" width="196" height="69" alt="jScrollPane">
- <ul>
- <li><a href="#">Home</a></li>
- <li><a href="#examples">Examples</a></li>
- <li><a href="#themes">Themes</a></li>
- <li><a href="#usage">How to use</a></li>
- <li><a href="faqs.html">FAQs</a></li>
- <li><a href="known_issues.html">Known issues</a></li>
- <li><a href="#support">Support</a></li>
- <li><a href="#download">Download</a></li>
- </ul>
- </div>
- <div id="container">
- <h1>jScrollPane version 1.x</h1>
- <p>
- You followed a link to a page for version 1 of jScrollPane - the jQuery plugin which provides cross browser
- custom scrollbars. Version 1 is now deprecated and all development/ support is concentrated on version 2 of
- the plugin. I suggest that you visit the <a href="/">new jScrollPane homepage</a> to find out all about version
- 2 of the plugin.
- </p>
- <p>
- If you must use version 1 of the (for example because you are updating a site that was originally built using
- version 1) then you can find the old site <a href="v1/demo/jScrollPane.html" rel="nofollow">here</a>.
- </div>
- </body>
-</html> \ No newline at end of file
diff --git a/libs/bower_components/jquery/src/.jshintrc b/libs/bower_components/jquery/src/.jshintrc
deleted file mode 100644
index ea3549d5c6..0000000000
--- a/libs/bower_components/jquery/src/.jshintrc
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "boss": true,
- "curly": true,
- "eqeqeq": true,
- "eqnull": true,
- "expr": true,
- "immed": true,
- "noarg": true,
- "quotmark": "double",
- "undef": true,
- "unused": true,
-
- "sub": true,
-
- // Support: IE < 10, Android < 4.1
- // The above browsers are failing a lot of tests in the ES5
- // test suite at http://test262.ecmascript.org.
- "es3": true,
-
- "globals": {
- "window": true,
- "JSON": false,
-
- "jQuery": true,
- "define": true,
- "module": true,
- "noGlobal": true
- }
-}
diff --git a/libs/bower_components/jquery/src/ajax.js b/libs/bower_components/jquery/src/ajax.js
deleted file mode 100644
index ba32248324..0000000000
--- a/libs/bower_components/jquery/src/ajax.js
+++ /dev/null
@@ -1,845 +0,0 @@
-define( [
- "./core",
- "./var/document",
- "./var/rnotwhite",
- "./ajax/var/location",
- "./ajax/var/nonce",
- "./ajax/var/rquery",
-
- "./core/init",
- "./ajax/parseJSON",
- "./ajax/parseXML",
- "./event/trigger",
- "./deferred"
-], function( jQuery, document, rnotwhite, location, nonce, rquery ) {
-
-var
- rhash = /#.*$/,
- rts = /([?&])_=[^&]*/,
- rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
-
- // #7653, #8125, #8152: local protocol detection
- rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
- rnoContent = /^(?:GET|HEAD)$/,
- rprotocol = /^\/\//,
-
- /* Prefilters
- * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
- * 2) These are called:
- * - BEFORE asking for a transport
- * - AFTER param serialization (s.data is a string if s.processData is true)
- * 3) key is the dataType
- * 4) the catchall symbol "*" can be used
- * 5) execution will start with transport dataType and THEN continue down to "*" if needed
- */
- prefilters = {},
-
- /* Transports bindings
- * 1) key is the dataType
- * 2) the catchall symbol "*" can be used
- * 3) selection will start with transport dataType and THEN go to "*" if needed
- */
- transports = {},
-
- // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
- allTypes = "*/".concat( "*" ),
-
- // Anchor tag for parsing the document origin
- originAnchor = document.createElement( "a" );
- originAnchor.href = location.href;
-
-// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
-function addToPrefiltersOrTransports( structure ) {
-
- // dataTypeExpression is optional and defaults to "*"
- return function( dataTypeExpression, func ) {
-
- if ( typeof dataTypeExpression !== "string" ) {
- func = dataTypeExpression;
- dataTypeExpression = "*";
- }
-
- var dataType,
- i = 0,
- dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
-
- if ( jQuery.isFunction( func ) ) {
-
- // For each dataType in the dataTypeExpression
- while ( ( dataType = dataTypes[ i++ ] ) ) {
-
- // Prepend if requested
- if ( dataType[ 0 ] === "+" ) {
- dataType = dataType.slice( 1 ) || "*";
- ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
-
- // Otherwise append
- } else {
- ( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
- }
- }
- }
- };
-}
-
-// Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
-
- var inspected = {},
- seekingTransport = ( structure === transports );
-
- function inspect( dataType ) {
- var selected;
- inspected[ dataType ] = true;
- jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
- var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
- if ( typeof dataTypeOrTransport === "string" &&
- !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
-
- options.dataTypes.unshift( dataTypeOrTransport );
- inspect( dataTypeOrTransport );
- return false;
- } else if ( seekingTransport ) {
- return !( selected = dataTypeOrTransport );
- }
- } );
- return selected;
- }
-
- return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
-}
-
-// A special extend for ajax options
-// that takes "flat" options (not to be deep extended)
-// Fixes #9887
-function ajaxExtend( target, src ) {
- var key, deep,
- flatOptions = jQuery.ajaxSettings.flatOptions || {};
-
- for ( key in src ) {
- if ( src[ key ] !== undefined ) {
- ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
- }
- }
- if ( deep ) {
- jQuery.extend( true, target, deep );
- }
-
- return target;
-}
-
-/* Handles responses to an ajax request:
- * - finds the right dataType (mediates between content-type and expected dataType)
- * - returns the corresponding response
- */
-function ajaxHandleResponses( s, jqXHR, responses ) {
-
- var ct, type, finalDataType, firstDataType,
- contents = s.contents,
- dataTypes = s.dataTypes;
-
- // Remove auto dataType and get content-type in the process
- while ( dataTypes[ 0 ] === "*" ) {
- dataTypes.shift();
- if ( ct === undefined ) {
- ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
- }
- }
-
- // Check if we're dealing with a known content-type
- if ( ct ) {
- for ( type in contents ) {
- if ( contents[ type ] && contents[ type ].test( ct ) ) {
- dataTypes.unshift( type );
- break;
- }
- }
- }
-
- // Check to see if we have a response for the expected dataType
- if ( dataTypes[ 0 ] in responses ) {
- finalDataType = dataTypes[ 0 ];
- } else {
-
- // Try convertible dataTypes
- for ( type in responses ) {
- if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
- finalDataType = type;
- break;
- }
- if ( !firstDataType ) {
- firstDataType = type;
- }
- }
-
- // Or just use first one
- finalDataType = finalDataType || firstDataType;
- }
-
- // If we found a dataType
- // We add the dataType to the list if needed
- // and return the corresponding response
- if ( finalDataType ) {
- if ( finalDataType !== dataTypes[ 0 ] ) {
- dataTypes.unshift( finalDataType );
- }
- return responses[ finalDataType ];
- }
-}
-
-/* Chain conversions given the request and the original response
- * Also sets the responseXXX fields on the jqXHR instance
- */
-function ajaxConvert( s, response, jqXHR, isSuccess ) {
- var conv2, current, conv, tmp, prev,
- converters = {},
-
- // Work with a copy of dataTypes in case we need to modify it for conversion
- dataTypes = s.dataTypes.slice();
-
- // Create converters map with lowercased keys
- if ( dataTypes[ 1 ] ) {
- for ( conv in s.converters ) {
- converters[ conv.toLowerCase() ] = s.converters[ conv ];
- }
- }
-
- current = dataTypes.shift();
-
- // Convert to each sequential dataType
- while ( current ) {
-
- if ( s.responseFields[ current ] ) {
- jqXHR[ s.responseFields[ current ] ] = response;
- }
-
- // Apply the dataFilter if provided
- if ( !prev && isSuccess && s.dataFilter ) {
- response = s.dataFilter( response, s.dataType );
- }
-
- prev = current;
- current = dataTypes.shift();
-
- if ( current ) {
-
- // There's only work to do if current dataType is non-auto
- if ( current === "*" ) {
-
- current = prev;
-
- // Convert response if prev dataType is non-auto and differs from current
- } else if ( prev !== "*" && prev !== current ) {
-
- // Seek a direct converter
- conv = converters[ prev + " " + current ] || converters[ "* " + current ];
-
- // If none found, seek a pair
- if ( !conv ) {
- for ( conv2 in converters ) {
-
- // If conv2 outputs current
- tmp = conv2.split( " " );
- if ( tmp[ 1 ] === current ) {
-
- // If prev can be converted to accepted input
- conv = converters[ prev + " " + tmp[ 0 ] ] ||
- converters[ "* " + tmp[ 0 ] ];
- if ( conv ) {
-
- // Condense equivalence converters
- if ( conv === true ) {
- conv = converters[ conv2 ];
-
- // Otherwise, insert the intermediate dataType
- } else if ( converters[ conv2 ] !== true ) {
- current = tmp[ 0 ];
- dataTypes.unshift( tmp[ 1 ] );
- }
- break;
- }
- }
- }
- }
-
- // Apply converter (if not an equivalence)
- if ( conv !== true ) {
-
- // Unless errors are allowed to bubble, catch and return them
- if ( conv && s.throws ) {
- response = conv( response );
- } else {
- try {
- response = conv( response );
- } catch ( e ) {
- return {
- state: "parsererror",
- error: conv ? e : "No conversion from " + prev + " to " + current
- };
- }
- }
- }
- }
- }
- }
-
- return { state: "success", data: response };
-}
-
-jQuery.extend( {
-
- // Counter for holding the number of active queries
- active: 0,
-
- // Last-Modified header cache for next request
- lastModified: {},
- etag: {},
-
- ajaxSettings: {
- url: location.href,
- type: "GET",
- isLocal: rlocalProtocol.test( location.protocol ),
- global: true,
- processData: true,
- async: true,
- contentType: "application/x-www-form-urlencoded; charset=UTF-8",
- /*
- timeout: 0,
- data: null,
- dataType: null,
- username: null,
- password: null,
- cache: null,
- throws: false,
- traditional: false,
- headers: {},
- */
-
- accepts: {
- "*": allTypes,
- text: "text/plain",
- html: "text/html",
- xml: "application/xml, text/xml",
- json: "application/json, text/javascript"
- },
-
- contents: {
- xml: /\bxml\b/,
- html: /\bhtml/,
- json: /\bjson\b/
- },
-
- responseFields: {
- xml: "responseXML",
- text: "responseText",
- json: "responseJSON"
- },
-
- // Data converters
- // Keys separate source (or catchall "*") and destination types with a single space
- converters: {
-
- // Convert anything to text
- "* text": String,
-
- // Text to html (true = no transformation)
- "text html": true,
-
- // Evaluate text as a json expression
- "text json": jQuery.parseJSON,
-
- // Parse text as xml
- "text xml": jQuery.parseXML
- },
-
- // For options that shouldn't be deep extended:
- // you can add your own custom options here if
- // and when you create one that shouldn't be
- // deep extended (see ajaxExtend)
- flatOptions: {
- url: true,
- context: true
- }
- },
-
- // Creates a full fledged settings object into target
- // with both ajaxSettings and settings fields.
- // If target is omitted, writes into ajaxSettings.
- ajaxSetup: function( target, settings ) {
- return settings ?
-
- // Building a settings object
- ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
-
- // Extending ajaxSettings
- ajaxExtend( jQuery.ajaxSettings, target );
- },
-
- ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
- ajaxTransport: addToPrefiltersOrTransports( transports ),
-
- // Main method
- ajax: function( url, options ) {
-
- // If url is an object, simulate pre-1.5 signature
- if ( typeof url === "object" ) {
- options = url;
- url = undefined;
- }
-
- // Force options to be an object
- options = options || {};
-
- var transport,
-
- // URL without anti-cache param
- cacheURL,
-
- // Response headers
- responseHeadersString,
- responseHeaders,
-
- // timeout handle
- timeoutTimer,
-
- // Url cleanup var
- urlAnchor,
-
- // To know if global events are to be dispatched
- fireGlobals,
-
- // Loop variable
- i,
-
- // Create the final options object
- s = jQuery.ajaxSetup( {}, options ),
-
- // Callbacks context
- callbackContext = s.context || s,
-
- // Context for global events is callbackContext if it is a DOM node or jQuery collection
- globalEventContext = s.context &&
- ( callbackContext.nodeType || callbackContext.jquery ) ?
- jQuery( callbackContext ) :
- jQuery.event,
-
- // Deferreds
- deferred = jQuery.Deferred(),
- completeDeferred = jQuery.Callbacks( "once memory" ),
-
- // Status-dependent callbacks
- statusCode = s.statusCode || {},
-
- // Headers (they are sent all at once)
- requestHeaders = {},
- requestHeadersNames = {},
-
- // The jqXHR state
- state = 0,
-
- // Default abort message
- strAbort = "canceled",
-
- // Fake xhr
- jqXHR = {
- readyState: 0,
-
- // Builds headers hashtable if needed
- getResponseHeader: function( key ) {
- var match;
- if ( state === 2 ) {
- if ( !responseHeaders ) {
- responseHeaders = {};
- while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
- responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
- }
- }
- match = responseHeaders[ key.toLowerCase() ];
- }
- return match == null ? null : match;
- },
-
- // Raw string
- getAllResponseHeaders: function() {
- return state === 2 ? responseHeadersString : null;
- },
-
- // Caches the header
- setRequestHeader: function( name, value ) {
- var lname = name.toLowerCase();
- if ( !state ) {
- name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
- requestHeaders[ name ] = value;
- }
- return this;
- },
-
- // Overrides response content-type header
- overrideMimeType: function( type ) {
- if ( !state ) {
- s.mimeType = type;
- }
- return this;
- },
-
- // Status-dependent callbacks
- statusCode: function( map ) {
- var code;
- if ( map ) {
- if ( state < 2 ) {
- for ( code in map ) {
-
- // Lazy-add the new callback in a way that preserves old ones
- statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
- }
- } else {
-
- // Execute the appropriate callbacks
- jqXHR.always( map[ jqXHR.status ] );
- }
- }
- return this;
- },
-
- // Cancel the request
- abort: function( statusText ) {
- var finalText = statusText || strAbort;
- if ( transport ) {
- transport.abort( finalText );
- }
- done( 0, finalText );
- return this;
- }
- };
-
- // Attach deferreds
- deferred.promise( jqXHR ).complete = completeDeferred.add;
- jqXHR.success = jqXHR.done;
- jqXHR.error = jqXHR.fail;
-
- // Remove hash character (#7531: and string promotion)
- // Add protocol if not provided (prefilters might expect it)
- // Handle falsy url in the settings object (#10093: consistency with old signature)
- // We also use the url parameter if available
- s.url = ( ( url || s.url || location.href ) + "" ).replace( rhash, "" )
- .replace( rprotocol, location.protocol + "//" );
-
- // Alias method option to type as per ticket #12004
- s.type = options.method || options.type || s.method || s.type;
-
- // Extract dataTypes list
- s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
-
- // A cross-domain request is in order when the origin doesn't match the current origin.
- if ( s.crossDomain == null ) {
- urlAnchor = document.createElement( "a" );
-
- // Support: IE8-11+
- // IE throws exception if url is malformed, e.g. http://example.com:80x/
- try {
- urlAnchor.href = s.url;
-
- // Support: IE8-11+
- // Anchor's host property isn't correctly set when s.url is relative
- urlAnchor.href = urlAnchor.href;
- s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
- urlAnchor.protocol + "//" + urlAnchor.host;
- } catch ( e ) {
-
- // If there is an error parsing the URL, assume it is crossDomain,
- // it can be rejected by the transport if it is invalid
- s.crossDomain = true;
- }
- }
-
- // Convert data if not already a string
- if ( s.data && s.processData && typeof s.data !== "string" ) {
- s.data = jQuery.param( s.data, s.traditional );
- }
-
- // Apply prefilters
- inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
-
- // If request was aborted inside a prefilter, stop there
- if ( state === 2 ) {
- return jqXHR;
- }
-
- // We can fire global events as of now if asked to
- // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
- fireGlobals = jQuery.event && s.global;
-
- // Watch for a new set of requests
- if ( fireGlobals && jQuery.active++ === 0 ) {
- jQuery.event.trigger( "ajaxStart" );
- }
-
- // Uppercase the type
- s.type = s.type.toUpperCase();
-
- // Determine if request has content
- s.hasContent = !rnoContent.test( s.type );
-
- // Save the URL in case we're toying with the If-Modified-Since
- // and/or If-None-Match header later on
- cacheURL = s.url;
-
- // More options handling for requests with no content
- if ( !s.hasContent ) {
-
- // If data is available, append data to url
- if ( s.data ) {
- cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
-
- // #9682: remove data so that it's not used in an eventual retry
- delete s.data;
- }
-
- // Add anti-cache in url if needed
- if ( s.cache === false ) {
- s.url = rts.test( cacheURL ) ?
-
- // If there is already a '_' parameter, set its value
- cacheURL.replace( rts, "$1_=" + nonce++ ) :
-
- // Otherwise add one to the end
- cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
- }
- }
-
- // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
- if ( s.ifModified ) {
- if ( jQuery.lastModified[ cacheURL ] ) {
- jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
- }
- if ( jQuery.etag[ cacheURL ] ) {
- jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
- }
- }
-
- // Set the correct header, if data is being sent
- if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
- jqXHR.setRequestHeader( "Content-Type", s.contentType );
- }
-
- // Set the Accepts header for the server, depending on the dataType
- jqXHR.setRequestHeader(
- "Accept",
- s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
- s.accepts[ s.dataTypes[ 0 ] ] +
- ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
- s.accepts[ "*" ]
- );
-
- // Check for headers option
- for ( i in s.headers ) {
- jqXHR.setRequestHeader( i, s.headers[ i ] );
- }
-
- // Allow custom headers/mimetypes and early abort
- if ( s.beforeSend &&
- ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
-
- // Abort if not done already and return
- return jqXHR.abort();
- }
-
- // Aborting is no longer a cancellation
- strAbort = "abort";
-
- // Install callbacks on deferreds
- for ( i in { success: 1, error: 1, complete: 1 } ) {
- jqXHR[ i ]( s[ i ] );
- }
-
- // Get transport
- transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
-
- // If no transport, we auto-abort
- if ( !transport ) {
- done( -1, "No Transport" );
- } else {
- jqXHR.readyState = 1;
-
- // Send global event
- if ( fireGlobals ) {
- globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
- }
-
- // If request was aborted inside ajaxSend, stop there
- if ( state === 2 ) {
- return jqXHR;
- }
-
- // Timeout
- if ( s.async && s.timeout > 0 ) {
- timeoutTimer = window.setTimeout( function() {
- jqXHR.abort( "timeout" );
- }, s.timeout );
- }
-
- try {
- state = 1;
- transport.send( requestHeaders, done );
- } catch ( e ) {
-
- // Propagate exception as error if not done
- if ( state < 2 ) {
- done( -1, e );
-
- // Simply rethrow otherwise
- } else {
- throw e;
- }
- }
- }
-
- // Callback for when everything is done
- function done( status, nativeStatusText, responses, headers ) {
- var isSuccess, success, error, response, modified,
- statusText = nativeStatusText;
-
- // Called once
- if ( state === 2 ) {
- return;
- }
-
- // State is "done" now
- state = 2;
-
- // Clear timeout if it exists
- if ( timeoutTimer ) {
- window.clearTimeout( timeoutTimer );
- }
-
- // Dereference transport for early garbage collection
- // (no matter how long the jqXHR object will be used)
- transport = undefined;
-
- // Cache response headers
- responseHeadersString = headers || "";
-
- // Set readyState
- jqXHR.readyState = status > 0 ? 4 : 0;
-
- // Determine if successful
- isSuccess = status >= 200 && status < 300 || status === 304;
-
- // Get response data
- if ( responses ) {
- response = ajaxHandleResponses( s, jqXHR, responses );
- }
-
- // Convert no matter what (that way responseXXX fields are always set)
- response = ajaxConvert( s, response, jqXHR, isSuccess );
-
- // If successful, handle type chaining
- if ( isSuccess ) {
-
- // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
- if ( s.ifModified ) {
- modified = jqXHR.getResponseHeader( "Last-Modified" );
- if ( modified ) {
- jQuery.lastModified[ cacheURL ] = modified;
- }
- modified = jqXHR.getResponseHeader( "etag" );
- if ( modified ) {
- jQuery.etag[ cacheURL ] = modified;
- }
- }
-
- // if no content
- if ( status === 204 || s.type === "HEAD" ) {
- statusText = "nocontent";
-
- // if not modified
- } else if ( status === 304 ) {
- statusText = "notmodified";
-
- // If we have data, let's convert it
- } else {
- statusText = response.state;
- success = response.data;
- error = response.error;
- isSuccess = !error;
- }
- } else {
-
- // Extract error from statusText and normalize for non-aborts
- error = statusText;
- if ( status || !statusText ) {
- statusText = "error";
- if ( status < 0 ) {
- status = 0;
- }
- }
- }
-
- // Set data for the fake xhr object
- jqXHR.status = status;
- jqXHR.statusText = ( nativeStatusText || statusText ) + "";
-
- // Success/Error
- if ( isSuccess ) {
- deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
- } else {
- deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
- }
-
- // Status-dependent callbacks
- jqXHR.statusCode( statusCode );
- statusCode = undefined;
-
- if ( fireGlobals ) {
- globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
- [ jqXHR, s, isSuccess ? success : error ] );
- }
-
- // Complete
- completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
-
- if ( fireGlobals ) {
- globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
-
- // Handle the global AJAX counter
- if ( !( --jQuery.active ) ) {
- jQuery.event.trigger( "ajaxStop" );
- }
- }
- }
-
- return jqXHR;
- },
-
- getJSON: function( url, data, callback ) {
- return jQuery.get( url, data, callback, "json" );
- },
-
- getScript: function( url, callback ) {
- return jQuery.get( url, undefined, callback, "script" );
- }
-} );
-
-jQuery.each( [ "get", "post" ], function( i, method ) {
- jQuery[ method ] = function( url, data, callback, type ) {
-
- // Shift arguments if data argument was omitted
- if ( jQuery.isFunction( data ) ) {
- type = type || callback;
- callback = data;
- data = undefined;
- }
-
- // The url can be an options object (which then must have .url)
- return jQuery.ajax( jQuery.extend( {
- url: url,
- type: method,
- dataType: type,
- data: data,
- success: callback
- }, jQuery.isPlainObject( url ) && url ) );
- };
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/ajax/jsonp.js b/libs/bower_components/jquery/src/ajax/jsonp.js
deleted file mode 100644
index 666e5d1e6d..0000000000
--- a/libs/bower_components/jquery/src/ajax/jsonp.js
+++ /dev/null
@@ -1,100 +0,0 @@
-define( [
- "../core",
- "./var/nonce",
- "./var/rquery",
- "../ajax"
-], function( jQuery, nonce, rquery ) {
-
-var oldCallbacks = [],
- rjsonp = /(=)\?(?=&|$)|\?\?/;
-
-// Default jsonp settings
-jQuery.ajaxSetup( {
- jsonp: "callback",
- jsonpCallback: function() {
- var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
- this[ callback ] = true;
- return callback;
- }
-} );
-
-// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
-
- var callbackName, overwritten, responseContainer,
- jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
- "url" :
- typeof s.data === "string" &&
- ( s.contentType || "" )
- .indexOf( "application/x-www-form-urlencoded" ) === 0 &&
- rjsonp.test( s.data ) && "data"
- );
-
- // Handle iff the expected data type is "jsonp" or we have a parameter to set
- if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
-
- // Get callback name, remembering preexisting value associated with it
- callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
- s.jsonpCallback() :
- s.jsonpCallback;
-
- // Insert callback into url or form data
- if ( jsonProp ) {
- s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
- } else if ( s.jsonp !== false ) {
- s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
- }
-
- // Use data converter to retrieve json after script execution
- s.converters[ "script json" ] = function() {
- if ( !responseContainer ) {
- jQuery.error( callbackName + " was not called" );
- }
- return responseContainer[ 0 ];
- };
-
- // Force json dataType
- s.dataTypes[ 0 ] = "json";
-
- // Install callback
- overwritten = window[ callbackName ];
- window[ callbackName ] = function() {
- responseContainer = arguments;
- };
-
- // Clean-up function (fires after converters)
- jqXHR.always( function() {
-
- // If previous value didn't exist - remove it
- if ( overwritten === undefined ) {
- jQuery( window ).removeProp( callbackName );
-
- // Otherwise restore preexisting value
- } else {
- window[ callbackName ] = overwritten;
- }
-
- // Save back as free
- if ( s[ callbackName ] ) {
-
- // Make sure that re-using the options doesn't screw things around
- s.jsonpCallback = originalSettings.jsonpCallback;
-
- // Save the callback name for future use
- oldCallbacks.push( callbackName );
- }
-
- // Call if it was a function and we have a response
- if ( responseContainer && jQuery.isFunction( overwritten ) ) {
- overwritten( responseContainer[ 0 ] );
- }
-
- responseContainer = overwritten = undefined;
- } );
-
- // Delegate to script
- return "script";
- }
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/ajax/load.js b/libs/bower_components/jquery/src/ajax/load.js
deleted file mode 100644
index 5ec3fa2525..0000000000
--- a/libs/bower_components/jquery/src/ajax/load.js
+++ /dev/null
@@ -1,83 +0,0 @@
-define( [
- "../core",
- "../core/parseHTML",
- "../ajax",
- "../traversing",
- "../manipulation",
- "../selector",
-
- // Optional event/alias dependency
- "../event/alias"
-], function( jQuery ) {
-
-// Keep a copy of the old load method
-var _load = jQuery.fn.load;
-
-/**
- * Load a url into a page
- */
-jQuery.fn.load = function( url, params, callback ) {
- if ( typeof url !== "string" && _load ) {
- return _load.apply( this, arguments );
- }
-
- var selector, type, response,
- self = this,
- off = url.indexOf( " " );
-
- if ( off > -1 ) {
- selector = jQuery.trim( url.slice( off ) );
- url = url.slice( 0, off );
- }
-
- // If it's a function
- if ( jQuery.isFunction( params ) ) {
-
- // We assume that it's the callback
- callback = params;
- params = undefined;
-
- // Otherwise, build a param string
- } else if ( params && typeof params === "object" ) {
- type = "POST";
- }
-
- // If we have elements to modify, make the request
- if ( self.length > 0 ) {
- jQuery.ajax( {
- url: url,
-
- // If "type" variable is undefined, then "GET" method will be used.
- // Make value of this field explicit since
- // user can override it through ajaxSetup method
- type: type || "GET",
- dataType: "html",
- data: params
- } ).done( function( responseText ) {
-
- // Save response for use in complete callback
- response = arguments;
-
- self.html( selector ?
-
- // If a selector was specified, locate the right elements in a dummy div
- // Exclude scripts to avoid IE 'Permission Denied' errors
- jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
-
- // Otherwise use the full result
- responseText );
-
- // If the request succeeds, this function gets "data", "status", "jqXHR"
- // but they are ignored because response was set above.
- // If it fails, this function gets "jqXHR", "status", "error"
- } ).always( callback && function( jqXHR, status ) {
- self.each( function() {
- callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
- } );
- } );
- }
-
- return this;
-};
-
-} );
diff --git a/libs/bower_components/jquery/src/ajax/parseJSON.js b/libs/bower_components/jquery/src/ajax/parseJSON.js
deleted file mode 100644
index 11918b06d6..0000000000
--- a/libs/bower_components/jquery/src/ajax/parseJSON.js
+++ /dev/null
@@ -1,13 +0,0 @@
-define( [
- "../core"
-], function( jQuery ) {
-
-// Support: Android 2.3
-// Workaround failure to string-cast null input
-jQuery.parseJSON = function( data ) {
- return JSON.parse( data + "" );
-};
-
-return jQuery.parseJSON;
-
-} );
diff --git a/libs/bower_components/jquery/src/ajax/parseXML.js b/libs/bower_components/jquery/src/ajax/parseXML.js
deleted file mode 100644
index 6599aaf5be..0000000000
--- a/libs/bower_components/jquery/src/ajax/parseXML.js
+++ /dev/null
@@ -1,27 +0,0 @@
-define( [
- "../core"
-], function( jQuery ) {
-
-// Cross-browser xml parsing
-jQuery.parseXML = function( data ) {
- var xml;
- if ( !data || typeof data !== "string" ) {
- return null;
- }
-
- // Support: IE9
- try {
- xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
- } catch ( e ) {
- xml = undefined;
- }
-
- if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
- jQuery.error( "Invalid XML: " + data );
- }
- return xml;
-};
-
-return jQuery.parseXML;
-
-} );
diff --git a/libs/bower_components/jquery/src/ajax/script.js b/libs/bower_components/jquery/src/ajax/script.js
deleted file mode 100644
index 945bea9dae..0000000000
--- a/libs/bower_components/jquery/src/ajax/script.js
+++ /dev/null
@@ -1,68 +0,0 @@
-define( [
- "../core",
- "../var/document",
- "../ajax"
-], function( jQuery, document ) {
-
-// Install script dataType
-jQuery.ajaxSetup( {
- accepts: {
- script: "text/javascript, application/javascript, " +
- "application/ecmascript, application/x-ecmascript"
- },
- contents: {
- script: /\b(?:java|ecma)script\b/
- },
- converters: {
- "text script": function( text ) {
- jQuery.globalEval( text );
- return text;
- }
- }
-} );
-
-// Handle cache's special case and crossDomain
-jQuery.ajaxPrefilter( "script", function( s ) {
- if ( s.cache === undefined ) {
- s.cache = false;
- }
- if ( s.crossDomain ) {
- s.type = "GET";
- }
-} );
-
-// Bind script tag hack transport
-jQuery.ajaxTransport( "script", function( s ) {
-
- // This transport only deals with cross domain requests
- if ( s.crossDomain ) {
- var script, callback;
- return {
- send: function( _, complete ) {
- script = jQuery( "<script>" ).prop( {
- charset: s.scriptCharset,
- src: s.url
- } ).on(
- "load error",
- callback = function( evt ) {
- script.remove();
- callback = null;
- if ( evt ) {
- complete( evt.type === "error" ? 404 : 200, evt.type );
- }
- }
- );
-
- // Use native DOM manipulation to avoid our domManip AJAX trickery
- document.head.appendChild( script[ 0 ] );
- },
- abort: function() {
- if ( callback ) {
- callback();
- }
- }
- };
- }
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/ajax/var/location.js b/libs/bower_components/jquery/src/ajax/var/location.js
deleted file mode 100644
index ff9578e993..0000000000
--- a/libs/bower_components/jquery/src/ajax/var/location.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return window.location;
-} );
diff --git a/libs/bower_components/jquery/src/ajax/var/nonce.js b/libs/bower_components/jquery/src/ajax/var/nonce.js
deleted file mode 100644
index 83fd557c87..0000000000
--- a/libs/bower_components/jquery/src/ajax/var/nonce.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "../../core"
-], function( jQuery ) {
- return jQuery.now();
-} );
diff --git a/libs/bower_components/jquery/src/ajax/var/rquery.js b/libs/bower_components/jquery/src/ajax/var/rquery.js
deleted file mode 100644
index 0502146ca8..0000000000
--- a/libs/bower_components/jquery/src/ajax/var/rquery.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return ( /\?/ );
-} );
diff --git a/libs/bower_components/jquery/src/ajax/xhr.js b/libs/bower_components/jquery/src/ajax/xhr.js
deleted file mode 100644
index db670ff15c..0000000000
--- a/libs/bower_components/jquery/src/ajax/xhr.js
+++ /dev/null
@@ -1,167 +0,0 @@
-define( [
- "../core",
- "../var/support",
- "../ajax"
-], function( jQuery, support ) {
-
-jQuery.ajaxSettings.xhr = function() {
- try {
- return new window.XMLHttpRequest();
- } catch ( e ) {}
-};
-
-var xhrSuccessStatus = {
-
- // File protocol always yields status code 0, assume 200
- 0: 200,
-
- // Support: IE9
- // #1450: sometimes IE returns 1223 when it should be 204
- 1223: 204
- },
- xhrSupported = jQuery.ajaxSettings.xhr();
-
-support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
-support.ajax = xhrSupported = !!xhrSupported;
-
-jQuery.ajaxTransport( function( options ) {
- var callback, errorCallback;
-
- // Cross domain only allowed if supported through XMLHttpRequest
- if ( support.cors || xhrSupported && !options.crossDomain ) {
- return {
- send: function( headers, complete ) {
- var i,
- xhr = options.xhr();
-
- xhr.open(
- options.type,
- options.url,
- options.async,
- options.username,
- options.password
- );
-
- // Apply custom fields if provided
- if ( options.xhrFields ) {
- for ( i in options.xhrFields ) {
- xhr[ i ] = options.xhrFields[ i ];
- }
- }
-
- // Override mime type if needed
- if ( options.mimeType && xhr.overrideMimeType ) {
- xhr.overrideMimeType( options.mimeType );
- }
-
- // X-Requested-With header
- // For cross-domain requests, seeing as conditions for a preflight are
- // akin to a jigsaw puzzle, we simply never set it to be sure.
- // (it can always be set on a per-request basis or even using ajaxSetup)
- // For same-domain requests, won't change header if already provided.
- if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
- headers[ "X-Requested-With" ] = "XMLHttpRequest";
- }
-
- // Set headers
- for ( i in headers ) {
- xhr.setRequestHeader( i, headers[ i ] );
- }
-
- // Callback
- callback = function( type ) {
- return function() {
- if ( callback ) {
- callback = errorCallback = xhr.onload =
- xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
-
- if ( type === "abort" ) {
- xhr.abort();
- } else if ( type === "error" ) {
-
- // Support: IE9
- // On a manual native abort, IE9 throws
- // errors on any property access that is not readyState
- if ( typeof xhr.status !== "number" ) {
- complete( 0, "error" );
- } else {
- complete(
-
- // File: protocol always yields status 0; see #8605, #14207
- xhr.status,
- xhr.statusText
- );
- }
- } else {
- complete(
- xhrSuccessStatus[ xhr.status ] || xhr.status,
- xhr.statusText,
-
- // Support: IE9 only
- // IE9 has no XHR2 but throws on binary (trac-11426)
- // For XHR2 non-text, let the caller handle it (gh-2498)
- ( xhr.responseType || "text" ) !== "text" ||
- typeof xhr.responseText !== "string" ?
- { binary: xhr.response } :
- { text: xhr.responseText },
- xhr.getAllResponseHeaders()
- );
- }
- }
- };
- };
-
- // Listen to events
- xhr.onload = callback();
- errorCallback = xhr.onerror = callback( "error" );
-
- // Support: IE9
- // Use onreadystatechange to replace onabort
- // to handle uncaught aborts
- if ( xhr.onabort !== undefined ) {
- xhr.onabort = errorCallback;
- } else {
- xhr.onreadystatechange = function() {
-
- // Check readyState before timeout as it changes
- if ( xhr.readyState === 4 ) {
-
- // Allow onerror to be called first,
- // but that will not handle a native abort
- // Also, save errorCallback to a variable
- // as xhr.onerror cannot be accessed
- window.setTimeout( function() {
- if ( callback ) {
- errorCallback();
- }
- } );
- }
- };
- }
-
- // Create the abort callback
- callback = callback( "abort" );
-
- try {
-
- // Do send the request (this may raise an exception)
- xhr.send( options.hasContent && options.data || null );
- } catch ( e ) {
-
- // #14683: Only rethrow if this hasn't been notified as an error yet
- if ( callback ) {
- throw e;
- }
- }
- },
-
- abort: function() {
- if ( callback ) {
- callback();
- }
- }
- };
- }
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/attributes.js b/libs/bower_components/jquery/src/attributes.js
deleted file mode 100644
index 691e0c0343..0000000000
--- a/libs/bower_components/jquery/src/attributes.js
+++ /dev/null
@@ -1,11 +0,0 @@
-define( [
- "./core",
- "./attributes/attr",
- "./attributes/prop",
- "./attributes/classes",
- "./attributes/val"
-], function( jQuery ) {
-
-// Return jQuery for attributes-only inclusion
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/attributes/attr.js b/libs/bower_components/jquery/src/attributes/attr.js
deleted file mode 100644
index f88808324d..0000000000
--- a/libs/bower_components/jquery/src/attributes/attr.js
+++ /dev/null
@@ -1,142 +0,0 @@
-define( [
- "../core",
- "../core/access",
- "./support",
- "../var/rnotwhite",
- "../selector"
-], function( jQuery, access, support, rnotwhite ) {
-
-var boolHook,
- attrHandle = jQuery.expr.attrHandle;
-
-jQuery.fn.extend( {
- attr: function( name, value ) {
- return access( this, jQuery.attr, name, value, arguments.length > 1 );
- },
-
- removeAttr: function( name ) {
- return this.each( function() {
- jQuery.removeAttr( this, name );
- } );
- }
-} );
-
-jQuery.extend( {
- attr: function( elem, name, value ) {
- var ret, hooks,
- nType = elem.nodeType;
-
- // Don't get/set attributes on text, comment and attribute nodes
- if ( nType === 3 || nType === 8 || nType === 2 ) {
- return;
- }
-
- // Fallback to prop when attributes are not supported
- if ( typeof elem.getAttribute === "undefined" ) {
- return jQuery.prop( elem, name, value );
- }
-
- // All attributes are lowercase
- // Grab necessary hook if one is defined
- if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
- name = name.toLowerCase();
- hooks = jQuery.attrHooks[ name ] ||
- ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
- }
-
- if ( value !== undefined ) {
- if ( value === null ) {
- jQuery.removeAttr( elem, name );
- return;
- }
-
- if ( hooks && "set" in hooks &&
- ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
- return ret;
- }
-
- elem.setAttribute( name, value + "" );
- return value;
- }
-
- if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
- return ret;
- }
-
- ret = jQuery.find.attr( elem, name );
-
- // Non-existent attributes return null, we normalize to undefined
- return ret == null ? undefined : ret;
- },
-
- attrHooks: {
- type: {
- set: function( elem, value ) {
- if ( !support.radioValue && value === "radio" &&
- jQuery.nodeName( elem, "input" ) ) {
- var val = elem.value;
- elem.setAttribute( "type", value );
- if ( val ) {
- elem.value = val;
- }
- return value;
- }
- }
- }
- },
-
- removeAttr: function( elem, value ) {
- var name, propName,
- i = 0,
- attrNames = value && value.match( rnotwhite );
-
- if ( attrNames && elem.nodeType === 1 ) {
- while ( ( name = attrNames[ i++ ] ) ) {
- propName = jQuery.propFix[ name ] || name;
-
- // Boolean attributes get special treatment (#10870)
- if ( jQuery.expr.match.bool.test( name ) ) {
-
- // Set corresponding property to false
- elem[ propName ] = false;
- }
-
- elem.removeAttribute( name );
- }
- }
- }
-} );
-
-// Hooks for boolean attributes
-boolHook = {
- set: function( elem, value, name ) {
- if ( value === false ) {
-
- // Remove boolean attributes when set to false
- jQuery.removeAttr( elem, name );
- } else {
- elem.setAttribute( name, name );
- }
- return name;
- }
-};
-jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
- var getter = attrHandle[ name ] || jQuery.find.attr;
-
- attrHandle[ name ] = function( elem, name, isXML ) {
- var ret, handle;
- if ( !isXML ) {
-
- // Avoid an infinite loop by temporarily removing this function from the getter
- handle = attrHandle[ name ];
- attrHandle[ name ] = ret;
- ret = getter( elem, name, isXML ) != null ?
- name.toLowerCase() :
- null;
- attrHandle[ name ] = handle;
- }
- return ret;
- };
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/attributes/classes.js b/libs/bower_components/jquery/src/attributes/classes.js
deleted file mode 100644
index 7933873c4f..0000000000
--- a/libs/bower_components/jquery/src/attributes/classes.js
+++ /dev/null
@@ -1,177 +0,0 @@
-define( [
- "../core",
- "../var/rnotwhite",
- "../data/var/dataPriv",
- "../core/init"
-], function( jQuery, rnotwhite, dataPriv ) {
-
-var rclass = /[\t\r\n\f]/g;
-
-function getClass( elem ) {
- return elem.getAttribute && elem.getAttribute( "class" ) || "";
-}
-
-jQuery.fn.extend( {
- addClass: function( value ) {
- var classes, elem, cur, curValue, clazz, j, finalValue,
- i = 0;
-
- if ( jQuery.isFunction( value ) ) {
- return this.each( function( j ) {
- jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
- } );
- }
-
- if ( typeof value === "string" && value ) {
- classes = value.match( rnotwhite ) || [];
-
- while ( ( elem = this[ i++ ] ) ) {
- curValue = getClass( elem );
- cur = elem.nodeType === 1 &&
- ( " " + curValue + " " ).replace( rclass, " " );
-
- if ( cur ) {
- j = 0;
- while ( ( clazz = classes[ j++ ] ) ) {
- if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
- cur += clazz + " ";
- }
- }
-
- // Only assign if different to avoid unneeded rendering.
- finalValue = jQuery.trim( cur );
- if ( curValue !== finalValue ) {
- elem.setAttribute( "class", finalValue );
- }
- }
- }
- }
-
- return this;
- },
-
- removeClass: function( value ) {
- var classes, elem, cur, curValue, clazz, j, finalValue,
- i = 0;
-
- if ( jQuery.isFunction( value ) ) {
- return this.each( function( j ) {
- jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
- } );
- }
-
- if ( !arguments.length ) {
- return this.attr( "class", "" );
- }
-
- if ( typeof value === "string" && value ) {
- classes = value.match( rnotwhite ) || [];
-
- while ( ( elem = this[ i++ ] ) ) {
- curValue = getClass( elem );
-
- // This expression is here for better compressibility (see addClass)
- cur = elem.nodeType === 1 &&
- ( " " + curValue + " " ).replace( rclass, " " );
-
- if ( cur ) {
- j = 0;
- while ( ( clazz = classes[ j++ ] ) ) {
-
- // Remove *all* instances
- while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
- cur = cur.replace( " " + clazz + " ", " " );
- }
- }
-
- // Only assign if different to avoid unneeded rendering.
- finalValue = jQuery.trim( cur );
- if ( curValue !== finalValue ) {
- elem.setAttribute( "class", finalValue );
- }
- }
- }
- }
-
- return this;
- },
-
- toggleClass: function( value, stateVal ) {
- var type = typeof value;
-
- if ( typeof stateVal === "boolean" && type === "string" ) {
- return stateVal ? this.addClass( value ) : this.removeClass( value );
- }
-
- if ( jQuery.isFunction( value ) ) {
- return this.each( function( i ) {
- jQuery( this ).toggleClass(
- value.call( this, i, getClass( this ), stateVal ),
- stateVal
- );
- } );
- }
-
- return this.each( function() {
- var className, i, self, classNames;
-
- if ( type === "string" ) {
-
- // Toggle individual class names
- i = 0;
- self = jQuery( this );
- classNames = value.match( rnotwhite ) || [];
-
- while ( ( className = classNames[ i++ ] ) ) {
-
- // Check each className given, space separated list
- if ( self.hasClass( className ) ) {
- self.removeClass( className );
- } else {
- self.addClass( className );
- }
- }
-
- // Toggle whole class name
- } else if ( value === undefined || type === "boolean" ) {
- className = getClass( this );
- if ( className ) {
-
- // Store className if set
- dataPriv.set( this, "__className__", className );
- }
-
- // If the element has a class name or if we're passed `false`,
- // then remove the whole classname (if there was one, the above saved it).
- // Otherwise bring back whatever was previously saved (if anything),
- // falling back to the empty string if nothing was stored.
- if ( this.setAttribute ) {
- this.setAttribute( "class",
- className || value === false ?
- "" :
- dataPriv.get( this, "__className__" ) || ""
- );
- }
- }
- } );
- },
-
- hasClass: function( selector ) {
- var className, elem,
- i = 0;
-
- className = " " + selector + " ";
- while ( ( elem = this[ i++ ] ) ) {
- if ( elem.nodeType === 1 &&
- ( " " + getClass( elem ) + " " ).replace( rclass, " " )
- .indexOf( className ) > -1
- ) {
- return true;
- }
- }
-
- return false;
- }
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/attributes/prop.js b/libs/bower_components/jquery/src/attributes/prop.js
deleted file mode 100644
index e127bb08f9..0000000000
--- a/libs/bower_components/jquery/src/attributes/prop.js
+++ /dev/null
@@ -1,125 +0,0 @@
-define( [
- "../core",
- "../core/access",
- "./support",
- "../selector"
-], function( jQuery, access, support ) {
-
-var rfocusable = /^(?:input|select|textarea|button)$/i,
- rclickable = /^(?:a|area)$/i;
-
-jQuery.fn.extend( {
- prop: function( name, value ) {
- return access( this, jQuery.prop, name, value, arguments.length > 1 );
- },
-
- removeProp: function( name ) {
- return this.each( function() {
- delete this[ jQuery.propFix[ name ] || name ];
- } );
- }
-} );
-
-jQuery.extend( {
- prop: function( elem, name, value ) {
- var ret, hooks,
- nType = elem.nodeType;
-
- // Don't get/set properties on text, comment and attribute nodes
- if ( nType === 3 || nType === 8 || nType === 2 ) {
- return;
- }
-
- if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
-
- // Fix name and attach hooks
- name = jQuery.propFix[ name ] || name;
- hooks = jQuery.propHooks[ name ];
- }
-
- if ( value !== undefined ) {
- if ( hooks && "set" in hooks &&
- ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
- return ret;
- }
-
- return ( elem[ name ] = value );
- }
-
- if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
- return ret;
- }
-
- return elem[ name ];
- },
-
- propHooks: {
- tabIndex: {
- get: function( elem ) {
-
- // elem.tabIndex doesn't always return the
- // correct value when it hasn't been explicitly set
- // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
- // Use proper attribute retrieval(#12072)
- var tabindex = jQuery.find.attr( elem, "tabindex" );
-
- return tabindex ?
- parseInt( tabindex, 10 ) :
- rfocusable.test( elem.nodeName ) ||
- rclickable.test( elem.nodeName ) && elem.href ?
- 0 :
- -1;
- }
- }
- },
-
- propFix: {
- "for": "htmlFor",
- "class": "className"
- }
-} );
-
-// Support: IE <=11 only
-// Accessing the selectedIndex property
-// forces the browser to respect setting selected
-// on the option
-// The getter ensures a default option is selected
-// when in an optgroup
-if ( !support.optSelected ) {
- jQuery.propHooks.selected = {
- get: function( elem ) {
- var parent = elem.parentNode;
- if ( parent && parent.parentNode ) {
- parent.parentNode.selectedIndex;
- }
- return null;
- },
- set: function( elem ) {
- var parent = elem.parentNode;
- if ( parent ) {
- parent.selectedIndex;
-
- if ( parent.parentNode ) {
- parent.parentNode.selectedIndex;
- }
- }
- }
- };
-}
-
-jQuery.each( [
- "tabIndex",
- "readOnly",
- "maxLength",
- "cellSpacing",
- "cellPadding",
- "rowSpan",
- "colSpan",
- "useMap",
- "frameBorder",
- "contentEditable"
-], function() {
- jQuery.propFix[ this.toLowerCase() ] = this;
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/attributes/support.js b/libs/bower_components/jquery/src/attributes/support.js
deleted file mode 100644
index e8d02b5c90..0000000000
--- a/libs/bower_components/jquery/src/attributes/support.js
+++ /dev/null
@@ -1,36 +0,0 @@
-define( [
- "../var/document",
- "../var/support"
-], function( document, support ) {
-
-( function() {
- var input = document.createElement( "input" ),
- select = document.createElement( "select" ),
- opt = select.appendChild( document.createElement( "option" ) );
-
- input.type = "checkbox";
-
- // Support: iOS<=5.1, Android<=4.2+
- // Default value for a checkbox should be "on"
- support.checkOn = input.value !== "";
-
- // Support: IE<=11+
- // Must access selectedIndex to make default options select
- support.optSelected = opt.selected;
-
- // Support: Android<=2.3
- // Options inside disabled selects are incorrectly marked as disabled
- select.disabled = true;
- support.optDisabled = !opt.disabled;
-
- // Support: IE<=11+
- // An input loses its value after becoming a radio
- input = document.createElement( "input" );
- input.value = "t";
- input.type = "radio";
- support.radioValue = input.value === "t";
-} )();
-
-return support;
-
-} );
diff --git a/libs/bower_components/jquery/src/attributes/val.js b/libs/bower_components/jquery/src/attributes/val.js
deleted file mode 100644
index 1fa91713df..0000000000
--- a/libs/bower_components/jquery/src/attributes/val.js
+++ /dev/null
@@ -1,177 +0,0 @@
-define( [
- "../core",
- "./support",
- "../core/init"
-], function( jQuery, support ) {
-
-var rreturn = /\r/g,
- rspaces = /[\x20\t\r\n\f]+/g;
-
-jQuery.fn.extend( {
- val: function( value ) {
- var hooks, ret, isFunction,
- elem = this[ 0 ];
-
- if ( !arguments.length ) {
- if ( elem ) {
- hooks = jQuery.valHooks[ elem.type ] ||
- jQuery.valHooks[ elem.nodeName.toLowerCase() ];
-
- if ( hooks &&
- "get" in hooks &&
- ( ret = hooks.get( elem, "value" ) ) !== undefined
- ) {
- return ret;
- }
-
- ret = elem.value;
-
- return typeof ret === "string" ?
-
- // Handle most common string cases
- ret.replace( rreturn, "" ) :
-
- // Handle cases where value is null/undef or number
- ret == null ? "" : ret;
- }
-
- return;
- }
-
- isFunction = jQuery.isFunction( value );
-
- return this.each( function( i ) {
- var val;
-
- if ( this.nodeType !== 1 ) {
- return;
- }
-
- if ( isFunction ) {
- val = value.call( this, i, jQuery( this ).val() );
- } else {
- val = value;
- }
-
- // Treat null/undefined as ""; convert numbers to string
- if ( val == null ) {
- val = "";
-
- } else if ( typeof val === "number" ) {
- val += "";
-
- } else if ( jQuery.isArray( val ) ) {
- val = jQuery.map( val, function( value ) {
- return value == null ? "" : value + "";
- } );
- }
-
- hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
-
- // If set returns undefined, fall back to normal setting
- if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
- this.value = val;
- }
- } );
- }
-} );
-
-jQuery.extend( {
- valHooks: {
- option: {
- get: function( elem ) {
-
- var val = jQuery.find.attr( elem, "value" );
- return val != null ?
- val :
-
- // Support: IE10-11+
- // option.text throws exceptions (#14686, #14858)
- // Strip and collapse whitespace
- // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
- jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " );
- }
- },
- select: {
- get: function( elem ) {
- var value, option,
- options = elem.options,
- index = elem.selectedIndex,
- one = elem.type === "select-one" || index < 0,
- values = one ? null : [],
- max = one ? index + 1 : options.length,
- i = index < 0 ?
- max :
- one ? index : 0;
-
- // Loop through all the selected options
- for ( ; i < max; i++ ) {
- option = options[ i ];
-
- // IE8-9 doesn't update selected after form reset (#2551)
- if ( ( option.selected || i === index ) &&
-
- // Don't return options that are disabled or in a disabled optgroup
- ( support.optDisabled ?
- !option.disabled : option.getAttribute( "disabled" ) === null ) &&
- ( !option.parentNode.disabled ||
- !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
-
- // Get the specific value for the option
- value = jQuery( option ).val();
-
- // We don't need an array for one selects
- if ( one ) {
- return value;
- }
-
- // Multi-Selects return an array
- values.push( value );
- }
- }
-
- return values;
- },
-
- set: function( elem, value ) {
- var optionSet, option,
- options = elem.options,
- values = jQuery.makeArray( value ),
- i = options.length;
-
- while ( i-- ) {
- option = options[ i ];
- if ( option.selected =
- jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
- ) {
- optionSet = true;
- }
- }
-
- // Force browsers to behave consistently when non-matching value is set
- if ( !optionSet ) {
- elem.selectedIndex = -1;
- }
- return values;
- }
- }
- }
-} );
-
-// Radios and checkboxes getter/setter
-jQuery.each( [ "radio", "checkbox" ], function() {
- jQuery.valHooks[ this ] = {
- set: function( elem, value ) {
- if ( jQuery.isArray( value ) ) {
- return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
- }
- }
- };
- if ( !support.checkOn ) {
- jQuery.valHooks[ this ].get = function( elem ) {
- return elem.getAttribute( "value" ) === null ? "on" : elem.value;
- };
- }
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/callbacks.js b/libs/bower_components/jquery/src/callbacks.js
deleted file mode 100644
index df7c7cf0ef..0000000000
--- a/libs/bower_components/jquery/src/callbacks.js
+++ /dev/null
@@ -1,232 +0,0 @@
-define( [
- "./core",
- "./var/rnotwhite"
-], function( jQuery, rnotwhite ) {
-
-// Convert String-formatted options into Object-formatted ones
-function createOptions( options ) {
- var object = {};
- jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
- object[ flag ] = true;
- } );
- return object;
-}
-
-/*
- * Create a callback list using the following parameters:
- *
- * options: an optional list of space-separated options that will change how
- * the callback list behaves or a more traditional option object
- *
- * By default a callback list will act like an event callback list and can be
- * "fired" multiple times.
- *
- * Possible options:
- *
- * once: will ensure the callback list can only be fired once (like a Deferred)
- *
- * memory: will keep track of previous values and will call any callback added
- * after the list has been fired right away with the latest "memorized"
- * values (like a Deferred)
- *
- * unique: will ensure a callback can only be added once (no duplicate in the list)
- *
- * stopOnFalse: interrupt callings when a callback returns false
- *
- */
-jQuery.Callbacks = function( options ) {
-
- // Convert options from String-formatted to Object-formatted if needed
- // (we check in cache first)
- options = typeof options === "string" ?
- createOptions( options ) :
- jQuery.extend( {}, options );
-
- var // Flag to know if list is currently firing
- firing,
-
- // Last fire value for non-forgettable lists
- memory,
-
- // Flag to know if list was already fired
- fired,
-
- // Flag to prevent firing
- locked,
-
- // Actual callback list
- list = [],
-
- // Queue of execution data for repeatable lists
- queue = [],
-
- // Index of currently firing callback (modified by add/remove as needed)
- firingIndex = -1,
-
- // Fire callbacks
- fire = function() {
-
- // Enforce single-firing
- locked = options.once;
-
- // Execute callbacks for all pending executions,
- // respecting firingIndex overrides and runtime changes
- fired = firing = true;
- for ( ; queue.length; firingIndex = -1 ) {
- memory = queue.shift();
- while ( ++firingIndex < list.length ) {
-
- // Run callback and check for early termination
- if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
- options.stopOnFalse ) {
-
- // Jump to end and forget the data so .add doesn't re-fire
- firingIndex = list.length;
- memory = false;
- }
- }
- }
-
- // Forget the data if we're done with it
- if ( !options.memory ) {
- memory = false;
- }
-
- firing = false;
-
- // Clean up if we're done firing for good
- if ( locked ) {
-
- // Keep an empty list if we have data for future add calls
- if ( memory ) {
- list = [];
-
- // Otherwise, this object is spent
- } else {
- list = "";
- }
- }
- },
-
- // Actual Callbacks object
- self = {
-
- // Add a callback or a collection of callbacks to the list
- add: function() {
- if ( list ) {
-
- // If we have memory from a past run, we should fire after adding
- if ( memory && !firing ) {
- firingIndex = list.length - 1;
- queue.push( memory );
- }
-
- ( function add( args ) {
- jQuery.each( args, function( _, arg ) {
- if ( jQuery.isFunction( arg ) ) {
- if ( !options.unique || !self.has( arg ) ) {
- list.push( arg );
- }
- } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
-
- // Inspect recursively
- add( arg );
- }
- } );
- } )( arguments );
-
- if ( memory && !firing ) {
- fire();
- }
- }
- return this;
- },
-
- // Remove a callback from the list
- remove: function() {
- jQuery.each( arguments, function( _, arg ) {
- var index;
- while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
- list.splice( index, 1 );
-
- // Handle firing indexes
- if ( index <= firingIndex ) {
- firingIndex--;
- }
- }
- } );
- return this;
- },
-
- // Check if a given callback is in the list.
- // If no argument is given, return whether or not list has callbacks attached.
- has: function( fn ) {
- return fn ?
- jQuery.inArray( fn, list ) > -1 :
- list.length > 0;
- },
-
- // Remove all callbacks from the list
- empty: function() {
- if ( list ) {
- list = [];
- }
- return this;
- },
-
- // Disable .fire and .add
- // Abort any current/pending executions
- // Clear all callbacks and values
- disable: function() {
- locked = queue = [];
- list = memory = "";
- return this;
- },
- disabled: function() {
- return !list;
- },
-
- // Disable .fire
- // Also disable .add unless we have memory (since it would have no effect)
- // Abort any pending executions
- lock: function() {
- locked = queue = [];
- if ( !memory ) {
- list = memory = "";
- }
- return this;
- },
- locked: function() {
- return !!locked;
- },
-
- // Call all callbacks with the given context and arguments
- fireWith: function( context, args ) {
- if ( !locked ) {
- args = args || [];
- args = [ context, args.slice ? args.slice() : args ];
- queue.push( args );
- if ( !firing ) {
- fire();
- }
- }
- return this;
- },
-
- // Call all the callbacks with the given arguments
- fire: function() {
- self.fireWith( this, arguments );
- return this;
- },
-
- // To know if the callbacks have already been called at least once
- fired: function() {
- return !!fired;
- }
- };
-
- return self;
-};
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/core.js b/libs/bower_components/jquery/src/core.js
deleted file mode 100644
index 713c1a3cd0..0000000000
--- a/libs/bower_components/jquery/src/core.js
+++ /dev/null
@@ -1,494 +0,0 @@
-define( [
- "./var/arr",
- "./var/document",
- "./var/slice",
- "./var/concat",
- "./var/push",
- "./var/indexOf",
- "./var/class2type",
- "./var/toString",
- "./var/hasOwn",
- "./var/support"
-], function( arr, document, slice, concat, push, indexOf, class2type, toString, hasOwn, support ) {
-
-var
- version = "@VERSION",
-
- // Define a local copy of jQuery
- jQuery = function( selector, context ) {
-
- // The jQuery object is actually just the init constructor 'enhanced'
- // Need init if jQuery is called (just allow error to be thrown if not included)
- return new jQuery.fn.init( selector, context );
- },
-
- // Support: Android<4.1
- // Make sure we trim BOM and NBSP
- rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
-
- // Matches dashed string for camelizing
- rmsPrefix = /^-ms-/,
- rdashAlpha = /-([\da-z])/gi,
-
- // Used by jQuery.camelCase as callback to replace()
- fcamelCase = function( all, letter ) {
- return letter.toUpperCase();
- };
-
-jQuery.fn = jQuery.prototype = {
-
- // The current version of jQuery being used
- jquery: version,
-
- constructor: jQuery,
-
- // Start with an empty selector
- selector: "",
-
- // The default length of a jQuery object is 0
- length: 0,
-
- toArray: function() {
- return slice.call( this );
- },
-
- // Get the Nth element in the matched element set OR
- // Get the whole matched element set as a clean array
- get: function( num ) {
- return num != null ?
-
- // Return just the one element from the set
- ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
-
- // Return all the elements in a clean array
- slice.call( this );
- },
-
- // Take an array of elements and push it onto the stack
- // (returning the new matched element set)
- pushStack: function( elems ) {
-
- // Build a new jQuery matched element set
- var ret = jQuery.merge( this.constructor(), elems );
-
- // Add the old object onto the stack (as a reference)
- ret.prevObject = this;
- ret.context = this.context;
-
- // Return the newly-formed element set
- return ret;
- },
-
- // Execute a callback for every element in the matched set.
- each: function( callback ) {
- return jQuery.each( this, callback );
- },
-
- map: function( callback ) {
- return this.pushStack( jQuery.map( this, function( elem, i ) {
- return callback.call( elem, i, elem );
- } ) );
- },
-
- slice: function() {
- return this.pushStack( slice.apply( this, arguments ) );
- },
-
- first: function() {
- return this.eq( 0 );
- },
-
- last: function() {
- return this.eq( -1 );
- },
-
- eq: function( i ) {
- var len = this.length,
- j = +i + ( i < 0 ? len : 0 );
- return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
- },
-
- end: function() {
- return this.prevObject || this.constructor();
- },
-
- // For internal use only.
- // Behaves like an Array's method, not like a jQuery method.
- push: push,
- sort: arr.sort,
- splice: arr.splice
-};
-
-jQuery.extend = jQuery.fn.extend = function() {
- var options, name, src, copy, copyIsArray, clone,
- target = arguments[ 0 ] || {},
- i = 1,
- length = arguments.length,
- deep = false;
-
- // Handle a deep copy situation
- if ( typeof target === "boolean" ) {
- deep = target;
-
- // Skip the boolean and the target
- target = arguments[ i ] || {};
- i++;
- }
-
- // Handle case when target is a string or something (possible in deep copy)
- if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
- target = {};
- }
-
- // Extend jQuery itself if only one argument is passed
- if ( i === length ) {
- target = this;
- i--;
- }
-
- for ( ; i < length; i++ ) {
-
- // Only deal with non-null/undefined values
- if ( ( options = arguments[ i ] ) != null ) {
-
- // Extend the base object
- for ( name in options ) {
- src = target[ name ];
- copy = options[ name ];
-
- // Prevent never-ending loop
- if ( target === copy ) {
- continue;
- }
-
- // Recurse if we're merging plain objects or arrays
- if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
- ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
-
- if ( copyIsArray ) {
- copyIsArray = false;
- clone = src && jQuery.isArray( src ) ? src : [];
-
- } else {
- clone = src && jQuery.isPlainObject( src ) ? src : {};
- }
-
- // Never move original objects, clone them
- target[ name ] = jQuery.extend( deep, clone, copy );
-
- // Don't bring in undefined values
- } else if ( copy !== undefined ) {
- target[ name ] = copy;
- }
- }
- }
- }
-
- // Return the modified object
- return target;
-};
-
-jQuery.extend( {
-
- // Unique for each copy of jQuery on the page
- expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
-
- // Assume jQuery is ready without the ready module
- isReady: true,
-
- error: function( msg ) {
- throw new Error( msg );
- },
-
- noop: function() {},
-
- isFunction: function( obj ) {
- return jQuery.type( obj ) === "function";
- },
-
- isArray: Array.isArray,
-
- isWindow: function( obj ) {
- return obj != null && obj === obj.window;
- },
-
- isNumeric: function( obj ) {
-
- // parseFloat NaNs numeric-cast false positives (null|true|false|"")
- // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
- // subtraction forces infinities to NaN
- // adding 1 corrects loss of precision from parseFloat (#15100)
- var realStringObj = obj && obj.toString();
- return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
- },
-
- isPlainObject: function( obj ) {
- var key;
-
- // Not plain objects:
- // - Any object or value whose internal [[Class]] property is not "[object Object]"
- // - DOM nodes
- // - window
- if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
- return false;
- }
-
- // Not own constructor property must be Object
- if ( obj.constructor &&
- !hasOwn.call( obj, "constructor" ) &&
- !hasOwn.call( obj.constructor.prototype || {}, "isPrototypeOf" ) ) {
- return false;
- }
-
- // Own properties are enumerated firstly, so to speed up,
- // if last one is own, then all properties are own
- for ( key in obj ) {}
-
- return key === undefined || hasOwn.call( obj, key );
- },
-
- isEmptyObject: function( obj ) {
- var name;
- for ( name in obj ) {
- return false;
- }
- return true;
- },
-
- type: function( obj ) {
- if ( obj == null ) {
- return obj + "";
- }
-
- // Support: Android<4.0, iOS<6 (functionish RegExp)
- return typeof obj === "object" || typeof obj === "function" ?
- class2type[ toString.call( obj ) ] || "object" :
- typeof obj;
- },
-
- // Evaluates a script in a global context
- globalEval: function( code ) {
- var script,
- indirect = eval;
-
- code = jQuery.trim( code );
-
- if ( code ) {
-
- // If the code includes a valid, prologue position
- // strict mode pragma, execute code by injecting a
- // script tag into the document.
- if ( code.indexOf( "use strict" ) === 1 ) {
- script = document.createElement( "script" );
- script.text = code;
- document.head.appendChild( script ).parentNode.removeChild( script );
- } else {
-
- // Otherwise, avoid the DOM node creation, insertion
- // and removal by using an indirect global eval
-
- indirect( code );
- }
- }
- },
-
- // Convert dashed to camelCase; used by the css and data modules
- // Support: IE9-11+
- // Microsoft forgot to hump their vendor prefix (#9572)
- camelCase: function( string ) {
- return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
- },
-
- nodeName: function( elem, name ) {
- return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
- },
-
- each: function( obj, callback ) {
- var length, i = 0;
-
- if ( isArrayLike( obj ) ) {
- length = obj.length;
- for ( ; i < length; i++ ) {
- if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
- break;
- }
- }
- } else {
- for ( i in obj ) {
- if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
- break;
- }
- }
- }
-
- return obj;
- },
-
- // Support: Android<4.1
- trim: function( text ) {
- return text == null ?
- "" :
- ( text + "" ).replace( rtrim, "" );
- },
-
- // results is for internal usage only
- makeArray: function( arr, results ) {
- var ret = results || [];
-
- if ( arr != null ) {
- if ( isArrayLike( Object( arr ) ) ) {
- jQuery.merge( ret,
- typeof arr === "string" ?
- [ arr ] : arr
- );
- } else {
- push.call( ret, arr );
- }
- }
-
- return ret;
- },
-
- inArray: function( elem, arr, i ) {
- return arr == null ? -1 : indexOf.call( arr, elem, i );
- },
-
- merge: function( first, second ) {
- var len = +second.length,
- j = 0,
- i = first.length;
-
- for ( ; j < len; j++ ) {
- first[ i++ ] = second[ j ];
- }
-
- first.length = i;
-
- return first;
- },
-
- grep: function( elems, callback, invert ) {
- var callbackInverse,
- matches = [],
- i = 0,
- length = elems.length,
- callbackExpect = !invert;
-
- // Go through the array, only saving the items
- // that pass the validator function
- for ( ; i < length; i++ ) {
- callbackInverse = !callback( elems[ i ], i );
- if ( callbackInverse !== callbackExpect ) {
- matches.push( elems[ i ] );
- }
- }
-
- return matches;
- },
-
- // arg is for internal usage only
- map: function( elems, callback, arg ) {
- var length, value,
- i = 0,
- ret = [];
-
- // Go through the array, translating each of the items to their new values
- if ( isArrayLike( elems ) ) {
- length = elems.length;
- for ( ; i < length; i++ ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret.push( value );
- }
- }
-
- // Go through every key on the object,
- } else {
- for ( i in elems ) {
- value = callback( elems[ i ], i, arg );
-
- if ( value != null ) {
- ret.push( value );
- }
- }
- }
-
- // Flatten any nested arrays
- return concat.apply( [], ret );
- },
-
- // A global GUID counter for objects
- guid: 1,
-
- // Bind a function to a context, optionally partially applying any
- // arguments.
- proxy: function( fn, context ) {
- var tmp, args, proxy;
-
- if ( typeof context === "string" ) {
- tmp = fn[ context ];
- context = fn;
- fn = tmp;
- }
-
- // Quick check to determine if target is callable, in the spec
- // this throws a TypeError, but we will just return undefined.
- if ( !jQuery.isFunction( fn ) ) {
- return undefined;
- }
-
- // Simulated bind
- args = slice.call( arguments, 2 );
- proxy = function() {
- return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
- };
-
- // Set the guid of unique handler to the same of original handler, so it can be removed
- proxy.guid = fn.guid = fn.guid || jQuery.guid++;
-
- return proxy;
- },
-
- now: Date.now,
-
- // jQuery.support is not used in Core but other projects attach their
- // properties to it so it needs to exist.
- support: support
-} );
-
-// JSHint would error on this code due to the Symbol not being defined in ES5.
-// Defining this global in .jshintrc would create a danger of using the global
-// unguarded in another place, it seems safer to just disable JSHint for these
-// three lines.
-/* jshint ignore: start */
-if ( typeof Symbol === "function" ) {
- jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
-}
-/* jshint ignore: end */
-
-// Populate the class2type map
-jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
-function( i, name ) {
- class2type[ "[object " + name + "]" ] = name.toLowerCase();
-} );
-
-function isArrayLike( obj ) {
-
- // Support: iOS 8.2 (not reproducible in simulator)
- // `in` check used to prevent JIT error (gh-2145)
- // hasOwn isn't used here due to false negatives
- // regarding Nodelist length in IE
- var length = !!obj && "length" in obj && obj.length,
- type = jQuery.type( obj );
-
- if ( type === "function" || jQuery.isWindow( obj ) ) {
- return false;
- }
-
- return type === "array" || length === 0 ||
- typeof length === "number" && length > 0 && ( length - 1 ) in obj;
-}
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/core/DOMEval.js b/libs/bower_components/jquery/src/core/DOMEval.js
deleted file mode 100644
index 222b0ca2a2..0000000000
--- a/libs/bower_components/jquery/src/core/DOMEval.js
+++ /dev/null
@@ -1,14 +0,0 @@
-define( [
- "../var/document"
-], function( document ) {
- function DOMEval( code, doc ) {
- doc = doc || document;
-
- var script = doc.createElement( "script" );
-
- script.text = code;
- doc.head.appendChild( script ).parentNode.removeChild( script );
- }
-
- return DOMEval;
-} );
diff --git a/libs/bower_components/jquery/src/core/access.js b/libs/bower_components/jquery/src/core/access.js
deleted file mode 100644
index 19f79efa42..0000000000
--- a/libs/bower_components/jquery/src/core/access.js
+++ /dev/null
@@ -1,65 +0,0 @@
-define( [
- "../core"
-], function( jQuery ) {
-
-// Multifunctional method to get and set values of a collection
-// The value/s can optionally be executed if it's a function
-var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
- var i = 0,
- len = elems.length,
- bulk = key == null;
-
- // Sets many values
- if ( jQuery.type( key ) === "object" ) {
- chainable = true;
- for ( i in key ) {
- access( elems, fn, i, key[ i ], true, emptyGet, raw );
- }
-
- // Sets one value
- } else if ( value !== undefined ) {
- chainable = true;
-
- if ( !jQuery.isFunction( value ) ) {
- raw = true;
- }
-
- if ( bulk ) {
-
- // Bulk operations run against the entire set
- if ( raw ) {
- fn.call( elems, value );
- fn = null;
-
- // ...except when executing function values
- } else {
- bulk = fn;
- fn = function( elem, key, value ) {
- return bulk.call( jQuery( elem ), value );
- };
- }
- }
-
- if ( fn ) {
- for ( ; i < len; i++ ) {
- fn(
- elems[ i ], key, raw ?
- value :
- value.call( elems[ i ], i, fn( elems[ i ], key ) )
- );
- }
- }
- }
-
- return chainable ?
- elems :
-
- // Gets
- bulk ?
- fn.call( elems ) :
- len ? fn( elems[ 0 ], key ) : emptyGet;
-};
-
-return access;
-
-} );
diff --git a/libs/bower_components/jquery/src/core/init.js b/libs/bower_components/jquery/src/core/init.js
deleted file mode 100644
index c2b6c94d78..0000000000
--- a/libs/bower_components/jquery/src/core/init.js
+++ /dev/null
@@ -1,134 +0,0 @@
-// Initialize a jQuery object
-define( [
- "../core",
- "../var/document",
- "./var/rsingleTag",
- "../traversing/findFilter"
-], function( jQuery, document, rsingleTag ) {
-
-// A central reference to the root jQuery(document)
-var rootjQuery,
-
- // A simple way to check for HTML strings
- // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
- // Strict HTML recognition (#11290: must start with <)
- rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
-
- init = jQuery.fn.init = function( selector, context, root ) {
- var match, elem;
-
- // HANDLE: $(""), $(null), $(undefined), $(false)
- if ( !selector ) {
- return this;
- }
-
- // Method init() accepts an alternate rootjQuery
- // so migrate can support jQuery.sub (gh-2101)
- root = root || rootjQuery;
-
- // Handle HTML strings
- if ( typeof selector === "string" ) {
- if ( selector[ 0 ] === "<" &&
- selector[ selector.length - 1 ] === ">" &&
- selector.length >= 3 ) {
-
- // Assume that strings that start and end with <> are HTML and skip the regex check
- match = [ null, selector, null ];
-
- } else {
- match = rquickExpr.exec( selector );
- }
-
- // Match html or make sure no context is specified for #id
- if ( match && ( match[ 1 ] || !context ) ) {
-
- // HANDLE: $(html) -> $(array)
- if ( match[ 1 ] ) {
- context = context instanceof jQuery ? context[ 0 ] : context;
-
- // Option to run scripts is true for back-compat
- // Intentionally let the error be thrown if parseHTML is not present
- jQuery.merge( this, jQuery.parseHTML(
- match[ 1 ],
- context && context.nodeType ? context.ownerDocument || context : document,
- true
- ) );
-
- // HANDLE: $(html, props)
- if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
- for ( match in context ) {
-
- // Properties of context are called as methods if possible
- if ( jQuery.isFunction( this[ match ] ) ) {
- this[ match ]( context[ match ] );
-
- // ...and otherwise set as attributes
- } else {
- this.attr( match, context[ match ] );
- }
- }
- }
-
- return this;
-
- // HANDLE: $(#id)
- } else {
- elem = document.getElementById( match[ 2 ] );
-
- // Support: Blackberry 4.6
- // gEBID returns nodes no longer in the document (#6963)
- if ( elem && elem.parentNode ) {
-
- // Inject the element directly into the jQuery object
- this.length = 1;
- this[ 0 ] = elem;
- }
-
- this.context = document;
- this.selector = selector;
- return this;
- }
-
- // HANDLE: $(expr, $(...))
- } else if ( !context || context.jquery ) {
- return ( context || root ).find( selector );
-
- // HANDLE: $(expr, context)
- // (which is just equivalent to: $(context).find(expr)
- } else {
- return this.constructor( context ).find( selector );
- }
-
- // HANDLE: $(DOMElement)
- } else if ( selector.nodeType ) {
- this.context = this[ 0 ] = selector;
- this.length = 1;
- return this;
-
- // HANDLE: $(function)
- // Shortcut for document ready
- } else if ( jQuery.isFunction( selector ) ) {
- return root.ready !== undefined ?
- root.ready( selector ) :
-
- // Execute immediately if ready is not present
- selector( jQuery );
- }
-
- if ( selector.selector !== undefined ) {
- this.selector = selector.selector;
- this.context = selector.context;
- }
-
- return jQuery.makeArray( selector, this );
- };
-
-// Give the init function the jQuery prototype for later instantiation
-init.prototype = jQuery.fn;
-
-// Initialize central reference
-rootjQuery = jQuery( document );
-
-return init;
-
-} );
diff --git a/libs/bower_components/jquery/src/core/parseHTML.js b/libs/bower_components/jquery/src/core/parseHTML.js
deleted file mode 100644
index 3524abd632..0000000000
--- a/libs/bower_components/jquery/src/core/parseHTML.js
+++ /dev/null
@@ -1,41 +0,0 @@
-define( [
- "../core",
- "../var/document",
- "./var/rsingleTag",
- "../manipulation/buildFragment"
-], function( jQuery, document, rsingleTag, buildFragment ) {
-
-// Argument "data" should be string of html
-// context (optional): If specified, the fragment will be created in this context,
-// defaults to document
-// keepScripts (optional): If true, will include scripts passed in the html string
-jQuery.parseHTML = function( data, context, keepScripts ) {
- if ( !data || typeof data !== "string" ) {
- return null;
- }
- if ( typeof context === "boolean" ) {
- keepScripts = context;
- context = false;
- }
- context = context || document;
-
- var parsed = rsingleTag.exec( data ),
- scripts = !keepScripts && [];
-
- // Single tag
- if ( parsed ) {
- return [ context.createElement( parsed[ 1 ] ) ];
- }
-
- parsed = buildFragment( [ data ], context, scripts );
-
- if ( scripts && scripts.length ) {
- jQuery( scripts ).remove();
- }
-
- return jQuery.merge( [], parsed.childNodes );
-};
-
-return jQuery.parseHTML;
-
-} );
diff --git a/libs/bower_components/jquery/src/core/ready.js b/libs/bower_components/jquery/src/core/ready.js
deleted file mode 100644
index 7d93e67687..0000000000
--- a/libs/bower_components/jquery/src/core/ready.js
+++ /dev/null
@@ -1,103 +0,0 @@
-define( [
- "../core",
- "../var/document",
- "../core/init",
- "../deferred"
-], function( jQuery, document ) {
-
-// The deferred used on DOM ready
-var readyList;
-
-jQuery.fn.ready = function( fn ) {
-
- // Add the callback
- jQuery.ready.promise().done( fn );
-
- return this;
-};
-
-jQuery.extend( {
-
- // Is the DOM ready to be used? Set to true once it occurs.
- isReady: false,
-
- // A counter to track how many items to wait for before
- // the ready event fires. See #6781
- readyWait: 1,
-
- // Hold (or release) the ready event
- holdReady: function( hold ) {
- if ( hold ) {
- jQuery.readyWait++;
- } else {
- jQuery.ready( true );
- }
- },
-
- // Handle when the DOM is ready
- ready: function( wait ) {
-
- // Abort if there are pending holds or we're already ready
- if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
- return;
- }
-
- // Remember that the DOM is ready
- jQuery.isReady = true;
-
- // If a normal DOM Ready event fired, decrement, and wait if need be
- if ( wait !== true && --jQuery.readyWait > 0 ) {
- return;
- }
-
- // If there are functions bound, to execute
- readyList.resolveWith( document, [ jQuery ] );
-
- // Trigger any bound ready events
- if ( jQuery.fn.triggerHandler ) {
- jQuery( document ).triggerHandler( "ready" );
- jQuery( document ).off( "ready" );
- }
- }
-} );
-
-/**
- * The ready event handler and self cleanup method
- */
-function completed() {
- document.removeEventListener( "DOMContentLoaded", completed );
- window.removeEventListener( "load", completed );
- jQuery.ready();
-}
-
-jQuery.ready.promise = function( obj ) {
- if ( !readyList ) {
-
- readyList = jQuery.Deferred();
-
- // Catch cases where $(document).ready() is called
- // after the browser event has already occurred.
- // Support: IE9-10 only
- // Older IE sometimes signals "interactive" too soon
- if ( document.readyState === "complete" ||
- ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
-
- // Handle it asynchronously to allow scripts the opportunity to delay ready
- window.setTimeout( jQuery.ready );
-
- } else {
-
- // Use the handy event callback
- document.addEventListener( "DOMContentLoaded", completed );
-
- // A fallback to window.onload, that will always work
- window.addEventListener( "load", completed );
- }
- }
- return readyList.promise( obj );
-};
-
-// Kick off the DOM ready check even if the user does not
-jQuery.ready.promise();
-
-} );
diff --git a/libs/bower_components/jquery/src/core/support.js b/libs/bower_components/jquery/src/core/support.js
deleted file mode 100644
index 0609a700b6..0000000000
--- a/libs/bower_components/jquery/src/core/support.js
+++ /dev/null
@@ -1,18 +0,0 @@
-define( [
- "../var/document",
- "../var/support"
-], function( document, support ) {
-
-// Support: Safari 8+
-// In Safari 8 documents created via document.implementation.createHTMLDocument
-// collapse sibling forms: the second one becomes a child of the first one.
-// Because of that, this security measure has to be disabled in Safari 8.
-// https://bugs.webkit.org/show_bug.cgi?id=137337
-support.createHTMLDocument = ( function() {
- var body = document.implementation.createHTMLDocument( "" ).body;
- body.innerHTML = "<form></form><form></form>";
- return body.childNodes.length === 2;
-} )();
-
-return support;
-} );
diff --git a/libs/bower_components/jquery/src/core/var/rsingleTag.js b/libs/bower_components/jquery/src/core/var/rsingleTag.js
deleted file mode 100644
index 1a55ee39d2..0000000000
--- a/libs/bower_components/jquery/src/core/var/rsingleTag.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( function() {
-
- // Match a standalone tag
- return ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ );
-} );
diff --git a/libs/bower_components/jquery/src/css.js b/libs/bower_components/jquery/src/css.js
deleted file mode 100644
index ec55a24115..0000000000
--- a/libs/bower_components/jquery/src/css.js
+++ /dev/null
@@ -1,515 +0,0 @@
-define( [
- "./core",
- "./var/pnum",
- "./core/access",
- "./css/var/rmargin",
- "./var/document",
- "./var/rcssNum",
- "./css/var/rnumnonpx",
- "./css/var/cssExpand",
- "./css/var/isHidden",
- "./css/var/getStyles",
- "./css/var/swap",
- "./css/curCSS",
- "./css/adjustCSS",
- "./css/defaultDisplay",
- "./css/addGetHookIf",
- "./css/support",
- "./data/var/dataPriv",
-
- "./core/init",
- "./core/ready",
- "./selector" // contains
-], function( jQuery, pnum, access, rmargin, document, rcssNum, rnumnonpx, cssExpand, isHidden,
- getStyles, swap, curCSS, adjustCSS, defaultDisplay, addGetHookIf, support, dataPriv ) {
-
-var
-
- // Swappable if display is none or starts with table
- // except "table", "table-cell", or "table-caption"
- // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
- rdisplayswap = /^(none|table(?!-c[ea]).+)/,
-
- cssShow = { position: "absolute", visibility: "hidden", display: "block" },
- cssNormalTransform = {
- letterSpacing: "0",
- fontWeight: "400"
- },
-
- cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
- emptyStyle = document.createElement( "div" ).style;
-
-// Return a css property mapped to a potentially vendor prefixed property
-function vendorPropName( name ) {
-
- // Shortcut for names that are not vendor prefixed
- if ( name in emptyStyle ) {
- return name;
- }
-
- // Check for vendor prefixed names
- var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
- i = cssPrefixes.length;
-
- while ( i-- ) {
- name = cssPrefixes[ i ] + capName;
- if ( name in emptyStyle ) {
- return name;
- }
- }
-}
-
-function setPositiveNumber( elem, value, subtract ) {
-
- // Any relative (+/-) values have already been
- // normalized at this point
- var matches = rcssNum.exec( value );
- return matches ?
-
- // Guard against undefined "subtract", e.g., when used as in cssHooks
- Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
- value;
-}
-
-function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
- var i = extra === ( isBorderBox ? "border" : "content" ) ?
-
- // If we already have the right measurement, avoid augmentation
- 4 :
-
- // Otherwise initialize for horizontal or vertical properties
- name === "width" ? 1 : 0,
-
- val = 0;
-
- for ( ; i < 4; i += 2 ) {
-
- // Both box models exclude margin, so add it if we want it
- if ( extra === "margin" ) {
- val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
- }
-
- if ( isBorderBox ) {
-
- // border-box includes padding, so remove it if we want content
- if ( extra === "content" ) {
- val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
- }
-
- // At this point, extra isn't border nor margin, so remove border
- if ( extra !== "margin" ) {
- val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
- }
- } else {
-
- // At this point, extra isn't content, so add padding
- val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
-
- // At this point, extra isn't content nor padding, so add border
- if ( extra !== "padding" ) {
- val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
- }
- }
- }
-
- return val;
-}
-
-function getWidthOrHeight( elem, name, extra ) {
-
- // Start with offset property, which is equivalent to the border-box value
- var valueIsBorderBox = true,
- val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
- styles = getStyles( elem ),
- isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
-
- // Support: IE11 only
- // In IE 11 fullscreen elements inside of an iframe have
- // 100x too small dimensions (gh-1764).
- if ( document.msFullscreenElement && window.top !== window ) {
-
- // Support: IE11 only
- // Running getBoundingClientRect on a disconnected node
- // in IE throws an error.
- if ( elem.getClientRects().length ) {
- val = Math.round( elem.getBoundingClientRect()[ name ] * 100 );
- }
- }
-
- // Some non-html elements return undefined for offsetWidth, so check for null/undefined
- // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
- // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
- if ( val <= 0 || val == null ) {
-
- // Fall back to computed then uncomputed css if necessary
- val = curCSS( elem, name, styles );
- if ( val < 0 || val == null ) {
- val = elem.style[ name ];
- }
-
- // Computed unit is not pixels. Stop here and return.
- if ( rnumnonpx.test( val ) ) {
- return val;
- }
-
- // Check for style in case a browser which returns unreliable values
- // for getComputedStyle silently falls back to the reliable elem.style
- valueIsBorderBox = isBorderBox &&
- ( support.boxSizingReliable() || val === elem.style[ name ] );
-
- // Normalize "", auto, and prepare for extra
- val = parseFloat( val ) || 0;
- }
-
- // Use the active box-sizing model to add/subtract irrelevant styles
- return ( val +
- augmentWidthOrHeight(
- elem,
- name,
- extra || ( isBorderBox ? "border" : "content" ),
- valueIsBorderBox,
- styles
- )
- ) + "px";
-}
-
-function showHide( elements, show ) {
- var display, elem, hidden,
- values = [],
- index = 0,
- length = elements.length;
-
- for ( ; index < length; index++ ) {
- elem = elements[ index ];
- if ( !elem.style ) {
- continue;
- }
-
- values[ index ] = dataPriv.get( elem, "olddisplay" );
- display = elem.style.display;
- if ( show ) {
-
- // Reset the inline display of this element to learn if it is
- // being hidden by cascaded rules or not
- if ( !values[ index ] && display === "none" ) {
- elem.style.display = "";
- }
-
- // Set elements which have been overridden with display: none
- // in a stylesheet to whatever the default browser style is
- // for such an element
- if ( elem.style.display === "" && isHidden( elem ) ) {
- values[ index ] = dataPriv.access(
- elem,
- "olddisplay",
- defaultDisplay( elem.nodeName )
- );
- }
- } else {
- hidden = isHidden( elem );
-
- if ( display !== "none" || !hidden ) {
- dataPriv.set(
- elem,
- "olddisplay",
- hidden ? display : jQuery.css( elem, "display" )
- );
- }
- }
- }
-
- // Set the display of most of the elements in a second loop
- // to avoid the constant reflow
- for ( index = 0; index < length; index++ ) {
- elem = elements[ index ];
- if ( !elem.style ) {
- continue;
- }
- if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
- elem.style.display = show ? values[ index ] || "" : "none";
- }
- }
-
- return elements;
-}
-
-jQuery.extend( {
-
- // Add in style property hooks for overriding the default
- // behavior of getting and setting a style property
- cssHooks: {
- opacity: {
- get: function( elem, computed ) {
- if ( computed ) {
-
- // We should always get a number back from opacity
- var ret = curCSS( elem, "opacity" );
- return ret === "" ? "1" : ret;
- }
- }
- }
- },
-
- // Don't automatically add "px" to these possibly-unitless properties
- cssNumber: {
- "animationIterationCount": true,
- "columnCount": true,
- "fillOpacity": true,
- "flexGrow": true,
- "flexShrink": true,
- "fontWeight": true,
- "lineHeight": true,
- "opacity": true,
- "order": true,
- "orphans": true,
- "widows": true,
- "zIndex": true,
- "zoom": true
- },
-
- // Add in properties whose names you wish to fix before
- // setting or getting the value
- cssProps: {
- "float": "cssFloat"
- },
-
- // Get and set the style property on a DOM Node
- style: function( elem, name, value, extra ) {
-
- // Don't set styles on text and comment nodes
- if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
- return;
- }
-
- // Make sure that we're working with the right name
- var ret, type, hooks,
- origName = jQuery.camelCase( name ),
- style = elem.style;
-
- name = jQuery.cssProps[ origName ] ||
- ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
-
- // Gets hook for the prefixed version, then unprefixed version
- hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
-
- // Check if we're setting a value
- if ( value !== undefined ) {
- type = typeof value;
-
- // Convert "+=" or "-=" to relative numbers (#7345)
- if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
- value = adjustCSS( elem, name, ret );
-
- // Fixes bug #9237
- type = "number";
- }
-
- // Make sure that null and NaN values aren't set (#7116)
- if ( value == null || value !== value ) {
- return;
- }
-
- // If a number was passed in, add the unit (except for certain CSS properties)
- if ( type === "number" ) {
- value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
- }
-
- // Support: IE9-11+
- // background-* props affect original clone's values
- if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
- style[ name ] = "inherit";
- }
-
- // If a hook was provided, use that value, otherwise just set the specified value
- if ( !hooks || !( "set" in hooks ) ||
- ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
-
- style[ name ] = value;
- }
-
- } else {
-
- // If a hook was provided get the non-computed value from there
- if ( hooks && "get" in hooks &&
- ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
-
- return ret;
- }
-
- // Otherwise just get the value from the style object
- return style[ name ];
- }
- },
-
- css: function( elem, name, extra, styles ) {
- var val, num, hooks,
- origName = jQuery.camelCase( name );
-
- // Make sure that we're working with the right name
- name = jQuery.cssProps[ origName ] ||
- ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
-
- // Try prefixed name followed by the unprefixed name
- hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
-
- // If a hook was provided get the computed value from there
- if ( hooks && "get" in hooks ) {
- val = hooks.get( elem, true, extra );
- }
-
- // Otherwise, if a way to get the computed value exists, use that
- if ( val === undefined ) {
- val = curCSS( elem, name, styles );
- }
-
- // Convert "normal" to computed value
- if ( val === "normal" && name in cssNormalTransform ) {
- val = cssNormalTransform[ name ];
- }
-
- // Make numeric if forced or a qualifier was provided and val looks numeric
- if ( extra === "" || extra ) {
- num = parseFloat( val );
- return extra === true || isFinite( num ) ? num || 0 : val;
- }
- return val;
- }
-} );
-
-jQuery.each( [ "height", "width" ], function( i, name ) {
- jQuery.cssHooks[ name ] = {
- get: function( elem, computed, extra ) {
- if ( computed ) {
-
- // Certain elements can have dimension info if we invisibly show them
- // but it must have a current display style that would benefit
- return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
- elem.offsetWidth === 0 ?
- swap( elem, cssShow, function() {
- return getWidthOrHeight( elem, name, extra );
- } ) :
- getWidthOrHeight( elem, name, extra );
- }
- },
-
- set: function( elem, value, extra ) {
- var matches,
- styles = extra && getStyles( elem ),
- subtract = extra && augmentWidthOrHeight(
- elem,
- name,
- extra,
- jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
- styles
- );
-
- // Convert to pixels if value adjustment is needed
- if ( subtract && ( matches = rcssNum.exec( value ) ) &&
- ( matches[ 3 ] || "px" ) !== "px" ) {
-
- elem.style[ name ] = value;
- value = jQuery.css( elem, name );
- }
-
- return setPositiveNumber( elem, value, subtract );
- }
- };
-} );
-
-jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
- function( elem, computed ) {
- if ( computed ) {
- return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
- elem.getBoundingClientRect().left -
- swap( elem, { marginLeft: 0 }, function() {
- return elem.getBoundingClientRect().left;
- } )
- ) + "px";
- }
- }
-);
-
-// Support: Android 2.3
-jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
- function( elem, computed ) {
- if ( computed ) {
- return swap( elem, { "display": "inline-block" },
- curCSS, [ elem, "marginRight" ] );
- }
- }
-);
-
-// These hooks are used by animate to expand properties
-jQuery.each( {
- margin: "",
- padding: "",
- border: "Width"
-}, function( prefix, suffix ) {
- jQuery.cssHooks[ prefix + suffix ] = {
- expand: function( value ) {
- var i = 0,
- expanded = {},
-
- // Assumes a single number if not a string
- parts = typeof value === "string" ? value.split( " " ) : [ value ];
-
- for ( ; i < 4; i++ ) {
- expanded[ prefix + cssExpand[ i ] + suffix ] =
- parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
- }
-
- return expanded;
- }
- };
-
- if ( !rmargin.test( prefix ) ) {
- jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
- }
-} );
-
-jQuery.fn.extend( {
- css: function( name, value ) {
- return access( this, function( elem, name, value ) {
- var styles, len,
- map = {},
- i = 0;
-
- if ( jQuery.isArray( name ) ) {
- styles = getStyles( elem );
- len = name.length;
-
- for ( ; i < len; i++ ) {
- map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
- }
-
- return map;
- }
-
- return value !== undefined ?
- jQuery.style( elem, name, value ) :
- jQuery.css( elem, name );
- }, name, value, arguments.length > 1 );
- },
- show: function() {
- return showHide( this, true );
- },
- hide: function() {
- return showHide( this );
- },
- toggle: function( state ) {
- if ( typeof state === "boolean" ) {
- return state ? this.show() : this.hide();
- }
-
- return this.each( function() {
- if ( isHidden( this ) ) {
- jQuery( this ).show();
- } else {
- jQuery( this ).hide();
- }
- } );
- }
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/css/addGetHookIf.js b/libs/bower_components/jquery/src/css/addGetHookIf.js
deleted file mode 100644
index 9cd21f6833..0000000000
--- a/libs/bower_components/jquery/src/css/addGetHookIf.js
+++ /dev/null
@@ -1,24 +0,0 @@
-define( function() {
-
-function addGetHookIf( conditionFn, hookFn ) {
-
- // Define the hook, we'll check on the first run if it's really needed.
- return {
- get: function() {
- if ( conditionFn() ) {
-
- // Hook not needed (or it's not possible to use it due
- // to missing dependency), remove it.
- delete this.get;
- return;
- }
-
- // Hook needed; redefine it so that the support test is not executed again.
- return ( this.get = hookFn ).apply( this, arguments );
- }
- };
-}
-
-return addGetHookIf;
-
-} );
diff --git a/libs/bower_components/jquery/src/css/adjustCSS.js b/libs/bower_components/jquery/src/css/adjustCSS.js
deleted file mode 100644
index 48fcfec05e..0000000000
--- a/libs/bower_components/jquery/src/css/adjustCSS.js
+++ /dev/null
@@ -1,65 +0,0 @@
-define( [
- "../core",
- "../var/rcssNum"
-], function( jQuery, rcssNum ) {
-
-function adjustCSS( elem, prop, valueParts, tween ) {
- var adjusted,
- scale = 1,
- maxIterations = 20,
- currentValue = tween ?
- function() { return tween.cur(); } :
- function() { return jQuery.css( elem, prop, "" ); },
- initial = currentValue(),
- unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
-
- // Starting value computation is required for potential unit mismatches
- initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
- rcssNum.exec( jQuery.css( elem, prop ) );
-
- if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
-
- // Trust units reported by jQuery.css
- unit = unit || initialInUnit[ 3 ];
-
- // Make sure we update the tween properties later on
- valueParts = valueParts || [];
-
- // Iteratively approximate from a nonzero starting point
- initialInUnit = +initial || 1;
-
- do {
-
- // If previous iteration zeroed out, double until we get *something*.
- // Use string for doubling so we don't accidentally see scale as unchanged below
- scale = scale || ".5";
-
- // Adjust and apply
- initialInUnit = initialInUnit / scale;
- jQuery.style( elem, prop, initialInUnit + unit );
-
- // Update scale, tolerating zero or NaN from tween.cur()
- // Break the loop if scale is unchanged or perfect, or if we've just had enough.
- } while (
- scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
- );
- }
-
- if ( valueParts ) {
- initialInUnit = +initialInUnit || +initial || 0;
-
- // Apply relative offset (+=/-=) if specified
- adjusted = valueParts[ 1 ] ?
- initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
- +valueParts[ 2 ];
- if ( tween ) {
- tween.unit = unit;
- tween.start = initialInUnit;
- tween.end = adjusted;
- }
- }
- return adjusted;
-}
-
-return adjustCSS;
-} );
diff --git a/libs/bower_components/jquery/src/css/curCSS.js b/libs/bower_components/jquery/src/css/curCSS.js
deleted file mode 100644
index 084f8c7bde..0000000000
--- a/libs/bower_components/jquery/src/css/curCSS.js
+++ /dev/null
@@ -1,60 +0,0 @@
-define( [
- "../core",
- "./var/rnumnonpx",
- "./var/rmargin",
- "./var/getStyles",
- "./support",
- "../selector" // Get jQuery.contains
-], function( jQuery, rnumnonpx, rmargin, getStyles, support ) {
-
-function curCSS( elem, name, computed ) {
- var width, minWidth, maxWidth, ret,
- style = elem.style;
-
- computed = computed || getStyles( elem );
- ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;
-
- // Support: Opera 12.1x only
- // Fall back to style even without computed
- // computed is undefined for elems on document fragments
- if ( ( ret === "" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {
- ret = jQuery.style( elem, name );
- }
-
- // Support: IE9
- // getPropertyValue is only needed for .css('filter') (#12537)
- if ( computed ) {
-
- // A tribute to the "awesome hack by Dean Edwards"
- // Android Browser returns percentage for some values,
- // but width seems to be reliably pixels.
- // This is against the CSSOM draft spec:
- // http://dev.w3.org/csswg/cssom/#resolved-values
- if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
-
- // Remember the original values
- width = style.width;
- minWidth = style.minWidth;
- maxWidth = style.maxWidth;
-
- // Put in the new values to get a computed value out
- style.minWidth = style.maxWidth = style.width = ret;
- ret = computed.width;
-
- // Revert the changed values
- style.width = width;
- style.minWidth = minWidth;
- style.maxWidth = maxWidth;
- }
- }
-
- return ret !== undefined ?
-
- // Support: IE9-11+
- // IE returns zIndex value as an integer.
- ret + "" :
- ret;
-}
-
-return curCSS;
-} );
diff --git a/libs/bower_components/jquery/src/css/defaultDisplay.js b/libs/bower_components/jquery/src/css/defaultDisplay.js
deleted file mode 100644
index b1fb5774d6..0000000000
--- a/libs/bower_components/jquery/src/css/defaultDisplay.js
+++ /dev/null
@@ -1,72 +0,0 @@
-define( [
- "../core",
- "../var/document",
- "../manipulation" // appendTo
-], function( jQuery, document ) {
-
-var iframe,
- elemdisplay = {
-
- // Support: Firefox
- // We have to pre-define these values for FF (#10227)
- HTML: "block",
- BODY: "block"
- };
-
-/**
- * Retrieve the actual display of a element
- * @param {String} name nodeName of the element
- * @param {Object} doc Document object
- */
-
-// Called only from within defaultDisplay
-function actualDisplay( name, doc ) {
- var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
-
- display = jQuery.css( elem[ 0 ], "display" );
-
- // We don't have any data stored on the element,
- // so use "detach" method as fast way to get rid of the element
- elem.detach();
-
- return display;
-}
-
-/**
- * Try to determine the default display value of an element
- * @param {String} nodeName
- */
-function defaultDisplay( nodeName ) {
- var doc = document,
- display = elemdisplay[ nodeName ];
-
- if ( !display ) {
- display = actualDisplay( nodeName, doc );
-
- // If the simple way fails, read from inside an iframe
- if ( display === "none" || !display ) {
-
- // Use the already-created iframe if possible
- iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) )
- .appendTo( doc.documentElement );
-
- // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
- doc = iframe[ 0 ].contentDocument;
-
- // Support: IE
- doc.write();
- doc.close();
-
- display = actualDisplay( nodeName, doc );
- iframe.detach();
- }
-
- // Store the correct default display
- elemdisplay[ nodeName ] = display;
- }
-
- return display;
-}
-
-return defaultDisplay;
-} );
diff --git a/libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js b/libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js
deleted file mode 100644
index cf0955d3eb..0000000000
--- a/libs/bower_components/jquery/src/css/hiddenVisibleSelectors.js
+++ /dev/null
@@ -1,18 +0,0 @@
-define( [
- "../core",
- "../selector"
-], function( jQuery ) {
-
-jQuery.expr.filters.hidden = function( elem ) {
- return !jQuery.expr.filters.visible( elem );
-};
-jQuery.expr.filters.visible = function( elem ) {
-
- // Support: Opera <= 12.12
- // Opera reports offsetWidths and offsetHeights less than zero on some elements
- // Use OR instead of AND as the element is not visible if either is true
- // See tickets #10406 and #13132
- return elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0;
-};
-
-} );
diff --git a/libs/bower_components/jquery/src/css/showHide.js b/libs/bower_components/jquery/src/css/showHide.js
deleted file mode 100644
index 35e15bde89..0000000000
--- a/libs/bower_components/jquery/src/css/showHide.js
+++ /dev/null
@@ -1,48 +0,0 @@
-define( [
- "../data/var/dataPriv"
-], function( dataPriv ) {
-
-function showHide( elements, show ) {
- var display, elem,
- values = [],
- index = 0,
- length = elements.length;
-
- // Determine new display value for elements that need to change
- for ( ; index < length; index++ ) {
- elem = elements[ index ];
- if ( !elem.style ) {
- continue;
- }
-
- display = elem.style.display;
- if ( show ) {
- if ( display === "none" ) {
-
- // Restore a pre-hide() value if we have one
- values[ index ] = dataPriv.get( elem, "display" ) || "";
- }
- } else {
- if ( display !== "none" ) {
- values[ index ] = "none";
-
- // Remember the value we're replacing
- dataPriv.set( elem, "display", display );
- }
- }
- }
-
- // Set the display of the elements in a second loop
- // to avoid the constant reflow
- for ( index = 0; index < length; index++ ) {
- if ( values[ index ] != null ) {
- elements[ index ].style.display = values[ index ];
- }
- }
-
- return elements;
-}
-
-return showHide;
-
-} );
diff --git a/libs/bower_components/jquery/src/css/support.js b/libs/bower_components/jquery/src/css/support.js
deleted file mode 100644
index 7e6e51334b..0000000000
--- a/libs/bower_components/jquery/src/css/support.js
+++ /dev/null
@@ -1,121 +0,0 @@
-define( [
- "../core",
- "../var/document",
- "../var/documentElement",
- "../var/support"
-], function( jQuery, document, documentElement, support ) {
-
-( function() {
- var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
- container = document.createElement( "div" ),
- div = document.createElement( "div" );
-
- // Finish early in limited (non-browser) environments
- if ( !div.style ) {
- return;
- }
-
- // Support: IE9-11+
- // Style of cloned element affects source element cloned (#8908)
- div.style.backgroundClip = "content-box";
- div.cloneNode( true ).style.backgroundClip = "";
- support.clearCloneStyle = div.style.backgroundClip === "content-box";
-
- container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
- "padding:0;margin-top:1px;position:absolute";
- container.appendChild( div );
-
- // Executing both pixelPosition & boxSizingReliable tests require only one layout
- // so they're executed at the same time to save the second computation.
- function computeStyleTests() {
- div.style.cssText =
-
- // Support: Firefox<29, Android 2.3
- // Vendor-prefix box-sizing
- "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" +
- "position:relative;display:block;" +
- "margin:auto;border:1px;padding:1px;" +
- "top:1%;width:50%";
- div.innerHTML = "";
- documentElement.appendChild( container );
-
- var divStyle = window.getComputedStyle( div );
- pixelPositionVal = divStyle.top !== "1%";
- reliableMarginLeftVal = divStyle.marginLeft === "2px";
- boxSizingReliableVal = divStyle.width === "4px";
-
- // Support: Android 4.0 - 4.3 only
- // Some styles come back with percentage values, even though they shouldn't
- div.style.marginRight = "50%";
- pixelMarginRightVal = divStyle.marginRight === "4px";
-
- documentElement.removeChild( container );
- }
-
- jQuery.extend( support, {
- pixelPosition: function() {
-
- // This test is executed only once but we still do memoizing
- // since we can use the boxSizingReliable pre-computing.
- // No need to check if the test was already performed, though.
- computeStyleTests();
- return pixelPositionVal;
- },
- boxSizingReliable: function() {
- if ( boxSizingReliableVal == null ) {
- computeStyleTests();
- }
- return boxSizingReliableVal;
- },
- pixelMarginRight: function() {
-
- // Support: Android 4.0-4.3
- // We're checking for boxSizingReliableVal here instead of pixelMarginRightVal
- // since that compresses better and they're computed together anyway.
- if ( boxSizingReliableVal == null ) {
- computeStyleTests();
- }
- return pixelMarginRightVal;
- },
- reliableMarginLeft: function() {
-
- // Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37
- if ( boxSizingReliableVal == null ) {
- computeStyleTests();
- }
- return reliableMarginLeftVal;
- },
- reliableMarginRight: function() {
-
- // Support: Android 2.3
- // Check if div with explicit width and no margin-right incorrectly
- // gets computed margin-right based on width of container. (#3333)
- // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
- // This support function is only executed once so no memoizing is needed.
- var ret,
- marginDiv = div.appendChild( document.createElement( "div" ) );
-
- // Reset CSS: box-sizing; display; margin; border; padding
- marginDiv.style.cssText = div.style.cssText =
-
- // Support: Android 2.3
- // Vendor-prefix box-sizing
- "-webkit-box-sizing:content-box;box-sizing:content-box;" +
- "display:block;margin:0;border:0;padding:0";
- marginDiv.style.marginRight = marginDiv.style.width = "0";
- div.style.width = "1px";
- documentElement.appendChild( container );
-
- ret = !parseFloat( window.getComputedStyle( marginDiv ).marginRight );
-
- documentElement.removeChild( container );
- div.removeChild( marginDiv );
-
- return ret;
- }
- } );
-} )();
-
-return support;
-
-} );
diff --git a/libs/bower_components/jquery/src/css/var/cssExpand.js b/libs/bower_components/jquery/src/css/var/cssExpand.js
deleted file mode 100644
index 9f8194dc88..0000000000
--- a/libs/bower_components/jquery/src/css/var/cssExpand.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return [ "Top", "Right", "Bottom", "Left" ];
-} );
diff --git a/libs/bower_components/jquery/src/css/var/getStyles.js b/libs/bower_components/jquery/src/css/var/getStyles.js
deleted file mode 100644
index 02a4b8194e..0000000000
--- a/libs/bower_components/jquery/src/css/var/getStyles.js
+++ /dev/null
@@ -1,15 +0,0 @@
-define( function() {
- return function( elem ) {
-
- // Support: IE<=11+, Firefox<=30+ (#15098, #14150)
- // IE throws on elements created in popups
- // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
- var view = elem.ownerDocument.defaultView;
-
- if ( !view || !view.opener ) {
- view = window;
- }
-
- return view.getComputedStyle( elem );
- };
-} );
diff --git a/libs/bower_components/jquery/src/css/var/isHidden.js b/libs/bower_components/jquery/src/css/var/isHidden.js
deleted file mode 100644
index 7997efff18..0000000000
--- a/libs/bower_components/jquery/src/css/var/isHidden.js
+++ /dev/null
@@ -1,16 +0,0 @@
-define( [
- "../../core",
- "../../selector"
-
- // css is assumed
-], function( jQuery ) {
-
- return function( elem, el ) {
-
- // isHidden might be called from jQuery#filter function;
- // in that case, element will be second argument
- elem = el || elem;
- return jQuery.css( elem, "display" ) === "none" ||
- !jQuery.contains( elem.ownerDocument, elem );
- };
-} );
diff --git a/libs/bower_components/jquery/src/css/var/rmargin.js b/libs/bower_components/jquery/src/css/var/rmargin.js
deleted file mode 100644
index 9be2212435..0000000000
--- a/libs/bower_components/jquery/src/css/var/rmargin.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return ( /^margin/ );
-} );
diff --git a/libs/bower_components/jquery/src/css/var/rnumnonpx.js b/libs/bower_components/jquery/src/css/var/rnumnonpx.js
deleted file mode 100644
index ed13f0b985..0000000000
--- a/libs/bower_components/jquery/src/css/var/rnumnonpx.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "../../var/pnum"
-], function( pnum ) {
- return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
-} );
diff --git a/libs/bower_components/jquery/src/css/var/swap.js b/libs/bower_components/jquery/src/css/var/swap.js
deleted file mode 100644
index b6d3b679f9..0000000000
--- a/libs/bower_components/jquery/src/css/var/swap.js
+++ /dev/null
@@ -1,24 +0,0 @@
-define( function() {
-
-// A method for quickly swapping in/out CSS properties to get correct calculations.
-return function( elem, options, callback, args ) {
- var ret, name,
- old = {};
-
- // Remember the old values, and insert the new ones
- for ( name in options ) {
- old[ name ] = elem.style[ name ];
- elem.style[ name ] = options[ name ];
- }
-
- ret = callback.apply( elem, args || [] );
-
- // Revert the old values
- for ( name in options ) {
- elem.style[ name ] = old[ name ];
- }
-
- return ret;
-};
-
-} );
diff --git a/libs/bower_components/jquery/src/data.js b/libs/bower_components/jquery/src/data.js
deleted file mode 100644
index b626fda457..0000000000
--- a/libs/bower_components/jquery/src/data.js
+++ /dev/null
@@ -1,187 +0,0 @@
-define( [
- "./core",
- "./core/access",
- "./data/var/dataPriv",
- "./data/var/dataUser"
-], function( jQuery, access, dataPriv, dataUser ) {
-
-// Implementation Summary
-//
-// 1. Enforce API surface and semantic compatibility with 1.9.x branch
-// 2. Improve the module's maintainability by reducing the storage
-// paths to a single mechanism.
-// 3. Use the same single mechanism to support "private" and "user" data.
-// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
-// 5. Avoid exposing implementation details on user objects (eg. expando properties)
-// 6. Provide a clear path for implementation upgrade to WeakMap in 2014
-
-var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
- rmultiDash = /[A-Z]/g;
-
-function dataAttr( elem, key, data ) {
- var name;
-
- // If nothing was found internally, try to fetch any
- // data from the HTML5 data-* attribute
- if ( data === undefined && elem.nodeType === 1 ) {
- name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
- data = elem.getAttribute( name );
-
- if ( typeof data === "string" ) {
- try {
- data = data === "true" ? true :
- data === "false" ? false :
- data === "null" ? null :
-
- // Only convert to a number if it doesn't change the string
- +data + "" === data ? +data :
- rbrace.test( data ) ? jQuery.parseJSON( data ) :
- data;
- } catch ( e ) {}
-
- // Make sure we set the data so it isn't changed later
- dataUser.set( elem, key, data );
- } else {
- data = undefined;
- }
- }
- return data;
-}
-
-jQuery.extend( {
- hasData: function( elem ) {
- return dataUser.hasData( elem ) || dataPriv.hasData( elem );
- },
-
- data: function( elem, name, data ) {
- return dataUser.access( elem, name, data );
- },
-
- removeData: function( elem, name ) {
- dataUser.remove( elem, name );
- },
-
- // TODO: Now that all calls to _data and _removeData have been replaced
- // with direct calls to dataPriv methods, these can be deprecated.
- _data: function( elem, name, data ) {
- return dataPriv.access( elem, name, data );
- },
-
- _removeData: function( elem, name ) {
- dataPriv.remove( elem, name );
- }
-} );
-
-jQuery.fn.extend( {
- data: function( key, value ) {
- var i, name, data,
- elem = this[ 0 ],
- attrs = elem && elem.attributes;
-
- // Gets all values
- if ( key === undefined ) {
- if ( this.length ) {
- data = dataUser.get( elem );
-
- if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
- i = attrs.length;
- while ( i-- ) {
-
- // Support: IE11+
- // The attrs elements can be null (#14894)
- if ( attrs[ i ] ) {
- name = attrs[ i ].name;
- if ( name.indexOf( "data-" ) === 0 ) {
- name = jQuery.camelCase( name.slice( 5 ) );
- dataAttr( elem, name, data[ name ] );
- }
- }
- }
- dataPriv.set( elem, "hasDataAttrs", true );
- }
- }
-
- return data;
- }
-
- // Sets multiple values
- if ( typeof key === "object" ) {
- return this.each( function() {
- dataUser.set( this, key );
- } );
- }
-
- return access( this, function( value ) {
- var data, camelKey;
-
- // The calling jQuery object (element matches) is not empty
- // (and therefore has an element appears at this[ 0 ]) and the
- // `value` parameter was not undefined. An empty jQuery object
- // will result in `undefined` for elem = this[ 0 ] which will
- // throw an exception if an attempt to read a data cache is made.
- if ( elem && value === undefined ) {
-
- // Attempt to get data from the cache
- // with the key as-is
- data = dataUser.get( elem, key ) ||
-
- // Try to find dashed key if it exists (gh-2779)
- // This is for 2.2.x only
- dataUser.get( elem, key.replace( rmultiDash, "-$&" ).toLowerCase() );
-
- if ( data !== undefined ) {
- return data;
- }
-
- camelKey = jQuery.camelCase( key );
-
- // Attempt to get data from the cache
- // with the key camelized
- data = dataUser.get( elem, camelKey );
- if ( data !== undefined ) {
- return data;
- }
-
- // Attempt to "discover" the data in
- // HTML5 custom data-* attrs
- data = dataAttr( elem, camelKey, undefined );
- if ( data !== undefined ) {
- return data;
- }
-
- // We tried really hard, but the data doesn't exist.
- return;
- }
-
- // Set the data...
- camelKey = jQuery.camelCase( key );
- this.each( function() {
-
- // First, attempt to store a copy or reference of any
- // data that might've been store with a camelCased key.
- var data = dataUser.get( this, camelKey );
-
- // For HTML5 data-* attribute interop, we have to
- // store property names with dashes in a camelCase form.
- // This might not apply to all properties...*
- dataUser.set( this, camelKey, value );
-
- // *... In the case of properties that might _actually_
- // have dashes, we need to also store a copy of that
- // unchanged property.
- if ( key.indexOf( "-" ) > -1 && data !== undefined ) {
- dataUser.set( this, key, value );
- }
- } );
- }, null, value, arguments.length > 1, null, true );
- },
-
- removeData: function( key ) {
- return this.each( function() {
- dataUser.remove( this, key );
- } );
- }
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/data/Data.js b/libs/bower_components/jquery/src/data/Data.js
deleted file mode 100644
index 0e29c1fc63..0000000000
--- a/libs/bower_components/jquery/src/data/Data.js
+++ /dev/null
@@ -1,200 +0,0 @@
-define( [
- "../core",
- "../var/rnotwhite",
- "./var/acceptData"
-], function( jQuery, rnotwhite, acceptData ) {
-
-function Data() {
- this.expando = jQuery.expando + Data.uid++;
-}
-
-Data.uid = 1;
-
-Data.prototype = {
-
- register: function( owner, initial ) {
- var value = initial || {};
-
- // If it is a node unlikely to be stringify-ed or looped over
- // use plain assignment
- if ( owner.nodeType ) {
- owner[ this.expando ] = value;
-
- // Otherwise secure it in a non-enumerable, non-writable property
- // configurability must be true to allow the property to be
- // deleted with the delete operator
- } else {
- Object.defineProperty( owner, this.expando, {
- value: value,
- writable: true,
- configurable: true
- } );
- }
- return owner[ this.expando ];
- },
- cache: function( owner ) {
-
- // We can accept data for non-element nodes in modern browsers,
- // but we should not, see #8335.
- // Always return an empty object.
- if ( !acceptData( owner ) ) {
- return {};
- }
-
- // Check if the owner object already has a cache
- var value = owner[ this.expando ];
-
- // If not, create one
- if ( !value ) {
- value = {};
-
- // We can accept data for non-element nodes in modern browsers,
- // but we should not, see #8335.
- // Always return an empty object.
- if ( acceptData( owner ) ) {
-
- // If it is a node unlikely to be stringify-ed or looped over
- // use plain assignment
- if ( owner.nodeType ) {
- owner[ this.expando ] = value;
-
- // Otherwise secure it in a non-enumerable property
- // configurable must be true to allow the property to be
- // deleted when data is removed
- } else {
- Object.defineProperty( owner, this.expando, {
- value: value,
- configurable: true
- } );
- }
- }
- }
-
- return value;
- },
- set: function( owner, data, value ) {
- var prop,
- cache = this.cache( owner );
-
- // Handle: [ owner, key, value ] args
- if ( typeof data === "string" ) {
- cache[ data ] = value;
-
- // Handle: [ owner, { properties } ] args
- } else {
-
- // Copy the properties one-by-one to the cache object
- for ( prop in data ) {
- cache[ prop ] = data[ prop ];
- }
- }
- return cache;
- },
- get: function( owner, key ) {
- return key === undefined ?
- this.cache( owner ) :
- owner[ this.expando ] && owner[ this.expando ][ key ];
- },
- access: function( owner, key, value ) {
- var stored;
-
- // In cases where either:
- //
- // 1. No key was specified
- // 2. A string key was specified, but no value provided
- //
- // Take the "read" path and allow the get method to determine
- // which value to return, respectively either:
- //
- // 1. The entire cache object
- // 2. The data stored at the key
- //
- if ( key === undefined ||
- ( ( key && typeof key === "string" ) && value === undefined ) ) {
-
- stored = this.get( owner, key );
-
- return stored !== undefined ?
- stored : this.get( owner, jQuery.camelCase( key ) );
- }
-
- // When the key is not a string, or both a key and value
- // are specified, set or extend (existing objects) with either:
- //
- // 1. An object of properties
- // 2. A key and value
- //
- this.set( owner, key, value );
-
- // Since the "set" path can have two possible entry points
- // return the expected data based on which path was taken[*]
- return value !== undefined ? value : key;
- },
- remove: function( owner, key ) {
- var i, name, camel,
- cache = owner[ this.expando ];
-
- if ( cache === undefined ) {
- return;
- }
-
- if ( key === undefined ) {
- this.register( owner );
-
- } else {
-
- // Support array or space separated string of keys
- if ( jQuery.isArray( key ) ) {
-
- // If "name" is an array of keys...
- // When data is initially created, via ("key", "val") signature,
- // keys will be converted to camelCase.
- // Since there is no way to tell _how_ a key was added, remove
- // both plain key and camelCase key. #12786
- // This will only penalize the array argument path.
- name = key.concat( key.map( jQuery.camelCase ) );
- } else {
- camel = jQuery.camelCase( key );
-
- // Try the string as a key before any manipulation
- if ( key in cache ) {
- name = [ key, camel ];
- } else {
-
- // If a key with the spaces exists, use it.
- // Otherwise, create an array by matching non-whitespace
- name = camel;
- name = name in cache ?
- [ name ] : ( name.match( rnotwhite ) || [] );
- }
- }
-
- i = name.length;
-
- while ( i-- ) {
- delete cache[ name[ i ] ];
- }
- }
-
- // Remove the expando if there's no more data
- if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
-
- // Support: Chrome <= 35-45+
- // Webkit & Blink performance suffers when deleting properties
- // from DOM nodes, so set to undefined instead
- // https://code.google.com/p/chromium/issues/detail?id=378607
- if ( owner.nodeType ) {
- owner[ this.expando ] = undefined;
- } else {
- delete owner[ this.expando ];
- }
- }
- },
- hasData: function( owner ) {
- var cache = owner[ this.expando ];
- return cache !== undefined && !jQuery.isEmptyObject( cache );
- }
-};
-
-return Data;
-} );
diff --git a/libs/bower_components/jquery/src/data/accepts.js b/libs/bower_components/jquery/src/data/accepts.js
deleted file mode 100644
index 291c7b4751..0000000000
--- a/libs/bower_components/jquery/src/data/accepts.js
+++ /dev/null
@@ -1,20 +0,0 @@
-define([
- "../core"
-], function( jQuery ) {
-
-/**
- * Determines whether an object can have data
- */
-jQuery.acceptData = function( owner ) {
- // Accepts only:
- // - Node
- // - Node.ELEMENT_NODE
- // - Node.DOCUMENT_NODE
- // - Object
- // - Any
- /* jshint -W018 */
- return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
-};
-
-return jQuery.acceptData;
-});
diff --git a/libs/bower_components/jquery/src/data/support.js b/libs/bower_components/jquery/src/data/support.js
deleted file mode 100644
index f796ab574c..0000000000
--- a/libs/bower_components/jquery/src/data/support.js
+++ /dev/null
@@ -1,23 +0,0 @@
-define( [
- "../var/document",
- "../var/support"
-], function( document, support ) {
-
-( function() {
- var div = document.createElement( "div" );
-
- // Support: IE<9
- support.deleteExpando = true;
- try {
- delete div.test;
- } catch ( e ) {
- support.deleteExpando = false;
- }
-
- // Null elements to avoid leaks in IE.
- div = null;
-} )();
-
-return support;
-
-} );
diff --git a/libs/bower_components/jquery/src/data/var/acceptData.js b/libs/bower_components/jquery/src/data/var/acceptData.js
deleted file mode 100644
index 6e15af1278..0000000000
--- a/libs/bower_components/jquery/src/data/var/acceptData.js
+++ /dev/null
@@ -1,18 +0,0 @@
-define( function() {
-
-/**
- * Determines whether an object can have data
- */
-return function( owner ) {
-
- // Accepts only:
- // - Node
- // - Node.ELEMENT_NODE
- // - Node.DOCUMENT_NODE
- // - Object
- // - Any
- /* jshint -W018 */
- return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
-};
-
-} );
diff --git a/libs/bower_components/jquery/src/data/var/dataPriv.js b/libs/bower_components/jquery/src/data/var/dataPriv.js
deleted file mode 100644
index 9a1343ce1a..0000000000
--- a/libs/bower_components/jquery/src/data/var/dataPriv.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "../Data"
-], function( Data ) {
- return new Data();
-} );
diff --git a/libs/bower_components/jquery/src/data/var/dataUser.js b/libs/bower_components/jquery/src/data/var/dataUser.js
deleted file mode 100644
index 9a1343ce1a..0000000000
--- a/libs/bower_components/jquery/src/data/var/dataUser.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "../Data"
-], function( Data ) {
- return new Data();
-} );
diff --git a/libs/bower_components/jquery/src/deferred.js b/libs/bower_components/jquery/src/deferred.js
deleted file mode 100644
index d2cd6080f8..0000000000
--- a/libs/bower_components/jquery/src/deferred.js
+++ /dev/null
@@ -1,158 +0,0 @@
-define( [
- "./core",
- "./var/slice",
- "./callbacks"
-], function( jQuery, slice ) {
-
-jQuery.extend( {
-
- Deferred: function( func ) {
- var tuples = [
-
- // action, add listener, listener list, final state
- [ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ],
- [ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ],
- [ "notify", "progress", jQuery.Callbacks( "memory" ) ]
- ],
- state = "pending",
- promise = {
- state: function() {
- return state;
- },
- always: function() {
- deferred.done( arguments ).fail( arguments );
- return this;
- },
- then: function( /* fnDone, fnFail, fnProgress */ ) {
- var fns = arguments;
- return jQuery.Deferred( function( newDefer ) {
- jQuery.each( tuples, function( i, tuple ) {
- var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
-
- // deferred[ done | fail | progress ] for forwarding actions to newDefer
- deferred[ tuple[ 1 ] ]( function() {
- var returned = fn && fn.apply( this, arguments );
- if ( returned && jQuery.isFunction( returned.promise ) ) {
- returned.promise()
- .progress( newDefer.notify )
- .done( newDefer.resolve )
- .fail( newDefer.reject );
- } else {
- newDefer[ tuple[ 0 ] + "With" ](
- this === promise ? newDefer.promise() : this,
- fn ? [ returned ] : arguments
- );
- }
- } );
- } );
- fns = null;
- } ).promise();
- },
-
- // Get a promise for this deferred
- // If obj is provided, the promise aspect is added to the object
- promise: function( obj ) {
- return obj != null ? jQuery.extend( obj, promise ) : promise;
- }
- },
- deferred = {};
-
- // Keep pipe for back-compat
- promise.pipe = promise.then;
-
- // Add list-specific methods
- jQuery.each( tuples, function( i, tuple ) {
- var list = tuple[ 2 ],
- stateString = tuple[ 3 ];
-
- // promise[ done | fail | progress ] = list.add
- promise[ tuple[ 1 ] ] = list.add;
-
- // Handle state
- if ( stateString ) {
- list.add( function() {
-
- // state = [ resolved | rejected ]
- state = stateString;
-
- // [ reject_list | resolve_list ].disable; progress_list.lock
- }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
- }
-
- // deferred[ resolve | reject | notify ]
- deferred[ tuple[ 0 ] ] = function() {
- deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments );
- return this;
- };
- deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
- } );
-
- // Make the deferred a promise
- promise.promise( deferred );
-
- // Call given func if any
- if ( func ) {
- func.call( deferred, deferred );
- }
-
- // All done!
- return deferred;
- },
-
- // Deferred helper
- when: function( subordinate /* , ..., subordinateN */ ) {
- var i = 0,
- resolveValues = slice.call( arguments ),
- length = resolveValues.length,
-
- // the count of uncompleted subordinates
- remaining = length !== 1 ||
- ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
-
- // the master Deferred.
- // If resolveValues consist of only a single Deferred, just use that.
- deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
-
- // Update function for both resolve and progress values
- updateFunc = function( i, contexts, values ) {
- return function( value ) {
- contexts[ i ] = this;
- values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
- if ( values === progressValues ) {
- deferred.notifyWith( contexts, values );
- } else if ( !( --remaining ) ) {
- deferred.resolveWith( contexts, values );
- }
- };
- },
-
- progressValues, progressContexts, resolveContexts;
-
- // Add listeners to Deferred subordinates; treat others as resolved
- if ( length > 1 ) {
- progressValues = new Array( length );
- progressContexts = new Array( length );
- resolveContexts = new Array( length );
- for ( ; i < length; i++ ) {
- if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
- resolveValues[ i ].promise()
- .progress( updateFunc( i, progressContexts, progressValues ) )
- .done( updateFunc( i, resolveContexts, resolveValues ) )
- .fail( deferred.reject );
- } else {
- --remaining;
- }
- }
- }
-
- // If we're not waiting on anything, resolve the master
- if ( !remaining ) {
- deferred.resolveWith( resolveContexts, resolveValues );
- }
-
- return deferred.promise();
- }
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/deferred/exceptionHook.js b/libs/bower_components/jquery/src/deferred/exceptionHook.js
deleted file mode 100644
index b9955063a6..0000000000
--- a/libs/bower_components/jquery/src/deferred/exceptionHook.js
+++ /dev/null
@@ -1,19 +0,0 @@
-define( [
- "../core",
- "../deferred"
-], function( jQuery ) {
-
-// These usually indicate a programmer mistake during development,
-// warn about them ASAP rather than swallowing them by default.
-var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
-
-jQuery.Deferred.exceptionHook = function( error, stack ) {
-
- // Support: IE9
- // Console exists when dev tools are open, which can happen at any time
- if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
- window.console.warn( "jQuery.Deferred exception: " + error.message, stack );
- }
-};
-
-} );
diff --git a/libs/bower_components/jquery/src/deprecated.js b/libs/bower_components/jquery/src/deprecated.js
deleted file mode 100644
index c82989007c..0000000000
--- a/libs/bower_components/jquery/src/deprecated.js
+++ /dev/null
@@ -1,32 +0,0 @@
-define( [
- "./core"
-], function( jQuery ) {
-
-jQuery.fn.extend( {
-
- bind: function( types, data, fn ) {
- return this.on( types, null, data, fn );
- },
- unbind: function( types, fn ) {
- return this.off( types, null, fn );
- },
-
- delegate: function( selector, types, data, fn ) {
- return this.on( types, selector, data, fn );
- },
- undelegate: function( selector, types, fn ) {
-
- // ( namespace ) or ( selector, types [, fn] )
- return arguments.length === 1 ?
- this.off( selector, "**" ) :
- this.off( types, selector || "**", fn );
- },
- size: function() {
- return this.length;
- }
-} );
-
-jQuery.fn.andSelf = jQuery.fn.addBack;
-
-} );
-
diff --git a/libs/bower_components/jquery/src/dimensions.js b/libs/bower_components/jquery/src/dimensions.js
deleted file mode 100644
index 30b55fbc0e..0000000000
--- a/libs/bower_components/jquery/src/dimensions.js
+++ /dev/null
@@ -1,54 +0,0 @@
-define( [
- "./core",
- "./core/access",
- "./css"
-], function( jQuery, access ) {
-
-// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
-jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
- jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
- function( defaultExtra, funcName ) {
-
- // Margin is only for outerHeight, outerWidth
- jQuery.fn[ funcName ] = function( margin, value ) {
- var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
- extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
-
- return access( this, function( elem, type, value ) {
- var doc;
-
- if ( jQuery.isWindow( elem ) ) {
-
- // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
- // isn't a whole lot we can do. See pull request at this URL for discussion:
- // https://github.com/jquery/jquery/pull/764
- return elem.document.documentElement[ "client" + name ];
- }
-
- // Get document width or height
- if ( elem.nodeType === 9 ) {
- doc = elem.documentElement;
-
- // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
- // whichever is greatest
- return Math.max(
- elem.body[ "scroll" + name ], doc[ "scroll" + name ],
- elem.body[ "offset" + name ], doc[ "offset" + name ],
- doc[ "client" + name ]
- );
- }
-
- return value === undefined ?
-
- // Get width or height on the element, requesting but not forcing parseFloat
- jQuery.css( elem, type, extra ) :
-
- // Set width or height on the element
- jQuery.style( elem, type, value, extra );
- }, type, chainable ? margin : undefined, chainable, null );
- };
- } );
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/effects.js b/libs/bower_components/jquery/src/effects.js
deleted file mode 100644
index 178fa42f06..0000000000
--- a/libs/bower_components/jquery/src/effects.js
+++ /dev/null
@@ -1,629 +0,0 @@
-define( [
- "./core",
- "./var/document",
- "./var/rcssNum",
- "./css/var/cssExpand",
- "./var/rnotwhite",
- "./css/var/isHidden",
- "./css/adjustCSS",
- "./css/defaultDisplay",
- "./data/var/dataPriv",
-
- "./core/init",
- "./effects/Tween",
- "./queue",
- "./css",
- "./deferred",
- "./traversing"
-], function( jQuery, document, rcssNum, cssExpand, rnotwhite,
- isHidden, adjustCSS, defaultDisplay, dataPriv ) {
-
-var
- fxNow, timerId,
- rfxtypes = /^(?:toggle|show|hide)$/,
- rrun = /queueHooks$/;
-
-// Animations created synchronously will run synchronously
-function createFxNow() {
- window.setTimeout( function() {
- fxNow = undefined;
- } );
- return ( fxNow = jQuery.now() );
-}
-
-// Generate parameters to create a standard animation
-function genFx( type, includeWidth ) {
- var which,
- i = 0,
- attrs = { height: type };
-
- // If we include width, step value is 1 to do all cssExpand values,
- // otherwise step value is 2 to skip over Left and Right
- includeWidth = includeWidth ? 1 : 0;
- for ( ; i < 4 ; i += 2 - includeWidth ) {
- which = cssExpand[ i ];
- attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
- }
-
- if ( includeWidth ) {
- attrs.opacity = attrs.width = type;
- }
-
- return attrs;
-}
-
-function createTween( value, prop, animation ) {
- var tween,
- collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
- index = 0,
- length = collection.length;
- for ( ; index < length; index++ ) {
- if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
-
- // We're done with this property
- return tween;
- }
- }
-}
-
-function defaultPrefilter( elem, props, opts ) {
- /* jshint validthis: true */
- var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
- anim = this,
- orig = {},
- style = elem.style,
- hidden = elem.nodeType && isHidden( elem ),
- dataShow = dataPriv.get( elem, "fxshow" );
-
- // Handle queue: false promises
- if ( !opts.queue ) {
- hooks = jQuery._queueHooks( elem, "fx" );
- if ( hooks.unqueued == null ) {
- hooks.unqueued = 0;
- oldfire = hooks.empty.fire;
- hooks.empty.fire = function() {
- if ( !hooks.unqueued ) {
- oldfire();
- }
- };
- }
- hooks.unqueued++;
-
- anim.always( function() {
-
- // Ensure the complete handler is called before this completes
- anim.always( function() {
- hooks.unqueued--;
- if ( !jQuery.queue( elem, "fx" ).length ) {
- hooks.empty.fire();
- }
- } );
- } );
- }
-
- // Height/width overflow pass
- if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
-
- // Make sure that nothing sneaks out
- // Record all 3 overflow attributes because IE9-10 do not
- // change the overflow attribute when overflowX and
- // overflowY are set to the same value
- opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
-
- // Set display property to inline-block for height/width
- // animations on inline elements that are having width/height animated
- display = jQuery.css( elem, "display" );
-
- // Test default display if display is currently "none"
- checkDisplay = display === "none" ?
- dataPriv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
-
- if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
- style.display = "inline-block";
- }
- }
-
- if ( opts.overflow ) {
- style.overflow = "hidden";
- anim.always( function() {
- style.overflow = opts.overflow[ 0 ];
- style.overflowX = opts.overflow[ 1 ];
- style.overflowY = opts.overflow[ 2 ];
- } );
- }
-
- // show/hide pass
- for ( prop in props ) {
- value = props[ prop ];
- if ( rfxtypes.exec( value ) ) {
- delete props[ prop ];
- toggle = toggle || value === "toggle";
- if ( value === ( hidden ? "hide" : "show" ) ) {
-
- // If there is dataShow left over from a stopped hide or show
- // and we are going to proceed with show, we should pretend to be hidden
- if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
- hidden = true;
- } else {
- continue;
- }
- }
- orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
-
- // Any non-fx value stops us from restoring the original display value
- } else {
- display = undefined;
- }
- }
-
- if ( !jQuery.isEmptyObject( orig ) ) {
- if ( dataShow ) {
- if ( "hidden" in dataShow ) {
- hidden = dataShow.hidden;
- }
- } else {
- dataShow = dataPriv.access( elem, "fxshow", {} );
- }
-
- // Store state if its toggle - enables .stop().toggle() to "reverse"
- if ( toggle ) {
- dataShow.hidden = !hidden;
- }
- if ( hidden ) {
- jQuery( elem ).show();
- } else {
- anim.done( function() {
- jQuery( elem ).hide();
- } );
- }
- anim.done( function() {
- var prop;
-
- dataPriv.remove( elem, "fxshow" );
- for ( prop in orig ) {
- jQuery.style( elem, prop, orig[ prop ] );
- }
- } );
- for ( prop in orig ) {
- tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
-
- if ( !( prop in dataShow ) ) {
- dataShow[ prop ] = tween.start;
- if ( hidden ) {
- tween.end = tween.start;
- tween.start = prop === "width" || prop === "height" ? 1 : 0;
- }
- }
- }
-
- // If this is a noop like .hide().hide(), restore an overwritten display value
- } else if ( ( display === "none" ? defaultDisplay( elem.nodeName ) : display ) === "inline" ) {
- style.display = display;
- }
-}
-
-function propFilter( props, specialEasing ) {
- var index, name, easing, value, hooks;
-
- // camelCase, specialEasing and expand cssHook pass
- for ( index in props ) {
- name = jQuery.camelCase( index );
- easing = specialEasing[ name ];
- value = props[ index ];
- if ( jQuery.isArray( value ) ) {
- easing = value[ 1 ];
- value = props[ index ] = value[ 0 ];
- }
-
- if ( index !== name ) {
- props[ name ] = value;
- delete props[ index ];
- }
-
- hooks = jQuery.cssHooks[ name ];
- if ( hooks && "expand" in hooks ) {
- value = hooks.expand( value );
- delete props[ name ];
-
- // Not quite $.extend, this won't overwrite existing keys.
- // Reusing 'index' because we have the correct "name"
- for ( index in value ) {
- if ( !( index in props ) ) {
- props[ index ] = value[ index ];
- specialEasing[ index ] = easing;
- }
- }
- } else {
- specialEasing[ name ] = easing;
- }
- }
-}
-
-function Animation( elem, properties, options ) {
- var result,
- stopped,
- index = 0,
- length = Animation.prefilters.length,
- deferred = jQuery.Deferred().always( function() {
-
- // Don't match elem in the :animated selector
- delete tick.elem;
- } ),
- tick = function() {
- if ( stopped ) {
- return false;
- }
- var currentTime = fxNow || createFxNow(),
- remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
-
- // Support: Android 2.3
- // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
- temp = remaining / animation.duration || 0,
- percent = 1 - temp,
- index = 0,
- length = animation.tweens.length;
-
- for ( ; index < length ; index++ ) {
- animation.tweens[ index ].run( percent );
- }
-
- deferred.notifyWith( elem, [ animation, percent, remaining ] );
-
- if ( percent < 1 && length ) {
- return remaining;
- } else {
- deferred.resolveWith( elem, [ animation ] );
- return false;
- }
- },
- animation = deferred.promise( {
- elem: elem,
- props: jQuery.extend( {}, properties ),
- opts: jQuery.extend( true, {
- specialEasing: {},
- easing: jQuery.easing._default
- }, options ),
- originalProperties: properties,
- originalOptions: options,
- startTime: fxNow || createFxNow(),
- duration: options.duration,
- tweens: [],
- createTween: function( prop, end ) {
- var tween = jQuery.Tween( elem, animation.opts, prop, end,
- animation.opts.specialEasing[ prop ] || animation.opts.easing );
- animation.tweens.push( tween );
- return tween;
- },
- stop: function( gotoEnd ) {
- var index = 0,
-
- // If we are going to the end, we want to run all the tweens
- // otherwise we skip this part
- length = gotoEnd ? animation.tweens.length : 0;
- if ( stopped ) {
- return this;
- }
- stopped = true;
- for ( ; index < length ; index++ ) {
- animation.tweens[ index ].run( 1 );
- }
-
- // Resolve when we played the last frame; otherwise, reject
- if ( gotoEnd ) {
- deferred.notifyWith( elem, [ animation, 1, 0 ] );
- deferred.resolveWith( elem, [ animation, gotoEnd ] );
- } else {
- deferred.rejectWith( elem, [ animation, gotoEnd ] );
- }
- return this;
- }
- } ),
- props = animation.props;
-
- propFilter( props, animation.opts.specialEasing );
-
- for ( ; index < length ; index++ ) {
- result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
- if ( result ) {
- if ( jQuery.isFunction( result.stop ) ) {
- jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
- jQuery.proxy( result.stop, result );
- }
- return result;
- }
- }
-
- jQuery.map( props, createTween, animation );
-
- if ( jQuery.isFunction( animation.opts.start ) ) {
- animation.opts.start.call( elem, animation );
- }
-
- jQuery.fx.timer(
- jQuery.extend( tick, {
- elem: elem,
- anim: animation,
- queue: animation.opts.queue
- } )
- );
-
- // attach callbacks from options
- return animation.progress( animation.opts.progress )
- .done( animation.opts.done, animation.opts.complete )
- .fail( animation.opts.fail )
- .always( animation.opts.always );
-}
-
-jQuery.Animation = jQuery.extend( Animation, {
- tweeners: {
- "*": [ function( prop, value ) {
- var tween = this.createTween( prop, value );
- adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
- return tween;
- } ]
- },
-
- tweener: function( props, callback ) {
- if ( jQuery.isFunction( props ) ) {
- callback = props;
- props = [ "*" ];
- } else {
- props = props.match( rnotwhite );
- }
-
- var prop,
- index = 0,
- length = props.length;
-
- for ( ; index < length ; index++ ) {
- prop = props[ index ];
- Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
- Animation.tweeners[ prop ].unshift( callback );
- }
- },
-
- prefilters: [ defaultPrefilter ],
-
- prefilter: function( callback, prepend ) {
- if ( prepend ) {
- Animation.prefilters.unshift( callback );
- } else {
- Animation.prefilters.push( callback );
- }
- }
-} );
-
-jQuery.speed = function( speed, easing, fn ) {
- var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
- complete: fn || !fn && easing ||
- jQuery.isFunction( speed ) && speed,
- duration: speed,
- easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
- };
-
- opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ?
- opt.duration : opt.duration in jQuery.fx.speeds ?
- jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
-
- // Normalize opt.queue - true/undefined/null -> "fx"
- if ( opt.queue == null || opt.queue === true ) {
- opt.queue = "fx";
- }
-
- // Queueing
- opt.old = opt.complete;
-
- opt.complete = function() {
- if ( jQuery.isFunction( opt.old ) ) {
- opt.old.call( this );
- }
-
- if ( opt.queue ) {
- jQuery.dequeue( this, opt.queue );
- }
- };
-
- return opt;
-};
-
-jQuery.fn.extend( {
- fadeTo: function( speed, to, easing, callback ) {
-
- // Show any hidden elements after setting opacity to 0
- return this.filter( isHidden ).css( "opacity", 0 ).show()
-
- // Animate to the value specified
- .end().animate( { opacity: to }, speed, easing, callback );
- },
- animate: function( prop, speed, easing, callback ) {
- var empty = jQuery.isEmptyObject( prop ),
- optall = jQuery.speed( speed, easing, callback ),
- doAnimation = function() {
-
- // Operate on a copy of prop so per-property easing won't be lost
- var anim = Animation( this, jQuery.extend( {}, prop ), optall );
-
- // Empty animations, or finishing resolves immediately
- if ( empty || dataPriv.get( this, "finish" ) ) {
- anim.stop( true );
- }
- };
- doAnimation.finish = doAnimation;
-
- return empty || optall.queue === false ?
- this.each( doAnimation ) :
- this.queue( optall.queue, doAnimation );
- },
- stop: function( type, clearQueue, gotoEnd ) {
- var stopQueue = function( hooks ) {
- var stop = hooks.stop;
- delete hooks.stop;
- stop( gotoEnd );
- };
-
- if ( typeof type !== "string" ) {
- gotoEnd = clearQueue;
- clearQueue = type;
- type = undefined;
- }
- if ( clearQueue && type !== false ) {
- this.queue( type || "fx", [] );
- }
-
- return this.each( function() {
- var dequeue = true,
- index = type != null && type + "queueHooks",
- timers = jQuery.timers,
- data = dataPriv.get( this );
-
- if ( index ) {
- if ( data[ index ] && data[ index ].stop ) {
- stopQueue( data[ index ] );
- }
- } else {
- for ( index in data ) {
- if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
- stopQueue( data[ index ] );
- }
- }
- }
-
- for ( index = timers.length; index--; ) {
- if ( timers[ index ].elem === this &&
- ( type == null || timers[ index ].queue === type ) ) {
-
- timers[ index ].anim.stop( gotoEnd );
- dequeue = false;
- timers.splice( index, 1 );
- }
- }
-
- // Start the next in the queue if the last step wasn't forced.
- // Timers currently will call their complete callbacks, which
- // will dequeue but only if they were gotoEnd.
- if ( dequeue || !gotoEnd ) {
- jQuery.dequeue( this, type );
- }
- } );
- },
- finish: function( type ) {
- if ( type !== false ) {
- type = type || "fx";
- }
- return this.each( function() {
- var index,
- data = dataPriv.get( this ),
- queue = data[ type + "queue" ],
- hooks = data[ type + "queueHooks" ],
- timers = jQuery.timers,
- length = queue ? queue.length : 0;
-
- // Enable finishing flag on private data
- data.finish = true;
-
- // Empty the queue first
- jQuery.queue( this, type, [] );
-
- if ( hooks && hooks.stop ) {
- hooks.stop.call( this, true );
- }
-
- // Look for any active animations, and finish them
- for ( index = timers.length; index--; ) {
- if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
- timers[ index ].anim.stop( true );
- timers.splice( index, 1 );
- }
- }
-
- // Look for any animations in the old queue and finish them
- for ( index = 0; index < length; index++ ) {
- if ( queue[ index ] && queue[ index ].finish ) {
- queue[ index ].finish.call( this );
- }
- }
-
- // Turn off finishing flag
- delete data.finish;
- } );
- }
-} );
-
-jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
- var cssFn = jQuery.fn[ name ];
- jQuery.fn[ name ] = function( speed, easing, callback ) {
- return speed == null || typeof speed === "boolean" ?
- cssFn.apply( this, arguments ) :
- this.animate( genFx( name, true ), speed, easing, callback );
- };
-} );
-
-// Generate shortcuts for custom animations
-jQuery.each( {
- slideDown: genFx( "show" ),
- slideUp: genFx( "hide" ),
- slideToggle: genFx( "toggle" ),
- fadeIn: { opacity: "show" },
- fadeOut: { opacity: "hide" },
- fadeToggle: { opacity: "toggle" }
-}, function( name, props ) {
- jQuery.fn[ name ] = function( speed, easing, callback ) {
- return this.animate( props, speed, easing, callback );
- };
-} );
-
-jQuery.timers = [];
-jQuery.fx.tick = function() {
- var timer,
- i = 0,
- timers = jQuery.timers;
-
- fxNow = jQuery.now();
-
- for ( ; i < timers.length; i++ ) {
- timer = timers[ i ];
-
- // Checks the timer has not already been removed
- if ( !timer() && timers[ i ] === timer ) {
- timers.splice( i--, 1 );
- }
- }
-
- if ( !timers.length ) {
- jQuery.fx.stop();
- }
- fxNow = undefined;
-};
-
-jQuery.fx.timer = function( timer ) {
- jQuery.timers.push( timer );
- if ( timer() ) {
- jQuery.fx.start();
- } else {
- jQuery.timers.pop();
- }
-};
-
-jQuery.fx.interval = 13;
-jQuery.fx.start = function() {
- if ( !timerId ) {
- timerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
- }
-};
-
-jQuery.fx.stop = function() {
- window.clearInterval( timerId );
-
- timerId = null;
-};
-
-jQuery.fx.speeds = {
- slow: 600,
- fast: 200,
-
- // Default speed
- _default: 400
-};
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/effects/Tween.js b/libs/bower_components/jquery/src/effects/Tween.js
deleted file mode 100644
index d26ddd9189..0000000000
--- a/libs/bower_components/jquery/src/effects/Tween.js
+++ /dev/null
@@ -1,121 +0,0 @@
-define( [
- "../core",
- "../css"
-], function( jQuery ) {
-
-function Tween( elem, options, prop, end, easing ) {
- return new Tween.prototype.init( elem, options, prop, end, easing );
-}
-jQuery.Tween = Tween;
-
-Tween.prototype = {
- constructor: Tween,
- init: function( elem, options, prop, end, easing, unit ) {
- this.elem = elem;
- this.prop = prop;
- this.easing = easing || jQuery.easing._default;
- this.options = options;
- this.start = this.now = this.cur();
- this.end = end;
- this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
- },
- cur: function() {
- var hooks = Tween.propHooks[ this.prop ];
-
- return hooks && hooks.get ?
- hooks.get( this ) :
- Tween.propHooks._default.get( this );
- },
- run: function( percent ) {
- var eased,
- hooks = Tween.propHooks[ this.prop ];
-
- if ( this.options.duration ) {
- this.pos = eased = jQuery.easing[ this.easing ](
- percent, this.options.duration * percent, 0, 1, this.options.duration
- );
- } else {
- this.pos = eased = percent;
- }
- this.now = ( this.end - this.start ) * eased + this.start;
-
- if ( this.options.step ) {
- this.options.step.call( this.elem, this.now, this );
- }
-
- if ( hooks && hooks.set ) {
- hooks.set( this );
- } else {
- Tween.propHooks._default.set( this );
- }
- return this;
- }
-};
-
-Tween.prototype.init.prototype = Tween.prototype;
-
-Tween.propHooks = {
- _default: {
- get: function( tween ) {
- var result;
-
- // Use a property on the element directly when it is not a DOM element,
- // or when there is no matching style property that exists.
- if ( tween.elem.nodeType !== 1 ||
- tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
- return tween.elem[ tween.prop ];
- }
-
- // Passing an empty string as a 3rd parameter to .css will automatically
- // attempt a parseFloat and fallback to a string if the parse fails.
- // Simple values such as "10px" are parsed to Float;
- // complex values such as "rotate(1rad)" are returned as-is.
- result = jQuery.css( tween.elem, tween.prop, "" );
-
- // Empty strings, null, undefined and "auto" are converted to 0.
- return !result || result === "auto" ? 0 : result;
- },
- set: function( tween ) {
-
- // Use step hook for back compat.
- // Use cssHook if its there.
- // Use .style if available and use plain properties where available.
- if ( jQuery.fx.step[ tween.prop ] ) {
- jQuery.fx.step[ tween.prop ]( tween );
- } else if ( tween.elem.nodeType === 1 &&
- ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
- jQuery.cssHooks[ tween.prop ] ) ) {
- jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
- } else {
- tween.elem[ tween.prop ] = tween.now;
- }
- }
- }
-};
-
-// Support: IE9
-// Panic based approach to setting things on disconnected nodes
-Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
- set: function( tween ) {
- if ( tween.elem.nodeType && tween.elem.parentNode ) {
- tween.elem[ tween.prop ] = tween.now;
- }
- }
-};
-
-jQuery.easing = {
- linear: function( p ) {
- return p;
- },
- swing: function( p ) {
- return 0.5 - Math.cos( p * Math.PI ) / 2;
- },
- _default: "swing"
-};
-
-jQuery.fx = Tween.prototype.init;
-
-// Back Compat <1.8 extension point
-jQuery.fx.step = {};
-
-} );
diff --git a/libs/bower_components/jquery/src/effects/animatedSelector.js b/libs/bower_components/jquery/src/effects/animatedSelector.js
deleted file mode 100644
index d84c9c7032..0000000000
--- a/libs/bower_components/jquery/src/effects/animatedSelector.js
+++ /dev/null
@@ -1,13 +0,0 @@
-define( [
- "../core",
- "../selector",
- "../effects"
-], function( jQuery ) {
-
-jQuery.expr.filters.animated = function( elem ) {
- return jQuery.grep( jQuery.timers, function( fn ) {
- return elem === fn.elem;
- } ).length;
-};
-
-} );
diff --git a/libs/bower_components/jquery/src/effects/support.js b/libs/bower_components/jquery/src/effects/support.js
deleted file mode 100644
index 22d4ecb2e9..0000000000
--- a/libs/bower_components/jquery/src/effects/support.js
+++ /dev/null
@@ -1,58 +0,0 @@
-define( [
- "../var/support",
- "../var/document"
-], function( support, document ) {
-
-( function() {
- var shrinkWrapBlocksVal;
-
- support.shrinkWrapBlocks = function() {
- if ( shrinkWrapBlocksVal != null ) {
- return shrinkWrapBlocksVal;
- }
-
- // Will be changed later if needed.
- shrinkWrapBlocksVal = false;
-
- // Minified: var b,c,d
- var div, body, container;
-
- body = document.getElementsByTagName( "body" )[ 0 ];
- if ( !body || !body.style ) {
-
- // Test fired too early or in an unsupported environment, exit.
- return;
- }
-
- // Setup
- div = document.createElement( "div" );
- container = document.createElement( "div" );
- container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
- body.appendChild( container ).appendChild( div );
-
- // Support: IE6
- // Check if elements with layout shrink-wrap their children
- if ( typeof div.style.zoom !== "undefined" ) {
-
- // Reset CSS: box-sizing; display; margin; border
- div.style.cssText =
-
- // Support: Firefox<29, Android 2.3
- // Vendor-prefix box-sizing
- "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
- "box-sizing:content-box;display:block;margin:0;border:0;" +
- "padding:1px;width:1px;zoom:1";
- div.appendChild( document.createElement( "div" ) ).style.width = "5px";
- shrinkWrapBlocksVal = div.offsetWidth !== 3;
- }
-
- body.removeChild( container );
-
- return shrinkWrapBlocksVal;
- };
-
-} )();
-
-return support;
-
-} );
diff --git a/libs/bower_components/jquery/src/event.js b/libs/bower_components/jquery/src/event.js
deleted file mode 100644
index 6d60b4c115..0000000000
--- a/libs/bower_components/jquery/src/event.js
+++ /dev/null
@@ -1,710 +0,0 @@
-define( [
- "./core",
- "./var/document",
- "./var/rnotwhite",
- "./var/slice",
- "./data/var/dataPriv",
-
- "./core/init",
- "./selector"
-], function( jQuery, document, rnotwhite, slice, dataPriv ) {
-
-var
- rkeyEvent = /^key/,
- rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
- rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
-
-function returnTrue() {
- return true;
-}
-
-function returnFalse() {
- return false;
-}
-
-// Support: IE9
-// See #13393 for more info
-function safeActiveElement() {
- try {
- return document.activeElement;
- } catch ( err ) { }
-}
-
-function on( elem, types, selector, data, fn, one ) {
- var origFn, type;
-
- // Types can be a map of types/handlers
- if ( typeof types === "object" ) {
-
- // ( types-Object, selector, data )
- if ( typeof selector !== "string" ) {
-
- // ( types-Object, data )
- data = data || selector;
- selector = undefined;
- }
- for ( type in types ) {
- on( elem, type, selector, data, types[ type ], one );
- }
- return elem;
- }
-
- if ( data == null && fn == null ) {
-
- // ( types, fn )
- fn = selector;
- data = selector = undefined;
- } else if ( fn == null ) {
- if ( typeof selector === "string" ) {
-
- // ( types, selector, fn )
- fn = data;
- data = undefined;
- } else {
-
- // ( types, data, fn )
- fn = data;
- data = selector;
- selector = undefined;
- }
- }
- if ( fn === false ) {
- fn = returnFalse;
- } else if ( !fn ) {
- return elem;
- }
-
- if ( one === 1 ) {
- origFn = fn;
- fn = function( event ) {
-
- // Can use an empty set, since event contains the info
- jQuery().off( event );
- return origFn.apply( this, arguments );
- };
-
- // Use same guid so caller can remove using origFn
- fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
- }
- return elem.each( function() {
- jQuery.event.add( this, types, fn, data, selector );
- } );
-}
-
-/*
- * Helper functions for managing events -- not part of the public interface.
- * Props to Dean Edwards' addEvent library for many of the ideas.
- */
-jQuery.event = {
-
- global: {},
-
- add: function( elem, types, handler, data, selector ) {
-
- var handleObjIn, eventHandle, tmp,
- events, t, handleObj,
- special, handlers, type, namespaces, origType,
- elemData = dataPriv.get( elem );
-
- // Don't attach events to noData or text/comment nodes (but allow plain objects)
- if ( !elemData ) {
- return;
- }
-
- // Caller can pass in an object of custom data in lieu of the handler
- if ( handler.handler ) {
- handleObjIn = handler;
- handler = handleObjIn.handler;
- selector = handleObjIn.selector;
- }
-
- // Make sure that the handler has a unique ID, used to find/remove it later
- if ( !handler.guid ) {
- handler.guid = jQuery.guid++;
- }
-
- // Init the element's event structure and main handler, if this is the first
- if ( !( events = elemData.events ) ) {
- events = elemData.events = {};
- }
- if ( !( eventHandle = elemData.handle ) ) {
- eventHandle = elemData.handle = function( e ) {
-
- // Discard the second event of a jQuery.event.trigger() and
- // when an event is called after a page has unloaded
- return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
- jQuery.event.dispatch.apply( elem, arguments ) : undefined;
- };
- }
-
- // Handle multiple events separated by a space
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[ t ] ) || [];
- type = origType = tmp[ 1 ];
- namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
-
- // There *must* be a type, no attaching namespace-only handlers
- if ( !type ) {
- continue;
- }
-
- // If event changes its type, use the special event handlers for the changed type
- special = jQuery.event.special[ type ] || {};
-
- // If selector defined, determine special event api type, otherwise given type
- type = ( selector ? special.delegateType : special.bindType ) || type;
-
- // Update special based on newly reset type
- special = jQuery.event.special[ type ] || {};
-
- // handleObj is passed to all event handlers
- handleObj = jQuery.extend( {
- type: type,
- origType: origType,
- data: data,
- handler: handler,
- guid: handler.guid,
- selector: selector,
- needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
- namespace: namespaces.join( "." )
- }, handleObjIn );
-
- // Init the event handler queue if we're the first
- if ( !( handlers = events[ type ] ) ) {
- handlers = events[ type ] = [];
- handlers.delegateCount = 0;
-
- // Only use addEventListener if the special events handler returns false
- if ( !special.setup ||
- special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
-
- if ( elem.addEventListener ) {
- elem.addEventListener( type, eventHandle );
- }
- }
- }
-
- if ( special.add ) {
- special.add.call( elem, handleObj );
-
- if ( !handleObj.handler.guid ) {
- handleObj.handler.guid = handler.guid;
- }
- }
-
- // Add to the element's handler list, delegates in front
- if ( selector ) {
- handlers.splice( handlers.delegateCount++, 0, handleObj );
- } else {
- handlers.push( handleObj );
- }
-
- // Keep track of which events have ever been used, for event optimization
- jQuery.event.global[ type ] = true;
- }
-
- },
-
- // Detach an event or set of events from an element
- remove: function( elem, types, handler, selector, mappedTypes ) {
-
- var j, origCount, tmp,
- events, t, handleObj,
- special, handlers, type, namespaces, origType,
- elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
-
- if ( !elemData || !( events = elemData.events ) ) {
- return;
- }
-
- // Once for each type.namespace in types; type may be omitted
- types = ( types || "" ).match( rnotwhite ) || [ "" ];
- t = types.length;
- while ( t-- ) {
- tmp = rtypenamespace.exec( types[ t ] ) || [];
- type = origType = tmp[ 1 ];
- namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
-
- // Unbind all events (on this namespace, if provided) for the element
- if ( !type ) {
- for ( type in events ) {
- jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
- }
- continue;
- }
-
- special = jQuery.event.special[ type ] || {};
- type = ( selector ? special.delegateType : special.bindType ) || type;
- handlers = events[ type ] || [];
- tmp = tmp[ 2 ] &&
- new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
-
- // Remove matching events
- origCount = j = handlers.length;
- while ( j-- ) {
- handleObj = handlers[ j ];
-
- if ( ( mappedTypes || origType === handleObj.origType ) &&
- ( !handler || handler.guid === handleObj.guid ) &&
- ( !tmp || tmp.test( handleObj.namespace ) ) &&
- ( !selector || selector === handleObj.selector ||
- selector === "**" && handleObj.selector ) ) {
- handlers.splice( j, 1 );
-
- if ( handleObj.selector ) {
- handlers.delegateCount--;
- }
- if ( special.remove ) {
- special.remove.call( elem, handleObj );
- }
- }
- }
-
- // Remove generic event handler if we removed something and no more handlers exist
- // (avoids potential for endless recursion during removal of special event handlers)
- if ( origCount && !handlers.length ) {
- if ( !special.teardown ||
- special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
-
- jQuery.removeEvent( elem, type, elemData.handle );
- }
-
- delete events[ type ];
- }
- }
-
- // Remove data and the expando if it's no longer used
- if ( jQuery.isEmptyObject( events ) ) {
- dataPriv.remove( elem, "handle events" );
- }
- },
-
- dispatch: function( event ) {
-
- // Make a writable jQuery.Event from the native event object
- event = jQuery.event.fix( event );
-
- var i, j, ret, matched, handleObj,
- handlerQueue = [],
- args = slice.call( arguments ),
- handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
- special = jQuery.event.special[ event.type ] || {};
-
- // Use the fix-ed jQuery.Event rather than the (read-only) native event
- args[ 0 ] = event;
- event.delegateTarget = this;
-
- // Call the preDispatch hook for the mapped type, and let it bail if desired
- if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
- return;
- }
-
- // Determine handlers
- handlerQueue = jQuery.event.handlers.call( this, event, handlers );
-
- // Run delegates first; they may want to stop propagation beneath us
- i = 0;
- while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
- event.currentTarget = matched.elem;
-
- j = 0;
- while ( ( handleObj = matched.handlers[ j++ ] ) &&
- !event.isImmediatePropagationStopped() ) {
-
- // Triggered event must either 1) have no namespace, or 2) have namespace(s)
- // a subset or equal to those in the bound event (both can have no namespace).
- if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
-
- event.handleObj = handleObj;
- event.data = handleObj.data;
-
- ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
- handleObj.handler ).apply( matched.elem, args );
-
- if ( ret !== undefined ) {
- if ( ( event.result = ret ) === false ) {
- event.preventDefault();
- event.stopPropagation();
- }
- }
- }
- }
- }
-
- // Call the postDispatch hook for the mapped type
- if ( special.postDispatch ) {
- special.postDispatch.call( this, event );
- }
-
- return event.result;
- },
-
- handlers: function( event, handlers ) {
- var i, matches, sel, handleObj,
- handlerQueue = [],
- delegateCount = handlers.delegateCount,
- cur = event.target;
-
- // Support (at least): Chrome, IE9
- // Find delegate handlers
- // Black-hole SVG <use> instance trees (#13180)
- //
- // Support: Firefox<=42+
- // Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
- if ( delegateCount && cur.nodeType &&
- ( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {
-
- for ( ; cur !== this; cur = cur.parentNode || this ) {
-
- // Don't check non-elements (#13208)
- // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
- if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) {
- matches = [];
- for ( i = 0; i < delegateCount; i++ ) {
- handleObj = handlers[ i ];
-
- // Don't conflict with Object.prototype properties (#13203)
- sel = handleObj.selector + " ";
-
- if ( matches[ sel ] === undefined ) {
- matches[ sel ] = handleObj.needsContext ?
- jQuery( sel, this ).index( cur ) > -1 :
- jQuery.find( sel, this, null, [ cur ] ).length;
- }
- if ( matches[ sel ] ) {
- matches.push( handleObj );
- }
- }
- if ( matches.length ) {
- handlerQueue.push( { elem: cur, handlers: matches } );
- }
- }
- }
- }
-
- // Add the remaining (directly-bound) handlers
- if ( delegateCount < handlers.length ) {
- handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );
- }
-
- return handlerQueue;
- },
-
- // Includes some event props shared by KeyEvent and MouseEvent
- props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
- "metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ),
-
- fixHooks: {},
-
- keyHooks: {
- props: "char charCode key keyCode".split( " " ),
- filter: function( event, original ) {
-
- // Add which for key events
- if ( event.which == null ) {
- event.which = original.charCode != null ? original.charCode : original.keyCode;
- }
-
- return event;
- }
- },
-
- mouseHooks: {
- props: ( "button buttons clientX clientY offsetX offsetY pageX pageY " +
- "screenX screenY toElement" ).split( " " ),
- filter: function( event, original ) {
- var eventDoc, doc, body,
- button = original.button;
-
- // Calculate pageX/Y if missing and clientX/Y available
- if ( event.pageX == null && original.clientX != null ) {
- eventDoc = event.target.ownerDocument || document;
- doc = eventDoc.documentElement;
- body = eventDoc.body;
-
- event.pageX = original.clientX +
- ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -
- ( doc && doc.clientLeft || body && body.clientLeft || 0 );
- event.pageY = original.clientY +
- ( doc && doc.scrollTop || body && body.scrollTop || 0 ) -
- ( doc && doc.clientTop || body && body.clientTop || 0 );
- }
-
- // Add which for click: 1 === left; 2 === middle; 3 === right
- // Note: button is not normalized, so don't use it
- if ( !event.which && button !== undefined ) {
- event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
- }
-
- return event;
- }
- },
-
- fix: function( event ) {
- if ( event[ jQuery.expando ] ) {
- return event;
- }
-
- // Create a writable copy of the event object and normalize some properties
- var i, prop, copy,
- type = event.type,
- originalEvent = event,
- fixHook = this.fixHooks[ type ];
-
- if ( !fixHook ) {
- this.fixHooks[ type ] = fixHook =
- rmouseEvent.test( type ) ? this.mouseHooks :
- rkeyEvent.test( type ) ? this.keyHooks :
- {};
- }
- copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
-
- event = new jQuery.Event( originalEvent );
-
- i = copy.length;
- while ( i-- ) {
- prop = copy[ i ];
- event[ prop ] = originalEvent[ prop ];
- }
-
- // Support: Cordova 2.5 (WebKit) (#13255)
- // All events should have a target; Cordova deviceready doesn't
- if ( !event.target ) {
- event.target = document;
- }
-
- // Support: Safari 6.0+, Chrome<28
- // Target should not be a text node (#504, #13143)
- if ( event.target.nodeType === 3 ) {
- event.target = event.target.parentNode;
- }
-
- return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
- },
-
- special: {
- load: {
-
- // Prevent triggered image.load events from bubbling to window.load
- noBubble: true
- },
- focus: {
-
- // Fire native event if possible so blur/focus sequence is correct
- trigger: function() {
- if ( this !== safeActiveElement() && this.focus ) {
- this.focus();
- return false;
- }
- },
- delegateType: "focusin"
- },
- blur: {
- trigger: function() {
- if ( this === safeActiveElement() && this.blur ) {
- this.blur();
- return false;
- }
- },
- delegateType: "focusout"
- },
- click: {
-
- // For checkbox, fire native event so checked state will be right
- trigger: function() {
- if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
- this.click();
- return false;
- }
- },
-
- // For cross-browser consistency, don't fire native .click() on links
- _default: function( event ) {
- return jQuery.nodeName( event.target, "a" );
- }
- },
-
- beforeunload: {
- postDispatch: function( event ) {
-
- // Support: Firefox 20+
- // Firefox doesn't alert if the returnValue field is not set.
- if ( event.result !== undefined && event.originalEvent ) {
- event.originalEvent.returnValue = event.result;
- }
- }
- }
- }
-};
-
-jQuery.removeEvent = function( elem, type, handle ) {
-
- // This "if" is needed for plain objects
- if ( elem.removeEventListener ) {
- elem.removeEventListener( type, handle );
- }
-};
-
-jQuery.Event = function( src, props ) {
-
- // Allow instantiation without the 'new' keyword
- if ( !( this instanceof jQuery.Event ) ) {
- return new jQuery.Event( src, props );
- }
-
- // Event object
- if ( src && src.type ) {
- this.originalEvent = src;
- this.type = src.type;
-
- // Events bubbling up the document may have been marked as prevented
- // by a handler lower down the tree; reflect the correct value.
- this.isDefaultPrevented = src.defaultPrevented ||
- src.defaultPrevented === undefined &&
-
- // Support: Android<4.0
- src.returnValue === false ?
- returnTrue :
- returnFalse;
-
- // Event type
- } else {
- this.type = src;
- }
-
- // Put explicitly provided properties onto the event object
- if ( props ) {
- jQuery.extend( this, props );
- }
-
- // Create a timestamp if incoming event doesn't have one
- this.timeStamp = src && src.timeStamp || jQuery.now();
-
- // Mark it as fixed
- this[ jQuery.expando ] = true;
-};
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
- constructor: jQuery.Event,
- isDefaultPrevented: returnFalse,
- isPropagationStopped: returnFalse,
- isImmediatePropagationStopped: returnFalse,
-
- preventDefault: function() {
- var e = this.originalEvent;
-
- this.isDefaultPrevented = returnTrue;
-
- if ( e ) {
- e.preventDefault();
- }
- },
- stopPropagation: function() {
- var e = this.originalEvent;
-
- this.isPropagationStopped = returnTrue;
-
- if ( e ) {
- e.stopPropagation();
- }
- },
- stopImmediatePropagation: function() {
- var e = this.originalEvent;
-
- this.isImmediatePropagationStopped = returnTrue;
-
- if ( e ) {
- e.stopImmediatePropagation();
- }
-
- this.stopPropagation();
- }
-};
-
-// Create mouseenter/leave events using mouseover/out and event-time checks
-// so that event delegation works in jQuery.
-// Do the same for pointerenter/pointerleave and pointerover/pointerout
-//
-// Support: Safari 7 only
-// Safari sends mouseenter too often; see:
-// https://code.google.com/p/chromium/issues/detail?id=470258
-// for the description of the bug (it existed in older Chrome versions as well).
-jQuery.each( {
- mouseenter: "mouseover",
- mouseleave: "mouseout",
- pointerenter: "pointerover",
- pointerleave: "pointerout"
-}, function( orig, fix ) {
- jQuery.event.special[ orig ] = {
- delegateType: fix,
- bindType: fix,
-
- handle: function( event ) {
- var ret,
- target = this,
- related = event.relatedTarget,
- handleObj = event.handleObj;
-
- // For mouseenter/leave call the handler if related is outside the target.
- // NB: No relatedTarget if the mouse left/entered the browser window
- if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
- event.type = handleObj.origType;
- ret = handleObj.handler.apply( this, arguments );
- event.type = fix;
- }
- return ret;
- }
- };
-} );
-
-jQuery.fn.extend( {
- on: function( types, selector, data, fn ) {
- return on( this, types, selector, data, fn );
- },
- one: function( types, selector, data, fn ) {
- return on( this, types, selector, data, fn, 1 );
- },
- off: function( types, selector, fn ) {
- var handleObj, type;
- if ( types && types.preventDefault && types.handleObj ) {
-
- // ( event ) dispatched jQuery.Event
- handleObj = types.handleObj;
- jQuery( types.delegateTarget ).off(
- handleObj.namespace ?
- handleObj.origType + "." + handleObj.namespace :
- handleObj.origType,
- handleObj.selector,
- handleObj.handler
- );
- return this;
- }
- if ( typeof types === "object" ) {
-
- // ( types-object [, selector] )
- for ( type in types ) {
- this.off( type, selector, types[ type ] );
- }
- return this;
- }
- if ( selector === false || typeof selector === "function" ) {
-
- // ( types [, fn] )
- fn = selector;
- selector = undefined;
- }
- if ( fn === false ) {
- fn = returnFalse;
- }
- return this.each( function() {
- jQuery.event.remove( this, types, fn, selector );
- } );
- }
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/event/ajax.js b/libs/bower_components/jquery/src/event/ajax.js
deleted file mode 100644
index 98e194bf03..0000000000
--- a/libs/bower_components/jquery/src/event/ajax.js
+++ /dev/null
@@ -1,20 +0,0 @@
-define( [
- "../core",
- "../event"
-], function( jQuery ) {
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( [
- "ajaxStart",
- "ajaxStop",
- "ajaxComplete",
- "ajaxError",
- "ajaxSuccess",
- "ajaxSend"
-], function( i, type ) {
- jQuery.fn[ type ] = function( fn ) {
- return this.on( type, fn );
- };
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/event/alias.js b/libs/bower_components/jquery/src/event/alias.js
deleted file mode 100644
index 161c8935ef..0000000000
--- a/libs/bower_components/jquery/src/event/alias.js
+++ /dev/null
@@ -1,27 +0,0 @@
-define( [
- "../core",
-
- "../event",
- "./trigger"
-], function( jQuery ) {
-
-jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " +
- "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
- "change select submit keydown keypress keyup error contextmenu" ).split( " " ),
- function( i, name ) {
-
- // Handle event binding
- jQuery.fn[ name ] = function( data, fn ) {
- return arguments.length > 0 ?
- this.on( name, null, data, fn ) :
- this.trigger( name );
- };
-} );
-
-jQuery.fn.extend( {
- hover: function( fnOver, fnOut ) {
- return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
- }
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/event/focusin.js b/libs/bower_components/jquery/src/event/focusin.js
deleted file mode 100644
index ae7f831a86..0000000000
--- a/libs/bower_components/jquery/src/event/focusin.js
+++ /dev/null
@@ -1,53 +0,0 @@
-define( [
- "../core",
- "../data/var/dataPriv",
- "./support",
-
- "../event",
- "./trigger"
-], function( jQuery, dataPriv, support ) {
-
-// Support: Firefox
-// Firefox doesn't have focus(in | out) events
-// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
-//
-// Support: Chrome, Safari
-// focus(in | out) events fire after focus & blur events,
-// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
-// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857
-if ( !support.focusin ) {
- jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
-
- // Attach a single capturing handler on the document while someone wants focusin/focusout
- var handler = function( event ) {
- jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
- };
-
- jQuery.event.special[ fix ] = {
- setup: function() {
- var doc = this.ownerDocument || this,
- attaches = dataPriv.access( doc, fix );
-
- if ( !attaches ) {
- doc.addEventListener( orig, handler, true );
- }
- dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
- },
- teardown: function() {
- var doc = this.ownerDocument || this,
- attaches = dataPriv.access( doc, fix ) - 1;
-
- if ( !attaches ) {
- doc.removeEventListener( orig, handler, true );
- dataPriv.remove( doc, fix );
-
- } else {
- dataPriv.access( doc, fix, attaches );
- }
- }
- };
- } );
-}
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/event/support.js b/libs/bower_components/jquery/src/event/support.js
deleted file mode 100644
index 1c4d416e5a..0000000000
--- a/libs/bower_components/jquery/src/event/support.js
+++ /dev/null
@@ -1,9 +0,0 @@
-define( [
- "../var/support"
-], function( support ) {
-
-support.focusin = "onfocusin" in window;
-
-return support;
-
-} );
diff --git a/libs/bower_components/jquery/src/event/trigger.js b/libs/bower_components/jquery/src/event/trigger.js
deleted file mode 100644
index a6fac70ea9..0000000000
--- a/libs/bower_components/jquery/src/event/trigger.js
+++ /dev/null
@@ -1,199 +0,0 @@
-define( [
- "../core",
- "../var/document",
- "../data/var/dataPriv",
- "../data/var/acceptData",
- "../var/hasOwn",
-
- "../event"
-], function( jQuery, document, dataPriv, acceptData, hasOwn ) {
-
-var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
-
-jQuery.extend( jQuery.event, {
-
- trigger: function( event, data, elem, onlyHandlers ) {
-
- var i, cur, tmp, bubbleType, ontype, handle, special,
- eventPath = [ elem || document ],
- type = hasOwn.call( event, "type" ) ? event.type : event,
- namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
-
- cur = tmp = elem = elem || document;
-
- // Don't do events on text and comment nodes
- if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
- return;
- }
-
- // focus/blur morphs to focusin/out; ensure we're not firing them right now
- if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
- return;
- }
-
- if ( type.indexOf( "." ) > -1 ) {
-
- // Namespaced trigger; create a regexp to match event type in handle()
- namespaces = type.split( "." );
- type = namespaces.shift();
- namespaces.sort();
- }
- ontype = type.indexOf( ":" ) < 0 && "on" + type;
-
- // Caller can pass in a jQuery.Event object, Object, or just an event type string
- event = event[ jQuery.expando ] ?
- event :
- new jQuery.Event( type, typeof event === "object" && event );
-
- // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
- event.isTrigger = onlyHandlers ? 2 : 3;
- event.namespace = namespaces.join( "." );
- event.rnamespace = event.namespace ?
- new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
- null;
-
- // Clean up the event in case it is being reused
- event.result = undefined;
- if ( !event.target ) {
- event.target = elem;
- }
-
- // Clone any incoming data and prepend the event, creating the handler arg list
- data = data == null ?
- [ event ] :
- jQuery.makeArray( data, [ event ] );
-
- // Allow special events to draw outside the lines
- special = jQuery.event.special[ type ] || {};
- if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
- return;
- }
-
- // Determine event propagation path in advance, per W3C events spec (#9951)
- // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
- if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
-
- bubbleType = special.delegateType || type;
- if ( !rfocusMorph.test( bubbleType + type ) ) {
- cur = cur.parentNode;
- }
- for ( ; cur; cur = cur.parentNode ) {
- eventPath.push( cur );
- tmp = cur;
- }
-
- // Only add window if we got to document (e.g., not plain obj or detached DOM)
- if ( tmp === ( elem.ownerDocument || document ) ) {
- eventPath.push( tmp.defaultView || tmp.parentWindow || window );
- }
- }
-
- // Fire handlers on the event path
- i = 0;
- while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
-
- event.type = i > 1 ?
- bubbleType :
- special.bindType || type;
-
- // jQuery handler
- handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
- dataPriv.get( cur, "handle" );
- if ( handle ) {
- handle.apply( cur, data );
- }
-
- // Native handler
- handle = ontype && cur[ ontype ];
- if ( handle && handle.apply && acceptData( cur ) ) {
- event.result = handle.apply( cur, data );
- if ( event.result === false ) {
- event.preventDefault();
- }
- }
- }
- event.type = type;
-
- // If nobody prevented the default action, do it now
- if ( !onlyHandlers && !event.isDefaultPrevented() ) {
-
- if ( ( !special._default ||
- special._default.apply( eventPath.pop(), data ) === false ) &&
- acceptData( elem ) ) {
-
- // Call a native DOM method on the target with the same name name as the event.
- // Don't do default actions on window, that's where global variables be (#6170)
- if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
-
- // Don't re-trigger an onFOO event when we call its FOO() method
- tmp = elem[ ontype ];
-
- if ( tmp ) {
- elem[ ontype ] = null;
- }
-
- // Prevent re-triggering of the same event, since we already bubbled it above
- jQuery.event.triggered = type;
- elem[ type ]();
- jQuery.event.triggered = undefined;
-
- if ( tmp ) {
- elem[ ontype ] = tmp;
- }
- }
- }
- }
-
- return event.result;
- },
-
- // Piggyback on a donor event to simulate a different one
- simulate: function( type, elem, event ) {
- var e = jQuery.extend(
- new jQuery.Event(),
- event,
- {
- type: type,
- isSimulated: true
-
- // Previously, `originalEvent: {}` was set here, so stopPropagation call
- // would not be triggered on donor event, since in our own
- // jQuery.event.stopPropagation function we had a check for existence of
- // originalEvent.stopPropagation method, so, consequently it would be a noop.
- //
- // But now, this "simulate" function is used only for events
- // for which stopPropagation() is noop, so there is no need for that anymore.
- //
- // For the 1.x branch though, guard for "click" and "submit"
- // events is still used, but was moved to jQuery.event.stopPropagation function
- // because `originalEvent` should point to the original event for the constancy
- // with other events and for more focused logic
- }
- );
-
- jQuery.event.trigger( e, null, elem );
-
- if ( e.isDefaultPrevented() ) {
- event.preventDefault();
- }
- }
-
-} );
-
-jQuery.fn.extend( {
-
- trigger: function( type, data ) {
- return this.each( function() {
- jQuery.event.trigger( type, data, this );
- } );
- },
- triggerHandler: function( type, data ) {
- var elem = this[ 0 ];
- if ( elem ) {
- return jQuery.event.trigger( type, data, elem, true );
- }
- }
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/exports/amd.js b/libs/bower_components/jquery/src/exports/amd.js
deleted file mode 100644
index add6eb9bde..0000000000
--- a/libs/bower_components/jquery/src/exports/amd.js
+++ /dev/null
@@ -1,24 +0,0 @@
-define( [
- "../core"
-], function( jQuery ) {
-
-// Register as a named AMD module, since jQuery can be concatenated with other
-// files that may use define, but not via a proper concatenation script that
-// understands anonymous AMD modules. A named AMD is safest and most robust
-// way to register. Lowercase jquery is used because AMD module names are
-// derived from file names, and jQuery is normally delivered in a lowercase
-// file name. Do this after creating the global so that if an AMD module wants
-// to call noConflict to hide this version of jQuery, it will work.
-
-// Note that for maximum portability, libraries that are not jQuery should
-// declare themselves as anonymous modules, and avoid setting a global if an
-// AMD loader is present. jQuery is a special case. For more information, see
-// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
-
-if ( typeof define === "function" && define.amd ) {
- define( "jquery", [], function() {
- return jQuery;
- } );
-}
-
-} );
diff --git a/libs/bower_components/jquery/src/exports/global.js b/libs/bower_components/jquery/src/exports/global.js
deleted file mode 100644
index be9cbfb3ab..0000000000
--- a/libs/bower_components/jquery/src/exports/global.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var
-
- // Map over jQuery in case of overwrite
- _jQuery = window.jQuery,
-
- // Map over the $ in case of overwrite
- _$ = window.$;
-
-jQuery.noConflict = function( deep ) {
- if ( window.$ === jQuery ) {
- window.$ = _$;
- }
-
- if ( deep && window.jQuery === jQuery ) {
- window.jQuery = _jQuery;
- }
-
- return jQuery;
-};
-
-// Expose jQuery and $ identifiers, even in AMD
-// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
-// and CommonJS for browser emulators (#13566)
-if ( !noGlobal ) {
- window.jQuery = window.$ = jQuery;
-}
diff --git a/libs/bower_components/jquery/src/intro.js b/libs/bower_components/jquery/src/intro.js
deleted file mode 100644
index aab47c2d98..0000000000
--- a/libs/bower_components/jquery/src/intro.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/*!
- * jQuery JavaScript Library v@VERSION
- * http://jquery.com/
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: @DATE
- */
-
-(function( global, factory ) {
-
- if ( typeof module === "object" && typeof module.exports === "object" ) {
- // For CommonJS and CommonJS-like environments where a proper `window`
- // is present, execute the factory and get jQuery.
- // For environments that do not have a `window` with a `document`
- // (such as Node.js), expose a factory as module.exports.
- // This accentuates the need for the creation of a real `window`.
- // e.g. var jQuery = require("jquery")(window);
- // See ticket #14549 for more info.
- module.exports = global.document ?
- factory( global, true ) :
- function( w ) {
- if ( !w.document ) {
- throw new Error( "jQuery requires a window with a document" );
- }
- return factory( w );
- };
- } else {
- factory( global );
- }
-
-// Pass this if window is not defined yet
-}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
-
-// Support: Firefox 18+
-// Can't be in strict mode, several libs including ASP.NET trace
-// the stack via arguments.caller.callee and Firefox dies if
-// you try to trace through "use strict" call chains. (#13335)
-//"use strict";
diff --git a/libs/bower_components/jquery/src/jquery.js b/libs/bower_components/jquery/src/jquery.js
deleted file mode 100644
index 2faa9c3cda..0000000000
--- a/libs/bower_components/jquery/src/jquery.js
+++ /dev/null
@@ -1,37 +0,0 @@
-define( [
- "./core",
- "./selector",
- "./traversing",
- "./callbacks",
- "./deferred",
- "./core/ready",
- "./data",
- "./queue",
- "./queue/delay",
- "./attributes",
- "./event",
- "./event/alias",
- "./event/focusin",
- "./manipulation",
- "./manipulation/_evalUrl",
- "./wrap",
- "./css",
- "./css/hiddenVisibleSelectors",
- "./serialize",
- "./ajax",
- "./ajax/xhr",
- "./ajax/script",
- "./ajax/jsonp",
- "./ajax/load",
- "./event/ajax",
- "./effects",
- "./effects/animatedSelector",
- "./offset",
- "./dimensions",
- "./deprecated",
- "./exports/amd"
-], function( jQuery ) {
-
-return ( window.jQuery = window.$ = jQuery );
-
-} );
diff --git a/libs/bower_components/jquery/src/manipulation.js b/libs/bower_components/jquery/src/manipulation.js
deleted file mode 100644
index afd5091dda..0000000000
--- a/libs/bower_components/jquery/src/manipulation.js
+++ /dev/null
@@ -1,481 +0,0 @@
-define( [
- "./core",
- "./var/concat",
- "./var/push",
- "./core/access",
- "./manipulation/var/rcheckableType",
- "./manipulation/var/rtagName",
- "./manipulation/var/rscriptType",
- "./manipulation/wrapMap",
- "./manipulation/getAll",
- "./manipulation/setGlobalEval",
- "./manipulation/buildFragment",
- "./manipulation/support",
-
- "./data/var/dataPriv",
- "./data/var/dataUser",
- "./data/var/acceptData",
-
- "./core/init",
- "./traversing",
- "./selector",
- "./event"
-], function( jQuery, concat, push, access,
- rcheckableType, rtagName, rscriptType,
- wrapMap, getAll, setGlobalEval, buildFragment, support,
- dataPriv, dataUser, acceptData ) {
-
-var
- rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
-
- // Support: IE 10-11, Edge 10240+
- // In IE/Edge using regex groups here causes severe slowdowns.
- // See https://connect.microsoft.com/IE/feedback/details/1736512/
- rnoInnerhtml = /<script|<style|<link/i,
-
- // checked="checked" or checked
- rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
- rscriptTypeMasked = /^true\/(.*)/,
- rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
-
-// Manipulating tables requires a tbody
-function manipulationTarget( elem, content ) {
- return jQuery.nodeName( elem, "table" ) &&
- jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
-
- elem.getElementsByTagName( "tbody" )[ 0 ] ||
- elem.appendChild( elem.ownerDocument.createElement( "tbody" ) ) :
- elem;
-}
-
-// Replace/restore the type attribute of script elements for safe DOM manipulation
-function disableScript( elem ) {
- elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
- return elem;
-}
-function restoreScript( elem ) {
- var match = rscriptTypeMasked.exec( elem.type );
-
- if ( match ) {
- elem.type = match[ 1 ];
- } else {
- elem.removeAttribute( "type" );
- }
-
- return elem;
-}
-
-function cloneCopyEvent( src, dest ) {
- var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
-
- if ( dest.nodeType !== 1 ) {
- return;
- }
-
- // 1. Copy private data: events, handlers, etc.
- if ( dataPriv.hasData( src ) ) {
- pdataOld = dataPriv.access( src );
- pdataCur = dataPriv.set( dest, pdataOld );
- events = pdataOld.events;
-
- if ( events ) {
- delete pdataCur.handle;
- pdataCur.events = {};
-
- for ( type in events ) {
- for ( i = 0, l = events[ type ].length; i < l; i++ ) {
- jQuery.event.add( dest, type, events[ type ][ i ] );
- }
- }
- }
- }
-
- // 2. Copy user data
- if ( dataUser.hasData( src ) ) {
- udataOld = dataUser.access( src );
- udataCur = jQuery.extend( {}, udataOld );
-
- dataUser.set( dest, udataCur );
- }
-}
-
-// Fix IE bugs, see support tests
-function fixInput( src, dest ) {
- var nodeName = dest.nodeName.toLowerCase();
-
- // Fails to persist the checked state of a cloned checkbox or radio button.
- if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
- dest.checked = src.checked;
-
- // Fails to return the selected option to the default selected state when cloning options
- } else if ( nodeName === "input" || nodeName === "textarea" ) {
- dest.defaultValue = src.defaultValue;
- }
-}
-
-function domManip( collection, args, callback, ignored ) {
-
- // Flatten any nested arrays
- args = concat.apply( [], args );
-
- var fragment, first, scripts, hasScripts, node, doc,
- i = 0,
- l = collection.length,
- iNoClone = l - 1,
- value = args[ 0 ],
- isFunction = jQuery.isFunction( value );
-
- // We can't cloneNode fragments that contain checked, in WebKit
- if ( isFunction ||
- ( l > 1 && typeof value === "string" &&
- !support.checkClone && rchecked.test( value ) ) ) {
- return collection.each( function( index ) {
- var self = collection.eq( index );
- if ( isFunction ) {
- args[ 0 ] = value.call( this, index, self.html() );
- }
- domManip( self, args, callback, ignored );
- } );
- }
-
- if ( l ) {
- fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
- first = fragment.firstChild;
-
- if ( fragment.childNodes.length === 1 ) {
- fragment = first;
- }
-
- // Require either new content or an interest in ignored elements to invoke the callback
- if ( first || ignored ) {
- scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
- hasScripts = scripts.length;
-
- // Use the original fragment for the last item
- // instead of the first because it can end up
- // being emptied incorrectly in certain situations (#8070).
- for ( ; i < l; i++ ) {
- node = fragment;
-
- if ( i !== iNoClone ) {
- node = jQuery.clone( node, true, true );
-
- // Keep references to cloned scripts for later restoration
- if ( hasScripts ) {
-
- // Support: Android<4.1, PhantomJS<2
- // push.apply(_, arraylike) throws on ancient WebKit
- jQuery.merge( scripts, getAll( node, "script" ) );
- }
- }
-
- callback.call( collection[ i ], node, i );
- }
-
- if ( hasScripts ) {
- doc = scripts[ scripts.length - 1 ].ownerDocument;
-
- // Reenable scripts
- jQuery.map( scripts, restoreScript );
-
- // Evaluate executable scripts on first document insertion
- for ( i = 0; i < hasScripts; i++ ) {
- node = scripts[ i ];
- if ( rscriptType.test( node.type || "" ) &&
- !dataPriv.access( node, "globalEval" ) &&
- jQuery.contains( doc, node ) ) {
-
- if ( node.src ) {
-
- // Optional AJAX dependency, but won't run scripts if not present
- if ( jQuery._evalUrl ) {
- jQuery._evalUrl( node.src );
- }
- } else {
- jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
- }
- }
- }
- }
- }
- }
-
- return collection;
-}
-
-function remove( elem, selector, keepData ) {
- var node,
- nodes = selector ? jQuery.filter( selector, elem ) : elem,
- i = 0;
-
- for ( ; ( node = nodes[ i ] ) != null; i++ ) {
- if ( !keepData && node.nodeType === 1 ) {
- jQuery.cleanData( getAll( node ) );
- }
-
- if ( node.parentNode ) {
- if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
- setGlobalEval( getAll( node, "script" ) );
- }
- node.parentNode.removeChild( node );
- }
- }
-
- return elem;
-}
-
-jQuery.extend( {
- htmlPrefilter: function( html ) {
- return html.replace( rxhtmlTag, "<$1></$2>" );
- },
-
- clone: function( elem, dataAndEvents, deepDataAndEvents ) {
- var i, l, srcElements, destElements,
- clone = elem.cloneNode( true ),
- inPage = jQuery.contains( elem.ownerDocument, elem );
-
- // Fix IE cloning issues
- if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
- !jQuery.isXMLDoc( elem ) ) {
-
- // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
- destElements = getAll( clone );
- srcElements = getAll( elem );
-
- for ( i = 0, l = srcElements.length; i < l; i++ ) {
- fixInput( srcElements[ i ], destElements[ i ] );
- }
- }
-
- // Copy the events from the original to the clone
- if ( dataAndEvents ) {
- if ( deepDataAndEvents ) {
- srcElements = srcElements || getAll( elem );
- destElements = destElements || getAll( clone );
-
- for ( i = 0, l = srcElements.length; i < l; i++ ) {
- cloneCopyEvent( srcElements[ i ], destElements[ i ] );
- }
- } else {
- cloneCopyEvent( elem, clone );
- }
- }
-
- // Preserve script evaluation history
- destElements = getAll( clone, "script" );
- if ( destElements.length > 0 ) {
- setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
- }
-
- // Return the cloned set
- return clone;
- },
-
- cleanData: function( elems ) {
- var data, elem, type,
- special = jQuery.event.special,
- i = 0;
-
- for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
- if ( acceptData( elem ) ) {
- if ( ( data = elem[ dataPriv.expando ] ) ) {
- if ( data.events ) {
- for ( type in data.events ) {
- if ( special[ type ] ) {
- jQuery.event.remove( elem, type );
-
- // This is a shortcut to avoid jQuery.event.remove's overhead
- } else {
- jQuery.removeEvent( elem, type, data.handle );
- }
- }
- }
-
- // Support: Chrome <= 35-45+
- // Assign undefined instead of using delete, see Data#remove
- elem[ dataPriv.expando ] = undefined;
- }
- if ( elem[ dataUser.expando ] ) {
-
- // Support: Chrome <= 35-45+
- // Assign undefined instead of using delete, see Data#remove
- elem[ dataUser.expando ] = undefined;
- }
- }
- }
- }
-} );
-
-jQuery.fn.extend( {
-
- // Keep domManip exposed until 3.0 (gh-2225)
- domManip: domManip,
-
- detach: function( selector ) {
- return remove( this, selector, true );
- },
-
- remove: function( selector ) {
- return remove( this, selector );
- },
-
- text: function( value ) {
- return access( this, function( value ) {
- return value === undefined ?
- jQuery.text( this ) :
- this.empty().each( function() {
- if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
- this.textContent = value;
- }
- } );
- }, null, value, arguments.length );
- },
-
- append: function() {
- return domManip( this, arguments, function( elem ) {
- if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
- var target = manipulationTarget( this, elem );
- target.appendChild( elem );
- }
- } );
- },
-
- prepend: function() {
- return domManip( this, arguments, function( elem ) {
- if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
- var target = manipulationTarget( this, elem );
- target.insertBefore( elem, target.firstChild );
- }
- } );
- },
-
- before: function() {
- return domManip( this, arguments, function( elem ) {
- if ( this.parentNode ) {
- this.parentNode.insertBefore( elem, this );
- }
- } );
- },
-
- after: function() {
- return domManip( this, arguments, function( elem ) {
- if ( this.parentNode ) {
- this.parentNode.insertBefore( elem, this.nextSibling );
- }
- } );
- },
-
- empty: function() {
- var elem,
- i = 0;
-
- for ( ; ( elem = this[ i ] ) != null; i++ ) {
- if ( elem.nodeType === 1 ) {
-
- // Prevent memory leaks
- jQuery.cleanData( getAll( elem, false ) );
-
- // Remove any remaining nodes
- elem.textContent = "";
- }
- }
-
- return this;
- },
-
- clone: function( dataAndEvents, deepDataAndEvents ) {
- dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
- deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
-
- return this.map( function() {
- return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
- } );
- },
-
- html: function( value ) {
- return access( this, function( value ) {
- var elem = this[ 0 ] || {},
- i = 0,
- l = this.length;
-
- if ( value === undefined && elem.nodeType === 1 ) {
- return elem.innerHTML;
- }
-
- // See if we can take a shortcut and just use innerHTML
- if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
- !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
-
- value = jQuery.htmlPrefilter( value );
-
- try {
- for ( ; i < l; i++ ) {
- elem = this[ i ] || {};
-
- // Remove element nodes and prevent memory leaks
- if ( elem.nodeType === 1 ) {
- jQuery.cleanData( getAll( elem, false ) );
- elem.innerHTML = value;
- }
- }
-
- elem = 0;
-
- // If using innerHTML throws an exception, use the fallback method
- } catch ( e ) {}
- }
-
- if ( elem ) {
- this.empty().append( value );
- }
- }, null, value, arguments.length );
- },
-
- replaceWith: function() {
- var ignored = [];
-
- // Make the changes, replacing each non-ignored context element with the new content
- return domManip( this, arguments, function( elem ) {
- var parent = this.parentNode;
-
- if ( jQuery.inArray( this, ignored ) < 0 ) {
- jQuery.cleanData( getAll( this ) );
- if ( parent ) {
- parent.replaceChild( elem, this );
- }
- }
-
- // Force callback invocation
- }, ignored );
- }
-} );
-
-jQuery.each( {
- appendTo: "append",
- prependTo: "prepend",
- insertBefore: "before",
- insertAfter: "after",
- replaceAll: "replaceWith"
-}, function( name, original ) {
- jQuery.fn[ name ] = function( selector ) {
- var elems,
- ret = [],
- insert = jQuery( selector ),
- last = insert.length - 1,
- i = 0;
-
- for ( ; i <= last; i++ ) {
- elems = i === last ? this : this.clone( true );
- jQuery( insert[ i ] )[ original ]( elems );
-
- // Support: QtWebKit
- // .get() because push.apply(_, arraylike) throws
- push.apply( ret, elems.get() );
- }
-
- return this.pushStack( ret );
- };
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/_evalUrl.js b/libs/bower_components/jquery/src/manipulation/_evalUrl.js
deleted file mode 100644
index 85ca2c62a4..0000000000
--- a/libs/bower_components/jquery/src/manipulation/_evalUrl.js
+++ /dev/null
@@ -1,20 +0,0 @@
-define( [
- "../ajax"
-], function( jQuery ) {
-
-jQuery._evalUrl = function( url ) {
- return jQuery.ajax( {
- url: url,
-
- // Make this explicit, since user can override this through ajaxSetup (#11264)
- type: "GET",
- dataType: "script",
- async: false,
- global: false,
- "throws": true
- } );
-};
-
-return jQuery._evalUrl;
-
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/buildFragment.js b/libs/bower_components/jquery/src/manipulation/buildFragment.js
deleted file mode 100644
index cfdd1c0e67..0000000000
--- a/libs/bower_components/jquery/src/manipulation/buildFragment.js
+++ /dev/null
@@ -1,102 +0,0 @@
-define( [
- "../core",
- "./var/rtagName",
- "./var/rscriptType",
- "./wrapMap",
- "./getAll",
- "./setGlobalEval"
-], function( jQuery, rtagName, rscriptType, wrapMap, getAll, setGlobalEval ) {
-
-var rhtml = /<|&#?\w+;/;
-
-function buildFragment( elems, context, scripts, selection, ignored ) {
- var elem, tmp, tag, wrap, contains, j,
- fragment = context.createDocumentFragment(),
- nodes = [],
- i = 0,
- l = elems.length;
-
- for ( ; i < l; i++ ) {
- elem = elems[ i ];
-
- if ( elem || elem === 0 ) {
-
- // Add nodes directly
- if ( jQuery.type( elem ) === "object" ) {
-
- // Support: Android<4.1, PhantomJS<2
- // push.apply(_, arraylike) throws on ancient WebKit
- jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
-
- // Convert non-html into a text node
- } else if ( !rhtml.test( elem ) ) {
- nodes.push( context.createTextNode( elem ) );
-
- // Convert html into DOM nodes
- } else {
- tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
-
- // Deserialize a standard representation
- tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
- wrap = wrapMap[ tag ] || wrapMap._default;
- tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
-
- // Descend through wrappers to the right content
- j = wrap[ 0 ];
- while ( j-- ) {
- tmp = tmp.lastChild;
- }
-
- // Support: Android<4.1, PhantomJS<2
- // push.apply(_, arraylike) throws on ancient WebKit
- jQuery.merge( nodes, tmp.childNodes );
-
- // Remember the top-level container
- tmp = fragment.firstChild;
-
- // Ensure the created nodes are orphaned (#12392)
- tmp.textContent = "";
- }
- }
- }
-
- // Remove wrapper from fragment
- fragment.textContent = "";
-
- i = 0;
- while ( ( elem = nodes[ i++ ] ) ) {
-
- // Skip elements already in the context collection (trac-4087)
- if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
- if ( ignored ) {
- ignored.push( elem );
- }
- continue;
- }
-
- contains = jQuery.contains( elem.ownerDocument, elem );
-
- // Append to fragment
- tmp = getAll( fragment.appendChild( elem ), "script" );
-
- // Preserve script evaluation history
- if ( contains ) {
- setGlobalEval( tmp );
- }
-
- // Capture executables
- if ( scripts ) {
- j = 0;
- while ( ( elem = tmp[ j++ ] ) ) {
- if ( rscriptType.test( elem.type || "" ) ) {
- scripts.push( elem );
- }
- }
- }
- }
-
- return fragment;
-}
-
-return buildFragment;
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/createSafeFragment.js b/libs/bower_components/jquery/src/manipulation/createSafeFragment.js
deleted file mode 100644
index 5b766d4358..0000000000
--- a/libs/bower_components/jquery/src/manipulation/createSafeFragment.js
+++ /dev/null
@@ -1,20 +0,0 @@
-define( [
- "./var/nodeNames"
-], function( nodeNames ) {
-
-function createSafeFragment( document ) {
- var list = nodeNames.split( "|" ),
- safeFrag = document.createDocumentFragment();
-
- if ( safeFrag.createElement ) {
- while ( list.length ) {
- safeFrag.createElement(
- list.pop()
- );
- }
- }
- return safeFrag;
-}
-
-return createSafeFragment;
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/getAll.js b/libs/bower_components/jquery/src/manipulation/getAll.js
deleted file mode 100644
index cc913f29ee..0000000000
--- a/libs/bower_components/jquery/src/manipulation/getAll.js
+++ /dev/null
@@ -1,21 +0,0 @@
-define( [
- "../core"
-], function( jQuery ) {
-
-function getAll( context, tag ) {
-
- // Support: IE9-11+
- // Use typeof to avoid zero-argument method invocation on host objects (#15151)
- var ret = typeof context.getElementsByTagName !== "undefined" ?
- context.getElementsByTagName( tag || "*" ) :
- typeof context.querySelectorAll !== "undefined" ?
- context.querySelectorAll( tag || "*" ) :
- [];
-
- return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
- jQuery.merge( [ context ], ret ) :
- ret;
-}
-
-return getAll;
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/setGlobalEval.js b/libs/bower_components/jquery/src/manipulation/setGlobalEval.js
deleted file mode 100644
index 8ca69a03ad..0000000000
--- a/libs/bower_components/jquery/src/manipulation/setGlobalEval.js
+++ /dev/null
@@ -1,20 +0,0 @@
-define( [
- "../data/var/dataPriv"
-], function( dataPriv ) {
-
-// Mark scripts as having already been evaluated
-function setGlobalEval( elems, refElements ) {
- var i = 0,
- l = elems.length;
-
- for ( ; i < l; i++ ) {
- dataPriv.set(
- elems[ i ],
- "globalEval",
- !refElements || dataPriv.get( refElements[ i ], "globalEval" )
- );
- }
-}
-
-return setGlobalEval;
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/support.js b/libs/bower_components/jquery/src/manipulation/support.js
deleted file mode 100644
index cd4081ebb2..0000000000
--- a/libs/bower_components/jquery/src/manipulation/support.js
+++ /dev/null
@@ -1,33 +0,0 @@
-define( [
- "../var/document",
- "../var/support"
-], function( document, support ) {
-
-( function() {
- var fragment = document.createDocumentFragment(),
- div = fragment.appendChild( document.createElement( "div" ) ),
- input = document.createElement( "input" );
-
- // Support: Android 4.0-4.3, Safari<=5.1
- // Check state lost if the name is set (#11217)
- // Support: Windows Web Apps (WWA)
- // `name` and `type` must use .setAttribute for WWA (#14901)
- input.setAttribute( "type", "radio" );
- input.setAttribute( "checked", "checked" );
- input.setAttribute( "name", "t" );
-
- div.appendChild( input );
-
- // Support: Safari<=5.1, Android<4.2
- // Older WebKit doesn't clone checked state correctly in fragments
- support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
- // Support: IE<=11+
- // Make sure textarea (and checkbox) defaultValue is properly cloned
- div.innerHTML = "<textarea>x</textarea>";
- support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
-} )();
-
-return support;
-
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/var/nodeNames.js b/libs/bower_components/jquery/src/manipulation/var/nodeNames.js
deleted file mode 100644
index 05bb604f47..0000000000
--- a/libs/bower_components/jquery/src/manipulation/var/nodeNames.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( function() {
- return "abbr|article|aside|audio|bdi|canvas|data|datalist|" +
- "details|dialog|figcaption|figure|footer|header|hgroup|main|" +
- "mark|meter|nav|output|picture|progress|section|summary|template|time|video";
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/var/rcheckableType.js b/libs/bower_components/jquery/src/manipulation/var/rcheckableType.js
deleted file mode 100644
index 4c95394ac0..0000000000
--- a/libs/bower_components/jquery/src/manipulation/var/rcheckableType.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return ( /^(?:checkbox|radio)$/i );
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js b/libs/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js
deleted file mode 100644
index 96ef95f311..0000000000
--- a/libs/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return ( /^\s+/ );
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/var/rscriptType.js b/libs/bower_components/jquery/src/manipulation/var/rscriptType.js
deleted file mode 100644
index 0c77c8a583..0000000000
--- a/libs/bower_components/jquery/src/manipulation/var/rscriptType.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return ( /^$|\/(?:java|ecma)script/i );
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/var/rtagName.js b/libs/bower_components/jquery/src/manipulation/var/rtagName.js
deleted file mode 100644
index 9e542694a7..0000000000
--- a/libs/bower_components/jquery/src/manipulation/var/rtagName.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return ( /<([\w:-]+)/ );
-} );
diff --git a/libs/bower_components/jquery/src/manipulation/wrapMap.js b/libs/bower_components/jquery/src/manipulation/wrapMap.js
deleted file mode 100644
index fdb430a03b..0000000000
--- a/libs/bower_components/jquery/src/manipulation/wrapMap.js
+++ /dev/null
@@ -1,27 +0,0 @@
-define( function() {
-
-// We have to close these tags to support XHTML (#13200)
-var wrapMap = {
-
- // Support: IE9
- option: [ 1, "<select multiple='multiple'>", "</select>" ],
-
- // XHTML parsers do not magically insert elements in the
- // same way that tag soup parsers do. So we cannot shorten
- // this by omitting <tbody> or other required elements.
- thead: [ 1, "<table>", "</table>" ],
- col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
- tr: [ 2, "<table><tbody>", "</tbody></table>" ],
- td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
-
- _default: [ 0, "", "" ]
-};
-
-// Support: IE9
-wrapMap.optgroup = wrapMap.option;
-
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-return wrapMap;
-} );
diff --git a/libs/bower_components/jquery/src/offset.js b/libs/bower_components/jquery/src/offset.js
deleted file mode 100644
index 08a4543e43..0000000000
--- a/libs/bower_components/jquery/src/offset.js
+++ /dev/null
@@ -1,218 +0,0 @@
-define( [
- "./core",
- "./core/access",
- "./var/document",
- "./var/documentElement",
- "./css/var/rnumnonpx",
- "./css/curCSS",
- "./css/addGetHookIf",
- "./css/support",
-
- "./core/init",
- "./css",
- "./selector" // contains
-], function( jQuery, access, document, documentElement, rnumnonpx, curCSS, addGetHookIf, support ) {
-
-/**
- * Gets a window from an element
- */
-function getWindow( elem ) {
- return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
-}
-
-jQuery.offset = {
- setOffset: function( elem, options, i ) {
- var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
- position = jQuery.css( elem, "position" ),
- curElem = jQuery( elem ),
- props = {};
-
- // Set position first, in-case top/left are set even on static elem
- if ( position === "static" ) {
- elem.style.position = "relative";
- }
-
- curOffset = curElem.offset();
- curCSSTop = jQuery.css( elem, "top" );
- curCSSLeft = jQuery.css( elem, "left" );
- calculatePosition = ( position === "absolute" || position === "fixed" ) &&
- ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
-
- // Need to be able to calculate position if either
- // top or left is auto and position is either absolute or fixed
- if ( calculatePosition ) {
- curPosition = curElem.position();
- curTop = curPosition.top;
- curLeft = curPosition.left;
-
- } else {
- curTop = parseFloat( curCSSTop ) || 0;
- curLeft = parseFloat( curCSSLeft ) || 0;
- }
-
- if ( jQuery.isFunction( options ) ) {
-
- // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
- options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
- }
-
- if ( options.top != null ) {
- props.top = ( options.top - curOffset.top ) + curTop;
- }
- if ( options.left != null ) {
- props.left = ( options.left - curOffset.left ) + curLeft;
- }
-
- if ( "using" in options ) {
- options.using.call( elem, props );
-
- } else {
- curElem.css( props );
- }
- }
-};
-
-jQuery.fn.extend( {
- offset: function( options ) {
- if ( arguments.length ) {
- return options === undefined ?
- this :
- this.each( function( i ) {
- jQuery.offset.setOffset( this, options, i );
- } );
- }
-
- var docElem, win,
- elem = this[ 0 ],
- box = { top: 0, left: 0 },
- doc = elem && elem.ownerDocument;
-
- if ( !doc ) {
- return;
- }
-
- docElem = doc.documentElement;
-
- // Make sure it's not a disconnected DOM node
- if ( !jQuery.contains( docElem, elem ) ) {
- return box;
- }
-
- box = elem.getBoundingClientRect();
- win = getWindow( doc );
- return {
- top: box.top + win.pageYOffset - docElem.clientTop,
- left: box.left + win.pageXOffset - docElem.clientLeft
- };
- },
-
- position: function() {
- if ( !this[ 0 ] ) {
- return;
- }
-
- var offsetParent, offset,
- elem = this[ 0 ],
- parentOffset = { top: 0, left: 0 };
-
- // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
- // because it is its only offset parent
- if ( jQuery.css( elem, "position" ) === "fixed" ) {
-
- // Assume getBoundingClientRect is there when computed position is fixed
- offset = elem.getBoundingClientRect();
-
- } else {
-
- // Get *real* offsetParent
- offsetParent = this.offsetParent();
-
- // Get correct offsets
- offset = this.offset();
- if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
- parentOffset = offsetParent.offset();
- }
-
- // Add offsetParent borders
- parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
- parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
- }
-
- // Subtract parent offsets and element margins
- return {
- top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
- left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
- };
- },
-
- // This method will return documentElement in the following cases:
- // 1) For the element inside the iframe without offsetParent, this method will return
- // documentElement of the parent window
- // 2) For the hidden or detached element
- // 3) For body or html element, i.e. in case of the html node - it will return itself
- //
- // but those exceptions were never presented as a real life use-cases
- // and might be considered as more preferable results.
- //
- // This logic, however, is not guaranteed and can change at any point in the future
- offsetParent: function() {
- return this.map( function() {
- var offsetParent = this.offsetParent;
-
- while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
- offsetParent = offsetParent.offsetParent;
- }
-
- return offsetParent || documentElement;
- } );
- }
-} );
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
- var top = "pageYOffset" === prop;
-
- jQuery.fn[ method ] = function( val ) {
- return access( this, function( elem, method, val ) {
- var win = getWindow( elem );
-
- if ( val === undefined ) {
- return win ? win[ prop ] : elem[ method ];
- }
-
- if ( win ) {
- win.scrollTo(
- !top ? val : win.pageXOffset,
- top ? val : win.pageYOffset
- );
-
- } else {
- elem[ method ] = val;
- }
- }, method, val, arguments.length );
- };
-} );
-
-// Support: Safari<7-8+, Chrome<37-44+
-// Add the top/left cssHooks using jQuery.fn.position
-// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
-// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280
-// getComputedStyle returns percent when specified for top/left/bottom/right;
-// rather than make the css module depend on the offset module, just check for it here
-jQuery.each( [ "top", "left" ], function( i, prop ) {
- jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
- function( elem, computed ) {
- if ( computed ) {
- computed = curCSS( elem, prop );
-
- // If curCSS returns percentage, fallback to offset
- return rnumnonpx.test( computed ) ?
- jQuery( elem ).position()[ prop ] + "px" :
- computed;
- }
- }
- );
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/outro.js b/libs/bower_components/jquery/src/outro.js
deleted file mode 100644
index d792ffb58f..0000000000
--- a/libs/bower_components/jquery/src/outro.js
+++ /dev/null
@@ -1,2 +0,0 @@
-return jQuery;
-}));
diff --git a/libs/bower_components/jquery/src/queue.js b/libs/bower_components/jquery/src/queue.js
deleted file mode 100644
index 813c41cd3b..0000000000
--- a/libs/bower_components/jquery/src/queue.js
+++ /dev/null
@@ -1,143 +0,0 @@
-define( [
- "./core",
- "./data/var/dataPriv",
- "./deferred",
- "./callbacks"
-], function( jQuery, dataPriv ) {
-
-jQuery.extend( {
- queue: function( elem, type, data ) {
- var queue;
-
- if ( elem ) {
- type = ( type || "fx" ) + "queue";
- queue = dataPriv.get( elem, type );
-
- // Speed up dequeue by getting out quickly if this is just a lookup
- if ( data ) {
- if ( !queue || jQuery.isArray( data ) ) {
- queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
- } else {
- queue.push( data );
- }
- }
- return queue || [];
- }
- },
-
- dequeue: function( elem, type ) {
- type = type || "fx";
-
- var queue = jQuery.queue( elem, type ),
- startLength = queue.length,
- fn = queue.shift(),
- hooks = jQuery._queueHooks( elem, type ),
- next = function() {
- jQuery.dequeue( elem, type );
- };
-
- // If the fx queue is dequeued, always remove the progress sentinel
- if ( fn === "inprogress" ) {
- fn = queue.shift();
- startLength--;
- }
-
- if ( fn ) {
-
- // Add a progress sentinel to prevent the fx queue from being
- // automatically dequeued
- if ( type === "fx" ) {
- queue.unshift( "inprogress" );
- }
-
- // Clear up the last queue stop function
- delete hooks.stop;
- fn.call( elem, next, hooks );
- }
-
- if ( !startLength && hooks ) {
- hooks.empty.fire();
- }
- },
-
- // Not public - generate a queueHooks object, or return the current one
- _queueHooks: function( elem, type ) {
- var key = type + "queueHooks";
- return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
- empty: jQuery.Callbacks( "once memory" ).add( function() {
- dataPriv.remove( elem, [ type + "queue", key ] );
- } )
- } );
- }
-} );
-
-jQuery.fn.extend( {
- queue: function( type, data ) {
- var setter = 2;
-
- if ( typeof type !== "string" ) {
- data = type;
- type = "fx";
- setter--;
- }
-
- if ( arguments.length < setter ) {
- return jQuery.queue( this[ 0 ], type );
- }
-
- return data === undefined ?
- this :
- this.each( function() {
- var queue = jQuery.queue( this, type, data );
-
- // Ensure a hooks for this queue
- jQuery._queueHooks( this, type );
-
- if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
- jQuery.dequeue( this, type );
- }
- } );
- },
- dequeue: function( type ) {
- return this.each( function() {
- jQuery.dequeue( this, type );
- } );
- },
- clearQueue: function( type ) {
- return this.queue( type || "fx", [] );
- },
-
- // Get a promise resolved when queues of a certain type
- // are emptied (fx is the type by default)
- promise: function( type, obj ) {
- var tmp,
- count = 1,
- defer = jQuery.Deferred(),
- elements = this,
- i = this.length,
- resolve = function() {
- if ( !( --count ) ) {
- defer.resolveWith( elements, [ elements ] );
- }
- };
-
- if ( typeof type !== "string" ) {
- obj = type;
- type = undefined;
- }
- type = type || "fx";
-
- while ( i-- ) {
- tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
- if ( tmp && tmp.empty ) {
- count++;
- tmp.empty.add( resolve );
- }
- }
- resolve();
- return defer.promise( obj );
- }
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/queue/delay.js b/libs/bower_components/jquery/src/queue/delay.js
deleted file mode 100644
index 8d5844d6b4..0000000000
--- a/libs/bower_components/jquery/src/queue/delay.js
+++ /dev/null
@@ -1,22 +0,0 @@
-define( [
- "../core",
- "../queue",
- "../effects" // Delay is optional because of this dependency
-], function( jQuery ) {
-
-// Based off of the plugin by Clint Helfers, with permission.
-// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
-jQuery.fn.delay = function( time, type ) {
- time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
- type = type || "fx";
-
- return this.queue( type, function( next, hooks ) {
- var timeout = window.setTimeout( next, time );
- hooks.stop = function() {
- window.clearTimeout( timeout );
- };
- } );
-};
-
-return jQuery.fn.delay;
-} );
diff --git a/libs/bower_components/jquery/src/selector-native.js b/libs/bower_components/jquery/src/selector-native.js
deleted file mode 100644
index ee81483426..0000000000
--- a/libs/bower_components/jquery/src/selector-native.js
+++ /dev/null
@@ -1,211 +0,0 @@
-define( [
- "./core",
- "./var/document",
- "./var/documentElement",
- "./var/hasOwn",
- "./var/indexOf"
-], function( jQuery, document, documentElement, hasOwn, indexOf ) {
-
-/*
- * Optional (non-Sizzle) selector module for custom builds.
- *
- * Note that this DOES NOT SUPPORT many documented jQuery
- * features in exchange for its smaller size:
- *
- * Attribute not equal selector
- * Positional selectors (:first; :eq(n); :odd; etc.)
- * Type selectors (:input; :checkbox; :button; etc.)
- * State-based selectors (:animated; :visible; :hidden; etc.)
- * :has(selector)
- * :not(complex selector)
- * custom selectors via Sizzle extensions
- * Leading combinators (e.g., $collection.find("> *"))
- * Reliable functionality on XML fragments
- * Requiring all parts of a selector to match elements under context
- * (e.g., $div.find("div > *") now matches children of $div)
- * Matching against non-elements
- * Reliable sorting of disconnected nodes
- * querySelectorAll bug fixes (e.g., unreliable :focus on WebKit)
- *
- * If any of these are unacceptable tradeoffs, either use Sizzle or
- * customize this stub for the project's specific needs.
- */
-
-var hasDuplicate, sortInput,
- sortStable = jQuery.expando.split( "" ).sort( sortOrder ).join( "" ) === jQuery.expando,
- matches = documentElement.matches ||
- documentElement.webkitMatchesSelector ||
- documentElement.mozMatchesSelector ||
- documentElement.oMatchesSelector ||
- documentElement.msMatchesSelector;
-
-function sortOrder( a, b ) {
-
- // Flag for duplicate removal
- if ( a === b ) {
- hasDuplicate = true;
- return 0;
- }
-
- // Sort on method existence if only one input has compareDocumentPosition
- var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
- if ( compare ) {
- return compare;
- }
-
- // Calculate position if both inputs belong to the same document
- compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
- a.compareDocumentPosition( b ) :
-
- // Otherwise we know they are disconnected
- 1;
-
- // Disconnected nodes
- if ( compare & 1 ) {
-
- // Choose the first element that is related to our preferred document
- if ( a === document || a.ownerDocument === document &&
- jQuery.contains( document, a ) ) {
- return -1;
- }
- if ( b === document || b.ownerDocument === document &&
- jQuery.contains( document, b ) ) {
- return 1;
- }
-
- // Maintain original order
- return sortInput ?
- ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
- 0;
- }
-
- return compare & 4 ? -1 : 1;
-}
-
-function uniqueSort( results ) {
- var elem,
- duplicates = [],
- j = 0,
- i = 0;
-
- hasDuplicate = false;
- sortInput = !sortStable && results.slice( 0 );
- results.sort( sortOrder );
-
- if ( hasDuplicate ) {
- while ( ( elem = results[ i++ ] ) ) {
- if ( elem === results[ i ] ) {
- j = duplicates.push( i );
- }
- }
- while ( j-- ) {
- results.splice( duplicates[ j ], 1 );
- }
- }
-
- // Clear input after sorting to release objects
- // See https://github.com/jquery/sizzle/pull/225
- sortInput = null;
-
- return results;
-}
-
-jQuery.extend( {
- find: function( selector, context, results, seed ) {
- var elem, nodeType,
- i = 0;
-
- results = results || [];
- context = context || document;
-
- // Same basic safeguard as Sizzle
- if ( !selector || typeof selector !== "string" ) {
- return results;
- }
-
- // Early return if context is not an element or document
- if ( ( nodeType = context.nodeType ) !== 1 && nodeType !== 9 ) {
- return [];
- }
-
- if ( seed ) {
- while ( ( elem = seed[ i++ ] ) ) {
- if ( jQuery.find.matchesSelector( elem, selector ) ) {
- results.push( elem );
- }
- }
- } else {
- jQuery.merge( results, context.querySelectorAll( selector ) );
- }
-
- return results;
- },
- uniqueSort: uniqueSort,
- unique: uniqueSort,
- text: function( elem ) {
- var node,
- ret = "",
- i = 0,
- nodeType = elem.nodeType;
-
- if ( !nodeType ) {
-
- // If no nodeType, this is expected to be an array
- while ( ( node = elem[ i++ ] ) ) {
-
- // Do not traverse comment nodes
- ret += jQuery.text( node );
- }
- } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
-
- // Use textContent for elements
- return elem.textContent;
- } else if ( nodeType === 3 || nodeType === 4 ) {
- return elem.nodeValue;
- }
-
- // Do not include comment or processing instruction nodes
-
- return ret;
- },
- contains: function( a, b ) {
- var adown = a.nodeType === 9 ? a.documentElement : a,
- bup = b && b.parentNode;
- return a === bup || !!( bup && bup.nodeType === 1 && adown.contains( bup ) );
- },
- isXMLDoc: function( elem ) {
-
- // documentElement is verified for cases where it doesn't yet exist
- // (such as loading iframes in IE - #4833)
- var documentElement = elem && ( elem.ownerDocument || elem ).documentElement;
- return documentElement ? documentElement.nodeName !== "HTML" : false;
- },
- expr: {
- attrHandle: {},
- match: {
- bool: new RegExp( "^(?:checked|selected|async|autofocus|autoplay|controls|defer" +
- "|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i" ),
- needsContext: /^[\x20\t\r\n\f]*[>+~]/
- }
- }
-} );
-
-jQuery.extend( jQuery.find, {
- matches: function( expr, elements ) {
- return jQuery.find( expr, null, null, elements );
- },
- matchesSelector: function( elem, expr ) {
- return matches.call( elem, expr );
- },
- attr: function( elem, name ) {
- var fn = jQuery.expr.attrHandle[ name.toLowerCase() ],
-
- // Don't get fooled by Object.prototype properties (jQuery #13807)
- value = fn && hasOwn.call( jQuery.expr.attrHandle, name.toLowerCase() ) ?
- fn( elem, name, jQuery.isXMLDoc( elem ) ) :
- undefined;
- return value !== undefined ? value : elem.getAttribute( name );
- }
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/selector-sizzle.js b/libs/bower_components/jquery/src/selector-sizzle.js
deleted file mode 100644
index 9728a1f57e..0000000000
--- a/libs/bower_components/jquery/src/selector-sizzle.js
+++ /dev/null
@@ -1,14 +0,0 @@
-define( [
- "./core",
- "../external/sizzle/dist/sizzle"
-], function( jQuery, Sizzle ) {
-
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[ ":" ] = jQuery.expr.pseudos;
-jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-} );
diff --git a/libs/bower_components/jquery/src/selector.js b/libs/bower_components/jquery/src/selector.js
deleted file mode 100644
index e13f585ae6..0000000000
--- a/libs/bower_components/jquery/src/selector.js
+++ /dev/null
@@ -1 +0,0 @@
-define( [ "./selector-sizzle" ], function() {} );
diff --git a/libs/bower_components/jquery/src/serialize.js b/libs/bower_components/jquery/src/serialize.js
deleted file mode 100644
index 94698fc2fc..0000000000
--- a/libs/bower_components/jquery/src/serialize.js
+++ /dev/null
@@ -1,125 +0,0 @@
-define( [
- "./core",
- "./manipulation/var/rcheckableType",
- "./core/init",
- "./traversing", // filter
- "./attributes/prop"
-], function( jQuery, rcheckableType ) {
-
-var r20 = /%20/g,
- rbracket = /\[\]$/,
- rCRLF = /\r?\n/g,
- rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
- rsubmittable = /^(?:input|select|textarea|keygen)/i;
-
-function buildParams( prefix, obj, traditional, add ) {
- var name;
-
- if ( jQuery.isArray( obj ) ) {
-
- // Serialize array item.
- jQuery.each( obj, function( i, v ) {
- if ( traditional || rbracket.test( prefix ) ) {
-
- // Treat each array item as a scalar.
- add( prefix, v );
-
- } else {
-
- // Item is non-scalar (array or object), encode its numeric index.
- buildParams(
- prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
- v,
- traditional,
- add
- );
- }
- } );
-
- } else if ( !traditional && jQuery.type( obj ) === "object" ) {
-
- // Serialize object item.
- for ( name in obj ) {
- buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
- }
-
- } else {
-
- // Serialize scalar item.
- add( prefix, obj );
- }
-}
-
-// Serialize an array of form elements or a set of
-// key/values into a query string
-jQuery.param = function( a, traditional ) {
- var prefix,
- s = [],
- add = function( key, value ) {
-
- // If value is a function, invoke it and return its value
- value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
- s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
- };
-
- // Set traditional to true for jQuery <= 1.3.2 behavior.
- if ( traditional === undefined ) {
- traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
- }
-
- // If an array was passed in, assume that it is an array of form elements.
- if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
-
- // Serialize the form elements
- jQuery.each( a, function() {
- add( this.name, this.value );
- } );
-
- } else {
-
- // If traditional, encode the "old" way (the way 1.3.2 or older
- // did it), otherwise encode params recursively.
- for ( prefix in a ) {
- buildParams( prefix, a[ prefix ], traditional, add );
- }
- }
-
- // Return the resulting serialization
- return s.join( "&" ).replace( r20, "+" );
-};
-
-jQuery.fn.extend( {
- serialize: function() {
- return jQuery.param( this.serializeArray() );
- },
- serializeArray: function() {
- return this.map( function() {
-
- // Can add propHook for "elements" to filter or add form elements
- var elements = jQuery.prop( this, "elements" );
- return elements ? jQuery.makeArray( elements ) : this;
- } )
- .filter( function() {
- var type = this.type;
-
- // Use .is( ":disabled" ) so that fieldset[disabled] works
- return this.name && !jQuery( this ).is( ":disabled" ) &&
- rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
- ( this.checked || !rcheckableType.test( type ) );
- } )
- .map( function( i, elem ) {
- var val = jQuery( this ).val();
-
- return val == null ?
- null :
- jQuery.isArray( val ) ?
- jQuery.map( val, function( val ) {
- return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
- } ) :
- { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
- } ).get();
- }
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/support.js b/libs/bower_components/jquery/src/support.js
deleted file mode 100644
index 71ac60f19a..0000000000
--- a/libs/bower_components/jquery/src/support.js
+++ /dev/null
@@ -1,63 +0,0 @@
-define( [
- "./core",
- "./var/support",
- "./var/document",
- "./core/init", // Needed for hasOwn support test
- // This is listed as a dependency for build order, but it's still optional in builds
- "./core/ready"
-], function( jQuery, support, document ) {
-
-// Support: IE<9
-// Iteration over object's inherited properties before its own
-var i;
-for ( i in jQuery( support ) ) {
- break;
-}
-support.ownFirst = i === "0";
-
-// Note: most support tests are defined in their respective modules.
-// false until the test is run
-support.inlineBlockNeedsLayout = false;
-
-// Execute ASAP in case we need to set body.style.zoom
-jQuery( function() {
-
- // Minified: var a,b,c,d
- var val, div, body, container;
-
- body = document.getElementsByTagName( "body" )[ 0 ];
- if ( !body || !body.style ) {
-
- // Return for frameset docs that don't have a body
- return;
- }
-
- // Setup
- div = document.createElement( "div" );
- container = document.createElement( "div" );
- container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
- body.appendChild( container ).appendChild( div );
-
- if ( typeof div.style.zoom !== "undefined" ) {
-
- // Support: IE<8
- // Check if natively block-level elements act like inline-block
- // elements when setting their display to 'inline' and giving
- // them layout
- div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";
-
- support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;
- if ( val ) {
-
- // Prevent IE 6 from affecting layout for positioned elements #11048
- // Prevent IE from shrinking the body in IE 7 mode #12869
- // Support: IE<8
- body.style.zoom = 1;
- }
- }
-
- body.removeChild( container );
-} );
-
-return support;
-} );
diff --git a/libs/bower_components/jquery/src/traversing.js b/libs/bower_components/jquery/src/traversing.js
deleted file mode 100644
index 0d4c1c4c36..0000000000
--- a/libs/bower_components/jquery/src/traversing.js
+++ /dev/null
@@ -1,175 +0,0 @@
-define( [
- "./core",
- "./var/indexOf",
- "./traversing/var/dir",
- "./traversing/var/siblings",
- "./traversing/var/rneedsContext",
- "./core/init",
- "./traversing/findFilter",
- "./selector"
-], function( jQuery, indexOf, dir, siblings, rneedsContext ) {
-
-var rparentsprev = /^(?:parents|prev(?:Until|All))/,
-
- // Methods guaranteed to produce a unique set when starting from a unique set
- guaranteedUnique = {
- children: true,
- contents: true,
- next: true,
- prev: true
- };
-
-jQuery.fn.extend( {
- has: function( target ) {
- var targets = jQuery( target, this ),
- l = targets.length;
-
- return this.filter( function() {
- var i = 0;
- for ( ; i < l; i++ ) {
- if ( jQuery.contains( this, targets[ i ] ) ) {
- return true;
- }
- }
- } );
- },
-
- closest: function( selectors, context ) {
- var cur,
- i = 0,
- l = this.length,
- matched = [],
- pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
- jQuery( selectors, context || this.context ) :
- 0;
-
- for ( ; i < l; i++ ) {
- for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
-
- // Always skip document fragments
- if ( cur.nodeType < 11 && ( pos ?
- pos.index( cur ) > -1 :
-
- // Don't pass non-elements to Sizzle
- cur.nodeType === 1 &&
- jQuery.find.matchesSelector( cur, selectors ) ) ) {
-
- matched.push( cur );
- break;
- }
- }
- }
-
- return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
- },
-
- // Determine the position of an element within the set
- index: function( elem ) {
-
- // No argument, return index in parent
- if ( !elem ) {
- return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
- }
-
- // Index in selector
- if ( typeof elem === "string" ) {
- return indexOf.call( jQuery( elem ), this[ 0 ] );
- }
-
- // Locate the position of the desired element
- return indexOf.call( this,
-
- // If it receives a jQuery object, the first element is used
- elem.jquery ? elem[ 0 ] : elem
- );
- },
-
- add: function( selector, context ) {
- return this.pushStack(
- jQuery.uniqueSort(
- jQuery.merge( this.get(), jQuery( selector, context ) )
- )
- );
- },
-
- addBack: function( selector ) {
- return this.add( selector == null ?
- this.prevObject : this.prevObject.filter( selector )
- );
- }
-} );
-
-function sibling( cur, dir ) {
- while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
- return cur;
-}
-
-jQuery.each( {
- parent: function( elem ) {
- var parent = elem.parentNode;
- return parent && parent.nodeType !== 11 ? parent : null;
- },
- parents: function( elem ) {
- return dir( elem, "parentNode" );
- },
- parentsUntil: function( elem, i, until ) {
- return dir( elem, "parentNode", until );
- },
- next: function( elem ) {
- return sibling( elem, "nextSibling" );
- },
- prev: function( elem ) {
- return sibling( elem, "previousSibling" );
- },
- nextAll: function( elem ) {
- return dir( elem, "nextSibling" );
- },
- prevAll: function( elem ) {
- return dir( elem, "previousSibling" );
- },
- nextUntil: function( elem, i, until ) {
- return dir( elem, "nextSibling", until );
- },
- prevUntil: function( elem, i, until ) {
- return dir( elem, "previousSibling", until );
- },
- siblings: function( elem ) {
- return siblings( ( elem.parentNode || {} ).firstChild, elem );
- },
- children: function( elem ) {
- return siblings( elem.firstChild );
- },
- contents: function( elem ) {
- return elem.contentDocument || jQuery.merge( [], elem.childNodes );
- }
-}, function( name, fn ) {
- jQuery.fn[ name ] = function( until, selector ) {
- var matched = jQuery.map( this, fn, until );
-
- if ( name.slice( -5 ) !== "Until" ) {
- selector = until;
- }
-
- if ( selector && typeof selector === "string" ) {
- matched = jQuery.filter( selector, matched );
- }
-
- if ( this.length > 1 ) {
-
- // Remove duplicates
- if ( !guaranteedUnique[ name ] ) {
- jQuery.uniqueSort( matched );
- }
-
- // Reverse order for parents* and prev-derivatives
- if ( rparentsprev.test( name ) ) {
- matched.reverse();
- }
- }
-
- return this.pushStack( matched );
- };
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jquery/src/traversing/findFilter.js b/libs/bower_components/jquery/src/traversing/findFilter.js
deleted file mode 100644
index 7d4b2cab9e..0000000000
--- a/libs/bower_components/jquery/src/traversing/findFilter.js
+++ /dev/null
@@ -1,100 +0,0 @@
-define( [
- "../core",
- "../var/indexOf",
- "./var/rneedsContext",
- "../selector"
-], function( jQuery, indexOf, rneedsContext ) {
-
-var risSimple = /^.[^:#\[\.,]*$/;
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, not ) {
- if ( jQuery.isFunction( qualifier ) ) {
- return jQuery.grep( elements, function( elem, i ) {
- /* jshint -W018 */
- return !!qualifier.call( elem, i, elem ) !== not;
- } );
-
- }
-
- if ( qualifier.nodeType ) {
- return jQuery.grep( elements, function( elem ) {
- return ( elem === qualifier ) !== not;
- } );
-
- }
-
- if ( typeof qualifier === "string" ) {
- if ( risSimple.test( qualifier ) ) {
- return jQuery.filter( qualifier, elements, not );
- }
-
- qualifier = jQuery.filter( qualifier, elements );
- }
-
- return jQuery.grep( elements, function( elem ) {
- return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
- } );
-}
-
-jQuery.filter = function( expr, elems, not ) {
- var elem = elems[ 0 ];
-
- if ( not ) {
- expr = ":not(" + expr + ")";
- }
-
- return elems.length === 1 && elem.nodeType === 1 ?
- jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
- jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
- return elem.nodeType === 1;
- } ) );
-};
-
-jQuery.fn.extend( {
- find: function( selector ) {
- var i,
- len = this.length,
- ret = [],
- self = this;
-
- if ( typeof selector !== "string" ) {
- return this.pushStack( jQuery( selector ).filter( function() {
- for ( i = 0; i < len; i++ ) {
- if ( jQuery.contains( self[ i ], this ) ) {
- return true;
- }
- }
- } ) );
- }
-
- for ( i = 0; i < len; i++ ) {
- jQuery.find( selector, self[ i ], ret );
- }
-
- // Needed because $( selector, context ) becomes $( context ).find( selector )
- ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
- ret.selector = this.selector ? this.selector + " " + selector : selector;
- return ret;
- },
- filter: function( selector ) {
- return this.pushStack( winnow( this, selector || [], false ) );
- },
- not: function( selector ) {
- return this.pushStack( winnow( this, selector || [], true ) );
- },
- is: function( selector ) {
- return !!winnow(
- this,
-
- // If this is a positional/relative selector, check membership in the returned set
- // so $("p:first").is("p:last") won't return true for a doc with two "p".
- typeof selector === "string" && rneedsContext.test( selector ) ?
- jQuery( selector ) :
- selector || [],
- false
- ).length;
- }
-} );
-
-} );
diff --git a/libs/bower_components/jquery/src/traversing/var/dir.js b/libs/bower_components/jquery/src/traversing/var/dir.js
deleted file mode 100644
index b98fdca0e9..0000000000
--- a/libs/bower_components/jquery/src/traversing/var/dir.js
+++ /dev/null
@@ -1,20 +0,0 @@
-define( [
- "../../core"
-], function( jQuery ) {
-
-return function( elem, dir, until ) {
- var matched = [],
- truncate = until !== undefined;
-
- while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
- if ( elem.nodeType === 1 ) {
- if ( truncate && jQuery( elem ).is( until ) ) {
- break;
- }
- matched.push( elem );
- }
- }
- return matched;
-};
-
-} );
diff --git a/libs/bower_components/jquery/src/traversing/var/rneedsContext.js b/libs/bower_components/jquery/src/traversing/var/rneedsContext.js
deleted file mode 100644
index f57fd9de2f..0000000000
--- a/libs/bower_components/jquery/src/traversing/var/rneedsContext.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define( [
- "../../core",
- "../../selector"
-], function( jQuery ) {
- return jQuery.expr.match.needsContext;
-} );
diff --git a/libs/bower_components/jquery/src/traversing/var/siblings.js b/libs/bower_components/jquery/src/traversing/var/siblings.js
deleted file mode 100644
index 8a8880bf74..0000000000
--- a/libs/bower_components/jquery/src/traversing/var/siblings.js
+++ /dev/null
@@ -1,15 +0,0 @@
-define( function() {
-
-return function( n, elem ) {
- var matched = [];
-
- for ( ; n; n = n.nextSibling ) {
- if ( n.nodeType === 1 && n !== elem ) {
- matched.push( n );
- }
- }
-
- return matched;
-};
-
-} );
diff --git a/libs/bower_components/jquery/src/var/arr.js b/libs/bower_components/jquery/src/var/arr.js
deleted file mode 100644
index 3fd3640001..0000000000
--- a/libs/bower_components/jquery/src/var/arr.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return [];
-} );
diff --git a/libs/bower_components/jquery/src/var/class2type.js b/libs/bower_components/jquery/src/var/class2type.js
deleted file mode 100644
index 3a6932e11b..0000000000
--- a/libs/bower_components/jquery/src/var/class2type.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( function() {
-
- // [[Class]] -> type pairs
- return {};
-} );
diff --git a/libs/bower_components/jquery/src/var/concat.js b/libs/bower_components/jquery/src/var/concat.js
deleted file mode 100644
index 9787bead63..0000000000
--- a/libs/bower_components/jquery/src/var/concat.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "./arr"
-], function( arr ) {
- return arr.concat;
-} );
diff --git a/libs/bower_components/jquery/src/var/deletedIds.js b/libs/bower_components/jquery/src/var/deletedIds.js
deleted file mode 100644
index 3fd3640001..0000000000
--- a/libs/bower_components/jquery/src/var/deletedIds.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return [];
-} );
diff --git a/libs/bower_components/jquery/src/var/document.js b/libs/bower_components/jquery/src/var/document.js
deleted file mode 100644
index bb94284846..0000000000
--- a/libs/bower_components/jquery/src/var/document.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return window.document;
-} );
diff --git a/libs/bower_components/jquery/src/var/documentElement.js b/libs/bower_components/jquery/src/var/documentElement.js
deleted file mode 100644
index e0c0aea6bb..0000000000
--- a/libs/bower_components/jquery/src/var/documentElement.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "./document"
-], function( document ) {
- return document.documentElement;
-} );
diff --git a/libs/bower_components/jquery/src/var/hasOwn.js b/libs/bower_components/jquery/src/var/hasOwn.js
deleted file mode 100644
index 92f323e046..0000000000
--- a/libs/bower_components/jquery/src/var/hasOwn.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "./class2type"
-], function( class2type ) {
- return class2type.hasOwnProperty;
-} );
diff --git a/libs/bower_components/jquery/src/var/indexOf.js b/libs/bower_components/jquery/src/var/indexOf.js
deleted file mode 100644
index 5283841b23..0000000000
--- a/libs/bower_components/jquery/src/var/indexOf.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "./arr"
-], function( arr ) {
- return arr.indexOf;
-} );
diff --git a/libs/bower_components/jquery/src/var/pnum.js b/libs/bower_components/jquery/src/var/pnum.js
deleted file mode 100644
index 7fd9f66774..0000000000
--- a/libs/bower_components/jquery/src/var/pnum.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
-} );
diff --git a/libs/bower_components/jquery/src/var/push.js b/libs/bower_components/jquery/src/var/push.js
deleted file mode 100644
index bca1a58ed0..0000000000
--- a/libs/bower_components/jquery/src/var/push.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "./arr"
-], function( arr ) {
- return arr.push;
-} );
diff --git a/libs/bower_components/jquery/src/var/rcssNum.js b/libs/bower_components/jquery/src/var/rcssNum.js
deleted file mode 100644
index 408f5e26d0..0000000000
--- a/libs/bower_components/jquery/src/var/rcssNum.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define( [
- "../var/pnum"
-], function( pnum ) {
-
-return new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
-
-} );
diff --git a/libs/bower_components/jquery/src/var/rnotwhite.js b/libs/bower_components/jquery/src/var/rnotwhite.js
deleted file mode 100644
index 6067728ee0..0000000000
--- a/libs/bower_components/jquery/src/var/rnotwhite.js
+++ /dev/null
@@ -1,3 +0,0 @@
-define( function() {
- return ( /\S+/g );
-} );
diff --git a/libs/bower_components/jquery/src/var/slice.js b/libs/bower_components/jquery/src/var/slice.js
deleted file mode 100644
index d8206d30a8..0000000000
--- a/libs/bower_components/jquery/src/var/slice.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "./arr"
-], function( arr ) {
- return arr.slice;
-} );
diff --git a/libs/bower_components/jquery/src/var/support.js b/libs/bower_components/jquery/src/var/support.js
deleted file mode 100644
index 3db9b67bca..0000000000
--- a/libs/bower_components/jquery/src/var/support.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( function() {
-
- // All support tests are defined in their respective modules.
- return {};
-} );
diff --git a/libs/bower_components/jquery/src/var/toString.js b/libs/bower_components/jquery/src/var/toString.js
deleted file mode 100644
index 80ac7f13f2..0000000000
--- a/libs/bower_components/jquery/src/var/toString.js
+++ /dev/null
@@ -1,5 +0,0 @@
-define( [
- "./class2type"
-], function( class2type ) {
- return class2type.toString;
-} );
diff --git a/libs/bower_components/jquery/src/wrap.js b/libs/bower_components/jquery/src/wrap.js
deleted file mode 100644
index 4d2c3b2044..0000000000
--- a/libs/bower_components/jquery/src/wrap.js
+++ /dev/null
@@ -1,79 +0,0 @@
-define( [
- "./core",
- "./core/init",
- "./manipulation", // clone
- "./traversing" // parent, contents
-], function( jQuery ) {
-
-jQuery.fn.extend( {
- wrapAll: function( html ) {
- var wrap;
-
- if ( jQuery.isFunction( html ) ) {
- return this.each( function( i ) {
- jQuery( this ).wrapAll( html.call( this, i ) );
- } );
- }
-
- if ( this[ 0 ] ) {
-
- // The elements to wrap the target around
- wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
-
- if ( this[ 0 ].parentNode ) {
- wrap.insertBefore( this[ 0 ] );
- }
-
- wrap.map( function() {
- var elem = this;
-
- while ( elem.firstElementChild ) {
- elem = elem.firstElementChild;
- }
-
- return elem;
- } ).append( this );
- }
-
- return this;
- },
-
- wrapInner: function( html ) {
- if ( jQuery.isFunction( html ) ) {
- return this.each( function( i ) {
- jQuery( this ).wrapInner( html.call( this, i ) );
- } );
- }
-
- return this.each( function() {
- var self = jQuery( this ),
- contents = self.contents();
-
- if ( contents.length ) {
- contents.wrapAll( html );
-
- } else {
- self.append( html );
- }
- } );
- },
-
- wrap: function( html ) {
- var isFunction = jQuery.isFunction( html );
-
- return this.each( function( i ) {
- jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
- } );
- },
-
- unwrap: function() {
- return this.parent().each( function() {
- if ( !jQuery.nodeName( this, "body" ) ) {
- jQuery( this ).replaceWith( this.childNodes );
- }
- } ).end();
- }
-} );
-
-return jQuery;
-} );
diff --git a/libs/bower_components/jqueryui-touch-punch/.bower.json b/libs/bower_components/jqueryui-touch-punch/.bower.json
new file mode 100644
index 0000000000..d003eeb236
--- /dev/null
+++ b/libs/bower_components/jqueryui-touch-punch/.bower.json
@@ -0,0 +1,19 @@
+{
+ "name": "jqueryui-touch-punch",
+ "main": "jquery.ui.touch-punch.min.js",
+ "ignore": [],
+ "dependencies": {
+ "jquery": ">=1.6",
+ "jquery-ui": ">=1.8"
+ },
+ "homepage": "https://github.com/furf/jquery-ui-touch-punch",
+ "_release": "4bc0091452",
+ "_resolution": {
+ "type": "branch",
+ "branch": "master",
+ "commit": "4bc009145202d9c7483ba85f3a236a8f3470354d"
+ },
+ "_source": "https://github.com/furf/jquery-ui-touch-punch.git",
+ "_target": "master",
+ "_originalSource": "jqueryui-touch-punch"
+} \ No newline at end of file
diff --git a/libs/bower_components/jqueryui-touch-punch/README.md b/libs/bower_components/jqueryui-touch-punch/README.md
new file mode 100644
index 0000000000..cff7baad70
--- /dev/null
+++ b/libs/bower_components/jqueryui-touch-punch/README.md
@@ -0,0 +1,41 @@
+# jQuery UI Touch Punch
+## Touch Event Support for jQuery UI
+
+> **jQuery UI Touch Punch is a small hack that enables the use of touch events on sites using the jQuery UI user interface library.**
+
+_[Visit the official Touch Punch website](http://touchpunch.furf.com)._
+
+Currently, [jQuery UI](http://jqueryui.com/) user interface library does not support the use of touch events in their widgets and interactions. This means that the slick UI you designed and tested in your desktop browser will fail on most, if not all, touch-enabled mobile devices, because jQuery UI listens to mouse events—mouseover, mousemove and mouseout—not touch events—touchstart, touchmove and touchend.
+
+That's where jQuery UI Touch Punch comes in. Touch Punch works by using [simulated events](https://developer.mozilla.org/en/DOM/document.createEvent) to map [touch events](http://www.html5rocks.com/en/mobile/touch/) to their mouse event analogs. Simply include the script on your page and your touch events will be turned into their corresponding mouse events to which jQuery UI will respond as expected.
+
+As I said, Touch Punch is a hack. It [duck punches](http://en.wikipedia.org/wiki/Monkey_patch) some of jQuery UI's core functionality to handle the mapping of touch events. Touch Punch works with all basic implementations of jQuery UI's interactions and widgets. However, you may find more complex cases where Touch Punch fails. If so, scroll down to learn how you can file and/or fix issues.
+
+This code is dual licensed under the MIT or GPL Version 2 licenses and is therefore free to use, modify and/or distribute, but if you include Touch Punch in other software packages or plugins, please include an attribution to the original software and a link to [this Touch Punch website](http://touchpunch.furf.com/).
+
+## Using Touch Punch is as easy as 1, 2…
+
+Just follow these simple steps to enable touch events in your jQuery UI app:
+
+1. Include jQuery and jQuery UI on your page.
+
+ ```html
+ <script src="http://code.jquery.com/jquery.min.js"></script>
+ <script src="http://code.jquery.com/ui/1.8.17/jquery-ui.min.js"></script>
+ ```
+
+2. Include Touch Punch after jQuery UI and before its first use.
+
+ Please note that if you are using jQuery UI's components, Touch Punch must be included after jquery.ui.mouse.js, as Touch Punch modifies its behavior.
+
+ ```html
+ <script src="jquery.ui.touch-punch.min.js"></script>
+ ```
+
+3. There is no 3. Just use jQuery UI as expected and watch it work at the touch of a finger.
+
+ ```html
+ <script>$('#widget').draggable();</script>
+ ```
+
+_Tested on iPad, iPhone, Android and other touch-enabled mobile devices._
diff --git a/libs/bower_components/jqueryui-touch-punch/bower.json b/libs/bower_components/jqueryui-touch-punch/bower.json
new file mode 100644
index 0000000000..ffc6b89f9a
--- /dev/null
+++ b/libs/bower_components/jqueryui-touch-punch/bower.json
@@ -0,0 +1,10 @@
+{
+ "name": "jqueryui-touch-punch",
+ "version": "0.2.3",
+ "main": "jquery.ui.touch-punch.min.js",
+ "ignore": [],
+ "dependencies": {
+ "jquery": ">=1.6",
+ "jquery-ui": ">=1.8"
+ }
+}
diff --git a/libs/bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.js b/libs/bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.js
new file mode 100644
index 0000000000..16ce41d1ed
--- /dev/null
+++ b/libs/bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.js
@@ -0,0 +1,180 @@
+/*!
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ * jquery.ui.mouse.js
+ */
+(function ($) {
+
+ // Detect touch support
+ $.support.touch = 'ontouchend' in document;
+
+ // Ignore browsers without touch support
+ if (!$.support.touch) {
+ return;
+ }
+
+ var mouseProto = $.ui.mouse.prototype,
+ _mouseInit = mouseProto._mouseInit,
+ _mouseDestroy = mouseProto._mouseDestroy,
+ touchHandled;
+
+ /**
+ * Simulate a mouse event based on a corresponding touch event
+ * @param {Object} event A touch event
+ * @param {String} simulatedType The corresponding mouse event
+ */
+ function simulateMouseEvent (event, simulatedType) {
+
+ // Ignore multi-touch events
+ if (event.originalEvent.touches.length > 1) {
+ return;
+ }
+
+ event.preventDefault();
+
+ var touch = event.originalEvent.changedTouches[0],
+ simulatedEvent = document.createEvent('MouseEvents');
+
+ // Initialize the simulated mouse event using the touch event's coordinates
+ simulatedEvent.initMouseEvent(
+ simulatedType, // type
+ true, // bubbles
+ true, // cancelable
+ window, // view
+ 1, // detail
+ touch.screenX, // screenX
+ touch.screenY, // screenY
+ touch.clientX, // clientX
+ touch.clientY, // clientY
+ false, // ctrlKey
+ false, // altKey
+ false, // shiftKey
+ false, // metaKey
+ 0, // button
+ null // relatedTarget
+ );
+
+ // Dispatch the simulated event to the target element
+ event.target.dispatchEvent(simulatedEvent);
+ }
+
+ /**
+ * Handle the jQuery UI widget's touchstart events
+ * @param {Object} event The widget element's touchstart event
+ */
+ mouseProto._touchStart = function (event) {
+
+ var self = this;
+
+ // Ignore the event if another widget is already being handled
+ if (touchHandled || !self._mouseCapture(event.originalEvent.changedTouches[0])) {
+ return;
+ }
+
+ // Set the flag to prevent other widgets from inheriting the touch event
+ touchHandled = true;
+
+ // Track movement to determine if interaction was a click
+ self._touchMoved = false;
+
+ // Simulate the mouseover event
+ simulateMouseEvent(event, 'mouseover');
+
+ // Simulate the mousemove event
+ simulateMouseEvent(event, 'mousemove');
+
+ // Simulate the mousedown event
+ simulateMouseEvent(event, 'mousedown');
+ };
+
+ /**
+ * Handle the jQuery UI widget's touchmove events
+ * @param {Object} event The document's touchmove event
+ */
+ mouseProto._touchMove = function (event) {
+
+ // Ignore event if not handled
+ if (!touchHandled) {
+ return;
+ }
+
+ // Interaction was not a click
+ this._touchMoved = true;
+
+ // Simulate the mousemove event
+ simulateMouseEvent(event, 'mousemove');
+ };
+
+ /**
+ * Handle the jQuery UI widget's touchend events
+ * @param {Object} event The document's touchend event
+ */
+ mouseProto._touchEnd = function (event) {
+
+ // Ignore event if not handled
+ if (!touchHandled) {
+ return;
+ }
+
+ // Simulate the mouseup event
+ simulateMouseEvent(event, 'mouseup');
+
+ // Simulate the mouseout event
+ simulateMouseEvent(event, 'mouseout');
+
+ // If the touch interaction did not move, it should trigger a click
+ if (!this._touchMoved) {
+
+ // Simulate the click event
+ simulateMouseEvent(event, 'click');
+ }
+
+ // Unset the flag to allow other widgets to inherit the touch event
+ touchHandled = false;
+ };
+
+ /**
+ * A duck punch of the $.ui.mouse _mouseInit method to support touch events.
+ * This method extends the widget with bound touch event handlers that
+ * translate touch events to mouse events and pass them to the widget's
+ * original mouse event handling methods.
+ */
+ mouseProto._mouseInit = function () {
+
+ var self = this;
+
+ // Delegate the touch handlers to the widget's element
+ self.element.bind({
+ touchstart: $.proxy(self, '_touchStart'),
+ touchmove: $.proxy(self, '_touchMove'),
+ touchend: $.proxy(self, '_touchEnd')
+ });
+
+ // Call the original $.ui.mouse init method
+ _mouseInit.call(self);
+ };
+
+ /**
+ * Remove the touch event handlers
+ */
+ mouseProto._mouseDestroy = function () {
+
+ var self = this;
+
+ // Delegate the touch handlers to the widget's element
+ self.element.unbind({
+ touchstart: $.proxy(self, '_touchStart'),
+ touchmove: $.proxy(self, '_touchMove'),
+ touchend: $.proxy(self, '_touchEnd')
+ });
+
+ // Call the original $.ui.mouse destroy method
+ _mouseDestroy.call(self);
+ };
+
+})(jQuery); \ No newline at end of file
diff --git a/libs/bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.min.js b/libs/bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.min.js
new file mode 100644
index 0000000000..31272ce6fd
--- /dev/null
+++ b/libs/bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.min.js
@@ -0,0 +1,11 @@
+/*!
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ * jquery.ui.mouse.js
+ */
+!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery); \ No newline at end of file
diff --git a/libs/bower_components/mousetrap/plugins/record/tests/index.html b/libs/bower_components/mousetrap/plugins/record/tests/index.html
deleted file mode 100644
index 5608f09e67..0000000000
--- a/libs/bower_components/mousetrap/plugins/record/tests/index.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html>
-
- <head>
- <title>Jelly</title>
- <meta charset=utf-8>
- <link href="jelly.css" rel="stylesheet">
- </head>
-
- <body>
- <h1>Jelly</h1>
-
- <h2>For testing the <strong>record</strong> extension</h2>
-
- <p>Click "Record" to test recording a sequence.</p>
- <button class="test-record">Record</button>
- <div class="test-record-result"></div>
-
- <script type="text/javascript" src="../../../tests/libs/jquery-1.7.2.min.js"></script>
- <script type="text/javascript" src="../../../mousetrap.js"></script>
- <script type="text/javascript" src="../mousetrap-record.js"></script>
- <script type="text/javascript" src="jelly.js"></script>
-
- <script type="text/javascript">
- Jelly.spread();
- </script>
- </body>
-
-</html>
diff --git a/libs/bower_components/mousetrap/plugins/record/tests/jelly.css b/libs/bower_components/mousetrap/plugins/record/tests/jelly.css
deleted file mode 100644
index a071c77c98..0000000000
--- a/libs/bower_components/mousetrap/plugins/record/tests/jelly.css
+++ /dev/null
@@ -1,18 +0,0 @@
-body {
- font-family: helvetica, arial, sans-serif;
- line-height: 20px;
-}
-
-kbd {
- background-color: #ccc;
- display: inline-block;
- padding: 0.5ex 1em;
-}
-
-.test-record-result {
- margin-top: 20px;
-}
-
-.test-record-result span:nth-child(n+2) {
- margin-left: 10px;
-}
diff --git a/libs/bower_components/mousetrap/plugins/record/tests/jelly.js b/libs/bower_components/mousetrap/plugins/record/tests/jelly.js
deleted file mode 100644
index 57ff01a028..0000000000
--- a/libs/bower_components/mousetrap/plugins/record/tests/jelly.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Peanut butter goes great with jelly.
- *
- * @author Dan Tao <daniel.tao@gmail.com>
- */
-var Jelly = (function() {
- var recordButton = $("button.test-record"),
- recordResult = $("div.test-record-result");
-
- function _formatSequenceAsHtml(sequence) {
- var combos = [],
- i;
-
- for (i = 0; i < sequence.length; ++i) {
- combos.push('<span>' + _formatKeysAsHtml(sequence[i].split('+')) + '</span>');
- }
-
- return combos.join(' ');
- }
-
- function _formatKeysAsHtml(keys) {
- var htmlKeys = [],
- i;
-
- for (i = 0; i < keys.length; ++i) {
- htmlKeys.push('<kbd>' + keys[i] + '</kbd>');
- }
-
- return htmlKeys.join('+');
- }
-
- function _prepareRecordTest() {
- recordButton.prop('disabled', true);
- recordButton.text('Recording');
-
- Mousetrap.record(function(sequence) {
- recordResult.html(_formatSequenceAsHtml(sequence));
- recordButton.prop('disabled', false);
- recordButton.text('Record');
- });
-
- // take focus away from the button so that Mousetrap will actually
- // capture keystrokes
- recordButton.blur();
- }
-
- return {
- spread: function() {
- recordButton.click(_prepareRecordTest);
- }
- };
-
-})();