From 56dfb723072f371af56addc69f6276314850945d Mon Sep 17 00:00:00 2001
From: Nikolai Kristiansen
Date: Tue, 10 Jun 2014 00:01:02 +0200
Subject: [PATCH] Activation form should work, needs testing
---
inside/User.php | 115 +-
inside/functions.php | 75 +
snapporder/activate.php | 72 +-
snapporder/activate_confirmed.php | 33 +
.../bower_components/fastclick/.bower.json | 23 +
snapporder/bower_components/fastclick/LICENSE | 22 +
.../bower_components/fastclick/README.md | 133 +
.../bower_components/fastclick/bower.json | 13 +
.../fastclick/lib/fastclick.js | 790 ++
.../bower_components/foundation/.bower.json | 30 +
.../bower_components/foundation/bower.json | 20 +
.../foundation/css/foundation.css | 4860 +++++++++
.../foundation/css/normalize.css | 320 +
.../foundation/js/foundation.js | 5543 ++++++++++
.../foundation/js/foundation.min.js | 3 +
.../js/foundation/foundation.abide.js | 299 +
.../js/foundation/foundation.accordion.js | 59 +
.../js/foundation/foundation.alert.js | 43 +
.../js/foundation/foundation.clearing.js | 534 +
.../js/foundation/foundation.dropdown.js | 311 +
.../js/foundation/foundation.equalizer.js | 74 +
.../js/foundation/foundation.interchange.js | 331 +
.../js/foundation/foundation.joyride.js | 843 ++
.../foundation/js/foundation/foundation.js | 611 ++
.../js/foundation/foundation.magellan.js | 178 +
.../js/foundation/foundation.offcanvas.js | 108 +
.../js/foundation/foundation.orbit.js | 610 ++
.../js/foundation/foundation.reveal.js | 437 +
.../js/foundation/foundation.slider.js | 199 +
.../js/foundation/foundation.tab.js | 167 +
.../js/foundation/foundation.tooltip.js | 298 +
.../js/foundation/foundation.topbar.js | 425 +
.../foundation/js/vendor/fastclick.js | 9 +
.../foundation/js/vendor/jquery.cookie.js | 8 +
.../foundation/js/vendor/jquery.js | 26 +
.../foundation/js/vendor/modernizr.js | 8 +
.../foundation/js/vendor/placeholder.js | 2 +
.../foundation/scss/foundation.scss | 45 +
.../scss/foundation/_functions.scss | 101 +
.../foundation/scss/foundation/_settings.scss | 1289 +++
.../foundation/components/_accordion.scss | 53 +
.../foundation/components/_alert-boxes.scss | 126 +
.../foundation/components/_block-grid.scss | 132 +
.../foundation/components/_breadcrumbs.scss | 127 +
.../foundation/components/_button-groups.scss | 108 +
.../scss/foundation/components/_buttons.scss | 222 +
.../scss/foundation/components/_clearing.scss | 247 +
.../components/_dropdown-buttons.scss | 129 +
.../scss/foundation/components/_dropdown.scss | 248 +
.../foundation/components/_flex-video.scss | 51 +
.../scss/foundation/components/_forms.scss | 498 +
.../scss/foundation/components/_global.scss | 429 +
.../scss/foundation/components/_grid.scss | 260 +
.../foundation/components/_inline-lists.scss | 57 +
.../scss/foundation/components/_joyride.scss | 220 +
.../foundation/components/_keystrokes.scss | 61 +
.../scss/foundation/components/_labels.scss | 104 +
.../scss/foundation/components/_magellan.scss | 34 +
.../foundation/components/_offcanvas.scss | 355 +
.../scss/foundation/components/_orbit.scss | 423 +
.../foundation/components/_pagination.scss | 150 +
.../scss/foundation/components/_panels.scss | 90 +
.../components/_pricing-tables.scss | 150 +
.../foundation/components/_progress-bars.scss | 79 +
.../foundation/components/_range-slider.scss | 148 +
.../foundation/components/_reveal-new.scss | 0
.../scss/foundation/components/_reveal.scss | 216 +
.../scss/foundation/components/_side-nav.scss | 115 +
.../foundation/components/_split-buttons.scss | 191 +
.../scss/foundation/components/_sub-nav.scss | 125 +
.../scss/foundation/components/_switch.scss | 294 +
.../scss/foundation/components/_tables.scss | 129 +
.../scss/foundation/components/_tabs.scss | 109 +
.../scss/foundation/components/_thumbs.scss | 68 +
.../scss/foundation/components/_tooltips.scss | 140 +
.../scss/foundation/components/_top-bar.scss | 644 ++
.../scss/foundation/components/_type.scss | 511 +
.../foundation/components/_visibility.scss | 408 +
.../foundation/scss/normalize.scss | 425 +
.../jquery-placeholder/.bower.json | 17 +
.../jquery-placeholder/.gitattributes | 1 +
.../jquery-placeholder/.gitignore | 1 +
.../jquery-placeholder/LICENSE-MIT.txt | 20 +
.../jquery-placeholder/README.md | 76 +
.../jquery-placeholder/bower.json | 5 +
.../jquery-placeholder/demo.html | 55 +
.../jquery-placeholder/jquery.placeholder.js | 185 +
.../jquery-placeholder/tests/index.html | 32 +
.../jquery-placeholder/tests/tests.js | 134 +
.../jquery.cookie/.bower.json | 28 +
.../jquery.cookie/jquery.cookie.js | 117 +
.../bower_components/jquery/.bower.json | 37 +
.../bower_components/jquery/MIT-LICENSE.txt | 21 +
snapporder/bower_components/jquery/bower.json | 27 +
.../bower_components/jquery/dist/jquery.js | 9190 ++++++++++++++++
.../jquery/dist/jquery.min.js | 5 +
.../jquery/dist/jquery.min.map | 1 +
.../bower_components/jquery/src/ajax.js | 806 ++
.../bower_components/jquery/src/ajax/jsonp.js | 89 +
.../bower_components/jquery/src/ajax/load.js | 75 +
.../jquery/src/ajax/parseJSON.js | 13 +
.../jquery/src/ajax/parseXML.js | 28 +
.../jquery/src/ajax/script.js | 64 +
.../jquery/src/ajax/var/nonce.js | 5 +
.../jquery/src/ajax/var/rquery.js | 3 +
.../bower_components/jquery/src/ajax/xhr.js | 135 +
.../bower_components/jquery/src/attributes.js | 11 +
.../jquery/src/attributes/attr.js | 143 +
.../jquery/src/attributes/classes.js | 158 +
.../jquery/src/attributes/prop.js | 96 +
.../jquery/src/attributes/support.js | 35 +
.../jquery/src/attributes/val.js | 163 +
.../bower_components/jquery/src/callbacks.js | 205 +
.../bower_components/jquery/src/core.js | 498 +
.../jquery/src/core/access.js | 60 +
.../bower_components/jquery/src/core/init.js | 123 +
.../jquery/src/core/parseHTML.js | 39 +
.../bower_components/jquery/src/core/ready.js | 97 +
.../jquery/src/core/var/rsingleTag.js | 4 +
snapporder/bower_components/jquery/src/css.js | 451 +
.../jquery/src/css/addGetHookIf.js | 24 +
.../bower_components/jquery/src/css/curCSS.js | 57 +
.../jquery/src/css/defaultDisplay.js | 70 +
.../jquery/src/css/hiddenVisibleSelectors.js | 15 +
.../jquery/src/css/support.js | 91 +
.../bower_components/jquery/src/css/swap.js | 28 +
.../jquery/src/css/var/cssExpand.js | 3 +
.../jquery/src/css/var/getStyles.js | 5 +
.../jquery/src/css/var/isHidden.js | 13 +
.../jquery/src/css/var/rmargin.js | 3 +
.../jquery/src/css/var/rnumnonpx.js | 5 +
.../bower_components/jquery/src/data.js | 179 +
.../bower_components/jquery/src/data/Data.js | 181 +
.../jquery/src/data/accepts.js | 20 +
.../jquery/src/data/var/data_priv.js | 5 +
.../jquery/src/data/var/data_user.js | 5 +
.../bower_components/jquery/src/deferred.js | 149 +
.../bower_components/jquery/src/deprecated.js | 13 +
.../bower_components/jquery/src/dimensions.js | 50 +
.../bower_components/jquery/src/effects.js | 649 ++
.../jquery/src/effects/Tween.js | 114 +
.../jquery/src/effects/animatedSelector.js | 13 +
.../bower_components/jquery/src/event.js | 868 ++
.../jquery/src/event/alias.js | 39 +
.../jquery/src/event/support.js | 9 +
.../jquery/src/exports/amd.js | 24 +
.../jquery/src/exports/global.js | 32 +
.../bower_components/jquery/src/intro.js | 44 +
.../bower_components/jquery/src/jquery.js | 36 +
.../jquery/src/manipulation.js | 582 ++
.../jquery/src/manipulation/_evalUrl.js | 18 +
.../jquery/src/manipulation/support.js | 31 +
.../src/manipulation/var/rcheckableType.js | 3 +
.../bower_components/jquery/src/offset.js | 204 +
.../bower_components/jquery/src/outro.js | 1 +
.../bower_components/jquery/src/queue.js | 142 +
.../jquery/src/queue/delay.js | 22 +
.../jquery/src/selector-native.js | 172 +
.../jquery/src/selector-sizzle.js | 14 +
.../bower_components/jquery/src/selector.js | 1 +
.../bower_components/jquery/src/serialize.js | 111 +
.../jquery/src/sizzle/dist/sizzle.js | 2044 ++++
.../jquery/src/sizzle/dist/sizzle.min.js | 3 +
.../jquery/src/sizzle/dist/sizzle.min.map | 1 +
.../bower_components/jquery/src/traversing.js | 200 +
.../jquery/src/traversing/findFilter.js | 100 +
.../src/traversing/var/rneedsContext.js | 6 +
.../bower_components/jquery/src/var/arr.js | 3 +
.../jquery/src/var/class2type.js | 4 +
.../bower_components/jquery/src/var/concat.js | 5 +
.../bower_components/jquery/src/var/hasOwn.js | 5 +
.../jquery/src/var/indexOf.js | 5 +
.../bower_components/jquery/src/var/pnum.js | 3 +
.../bower_components/jquery/src/var/push.js | 5 +
.../jquery/src/var/rnotwhite.js | 3 +
.../bower_components/jquery/src/var/slice.js | 5 +
.../jquery/src/var/strundefined.js | 3 +
.../jquery/src/var/support.js | 4 +
.../jquery/src/var/toString.js | 5 +
.../bower_components/jquery/src/wrap.js | 78 +
.../bower_components/modernizr/.bower.json | 14 +
.../bower_components/modernizr/.editorconfig | 10 +
.../bower_components/modernizr/.gitignore | 2 +
.../bower_components/modernizr/.travis.yml | 6 +
.../modernizr/feature-detects/a-download.js | 8 +
.../feature-detects/audio-audiodata-api.js | 4 +
.../feature-detects/audio-webaudio-api.js | 4 +
.../modernizr/feature-detects/battery-api.js | 8 +
.../feature-detects/battery-level.js | 11 +
.../feature-detects/blob-constructor.js | 10 +
.../feature-detects/canvas-todataurl-type.js | 28 +
.../feature-detects/contenteditable.js | 9 +
.../feature-detects/contentsecuritypolicy.js | 10 +
.../modernizr/feature-detects/contextmenu.js | 11 +
.../modernizr/feature-detects/cookies.js | 15 +
.../modernizr/feature-detects/cors.js | 3 +
.../css-backgroundposition-shorthand.js | 19 +
.../css-backgroundposition-xy.js | 15 +
.../feature-detects/css-backgroundrepeat.js | 31 +
.../css-backgroundsizecover.js | 10 +
.../feature-detects/css-boxsizing.js | 9 +
.../modernizr/feature-detects/css-calc.js | 12 +
.../feature-detects/css-cubicbezierrange.js | 8 +
.../feature-detects/css-displayrunin.js | 18 +
.../feature-detects/css-displaytable.js | 27 +
.../modernizr/feature-detects/css-filters.js | 7 +
.../modernizr/feature-detects/css-hyphens.js | 205 +
.../feature-detects/css-lastchild.js | 11 +
.../modernizr/feature-detects/css-mask.js | 12 +
.../feature-detects/css-mediaqueries.js | 3 +
.../feature-detects/css-objectfit.js | 6 +
.../feature-detects/css-overflow-scrolling.js | 9 +
.../feature-detects/css-pointerevents.js | 25 +
.../feature-detects/css-positionsticky.js | 13 +
.../modernizr/feature-detects/css-regions.js | 55 +
.../modernizr/feature-detects/css-remunit.js | 19 +
.../modernizr/feature-detects/css-resize.js | 8 +
.../feature-detects/css-scrollbars.js | 19 +
.../modernizr/feature-detects/css-shapes.js | 4 +
.../feature-detects/css-subpixelfont.js | 23 +
.../modernizr/feature-detects/css-supports.js | 6 +
.../feature-detects/css-userselect.js | 10 +
.../modernizr/feature-detects/css-vhunit.js | 14 +
.../modernizr/feature-detects/css-vmaxunit.js | 14 +
.../modernizr/feature-detects/css-vminunit.js | 14 +
.../modernizr/feature-detects/css-vwunit.js | 14 +
.../custom-protocol-handler.js | 10 +
.../modernizr/feature-detects/dart.js | 6 +
.../modernizr/feature-detects/dataview-api.js | 4 +
.../feature-detects/dom-classlist.js | 4 +
.../dom-createElement-attrs.js | 11 +
.../modernizr/feature-detects/dom-dataset.js | 9 +
.../feature-detects/dom-microdata.js | 4 +
.../feature-detects/elem-datalist.js | 12 +
.../modernizr/feature-detects/elem-details.js | 25 +
.../modernizr/feature-detects/elem-output.js | 4 +
.../feature-detects/elem-progress-meter.js | 11 +
.../modernizr/feature-detects/elem-ruby.js | 53 +
.../modernizr/feature-detects/elem-time.js | 4 +
.../modernizr/feature-detects/elem-track.js | 11 +
.../modernizr/feature-detects/emoji.js | 11 +
.../feature-detects/es5-strictmode.js | 7 +
.../event-deviceorientation-motion.js | 11 +
.../feature-detects/exif-orientation.js | 32 +
.../modernizr/feature-detects/file-api.js | 12 +
.../feature-detects/file-filesystem.js | 9 +
.../feature-detects/forms-fileinput.js | 13 +
.../feature-detects/forms-formattribute.js | 29 +
.../feature-detects/forms-inputnumber-l10n.js | 32 +
.../feature-detects/forms-placeholder.js | 10 +
.../feature-detects/forms-speechinput.js | 19 +
.../feature-detects/forms-validation.js | 62 +
.../feature-detects/fullscreen-api.js | 10 +
.../modernizr/feature-detects/gamepad.js | 12 +
.../modernizr/feature-detects/getusermedia.js | 5 +
.../modernizr/feature-detects/ie8compat.js | 12 +
.../feature-detects/iframe-sandbox.js | 5 +
.../feature-detects/iframe-seamless.js | 5 +
.../feature-detects/iframe-srcdoc.js | 5 +
.../modernizr/feature-detects/img-apng.js | 26 +
.../modernizr/feature-detects/img-webp.js | 20 +
.../modernizr/feature-detects/json.js | 7 +
.../feature-detects/lists-reversed.js | 6 +
.../modernizr/feature-detects/mathml.js | 23 +
.../feature-detects/network-connection.js | 22 +
.../feature-detects/network-eventsource.js | 5 +
.../modernizr/feature-detects/network-xhr2.js | 13 +
.../modernizr/feature-detects/notification.js | 10 +
.../modernizr/feature-detects/performance.js | 5 +
.../feature-detects/pointerlock-api.js | 4 +
.../feature-detects/quota-management-api.js | 11 +
.../feature-detects/requestanimationframe.js | 7 +
.../modernizr/feature-detects/script-async.js | 3 +
.../modernizr/feature-detects/script-defer.js | 3 +
.../modernizr/feature-detects/style-scoped.js | 6 +
.../modernizr/feature-detects/svg-filters.js | 13 +
.../modernizr/feature-detects/unicode.js | 32 +
.../modernizr/feature-detects/url-data-uri.js | 26 +
.../modernizr/feature-detects/userdata.js | 7 +
.../modernizr/feature-detects/vibration.js | 4 +
.../modernizr/feature-detects/web-intents.js | 6 +
.../feature-detects/webgl-extensions.js | 42 +
.../feature-detects/websockets-binary.js | 20 +
.../feature-detects/window-framed.js | 8 +
.../feature-detects/workers-blobworkers.js | 66 +
.../feature-detects/workers-dataworkers.js | 34 +
.../feature-detects/workers-sharedworkers.js | 3 +
.../bower_components/modernizr/grunt.js | 69 +
.../modernizr/media/Modernizr 2 Logo.ai | 291 +
.../modernizr/media/Modernizr 2 Logo.eps | Bin 0 -> 350902 bytes
.../modernizr/media/Modernizr 2 Logo.pdf | 291 +
.../modernizr/media/Modernizr 2 Logo.png | Bin 0 -> 14823 bytes
.../modernizr/media/Modernizr 2 Logo.svg | 35 +
.../bower_components/modernizr/modernizr.js | 1406 +++
.../bower_components/modernizr/readme.md | 28 +
.../modernizr/test/basic.html | 65 +
.../modernizr/test/caniuse.html | 1451 +++
.../test/caniuse_files/Windsong-webfont.eot | Bin 0 -> 40166 bytes
.../test/caniuse_files/Windsong-webfont.otf | Bin 0 -> 78680 bytes
.../test/caniuse_files/Windsong-webfont.svg | 147 +
.../test/caniuse_files/Windsong-webfont.ttf | Bin 0 -> 39936 bytes
.../test/caniuse_files/Windsong-webfont.woff | Bin 0 -> 27284 bytes
.../modernizr/test/caniuse_files/alpha.png | Bin 0 -> 163 bytes
.../test/caniuse_files/apng_test.png | Bin 0 -> 195 bytes
.../test/caniuse_files/before-after.png | Bin 0 -> 452 bytes
.../test/caniuse_files/form_validation.html | 15 +
.../modernizr/test/caniuse_files/ga.js | 43 +
.../modernizr/test/caniuse_files/green5x5.png | Bin 0 -> 72 bytes
.../test/caniuse_files/hashchange.html | 16 +
.../test/caniuse_files/jquery.min.js | 18 +
.../modernizr/test/caniuse_files/mathml.html | 120 +
.../test/caniuse_files/mathml_ref.png | Bin 0 -> 3140 bytes
.../test/caniuse_files/modernizr-1.7.min.js | 2 +
.../test/caniuse_files/png_alpha_result.png | Bin 0 -> 214 bytes
.../test/caniuse_files/pushstate.html | 40 +
.../modernizr/test/caniuse_files/red30x30.png | Bin 0 -> 93 bytes
.../modernizr/test/caniuse_files/ruby.png | Bin 0 -> 1339 bytes
.../test/caniuse_files/stroked-text.png | Bin 0 -> 1291 bytes
.../modernizr/test/caniuse_files/style.css | 168 +
.../test/caniuse_files/svg-html-blur.png | Bin 0 -> 1232 bytes
.../modernizr/test/caniuse_files/svg-img.svg | 5 +
.../test/caniuse_files/svg-img.svg.1 | 5 +
.../modernizr/test/caniuse_files/svg_blur.png | Bin 0 -> 3742 bytes
.../modernizr/test/caniuse_files/table.png | Bin 0 -> 2519 bytes
.../test/caniuse_files/text-shadow1.png | Bin 0 -> 796 bytes
.../test/caniuse_files/text-shadow2.png | Bin 0 -> 1680 bytes
.../test/caniuse_files/windsong_font.png | Bin 0 -> 1339 bytes
.../modernizr/test/caniuse_files/xhtml.html | 14 +
.../modernizr/test/index.html | 104 +
.../modernizr/test/js/basic.html | 65 +
.../modernizr/test/js/dumpdata.js | 75 +
.../modernizr/test/js/lib/detect-global.js | 153 +
.../modernizr/test/js/lib/jquery-1.7b2.js | 9279 +++++++++++++++++
.../modernizr/test/js/lib/jsonselect.js | 279 +
.../modernizr/test/js/lib/polyfills.js | 96 +
.../modernizr/test/js/lib/uaparser.js | 215 +
.../modernizr/test/js/setup.js | 44 +
.../modernizr/test/js/unit-caniuse.js | 191 +
.../modernizr/test/js/unit.js | 669 ++
.../modernizr/test/qunit/qunit.css | 231 +
.../modernizr/test/qunit/qunit.js | 1932 ++++
.../modernizr/test/qunit/run-qunit.js | 72 +
.../bower_components/underscore/.bower.json | 33 +
.../bower_components/underscore/.editorconfig | 14 +
.../bower_components/underscore/.gitignore | 2 +
.../bower_components/underscore/LICENSE | 23 +
.../bower_components/underscore/README.md | 22 +
.../bower_components/underscore/bower.json | 8 +
.../underscore/component.json | 10 +
.../bower_components/underscore/package.json | 27 +
.../bower_components/underscore/underscore.js | 1343 +++
snapporder/config-sample.php | 2 +
snapporder/css/style.css | 2 +-
.../img/snapporder_logo_dark_liggende.png | Bin 0 -> 12584 bytes
snapporder/img/success.jpg | Bin 0 -> 31935 bytes
snapporder/lib/functions.php | 271 +-
snapporder/scss/style.scss | 6 +
357 files changed, 67702 insertions(+), 112 deletions(-)
create mode 100644 snapporder/activate_confirmed.php
create mode 100644 snapporder/bower_components/fastclick/.bower.json
create mode 100644 snapporder/bower_components/fastclick/LICENSE
create mode 100644 snapporder/bower_components/fastclick/README.md
create mode 100644 snapporder/bower_components/fastclick/bower.json
create mode 100644 snapporder/bower_components/fastclick/lib/fastclick.js
create mode 100644 snapporder/bower_components/foundation/.bower.json
create mode 100644 snapporder/bower_components/foundation/bower.json
create mode 100644 snapporder/bower_components/foundation/css/foundation.css
create mode 100644 snapporder/bower_components/foundation/css/normalize.css
create mode 100644 snapporder/bower_components/foundation/js/foundation.js
create mode 100644 snapporder/bower_components/foundation/js/foundation.min.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.abide.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.accordion.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.alert.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.clearing.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.dropdown.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.equalizer.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.interchange.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.joyride.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.magellan.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.offcanvas.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.orbit.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.reveal.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.slider.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.tab.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.tooltip.js
create mode 100644 snapporder/bower_components/foundation/js/foundation/foundation.topbar.js
create mode 100644 snapporder/bower_components/foundation/js/vendor/fastclick.js
create mode 100644 snapporder/bower_components/foundation/js/vendor/jquery.cookie.js
create mode 100644 snapporder/bower_components/foundation/js/vendor/jquery.js
create mode 100644 snapporder/bower_components/foundation/js/vendor/modernizr.js
create mode 100644 snapporder/bower_components/foundation/js/vendor/placeholder.js
create mode 100644 snapporder/bower_components/foundation/scss/foundation.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/_functions.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/_settings.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_accordion.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_alert-boxes.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_block-grid.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_breadcrumbs.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_button-groups.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_buttons.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_clearing.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_dropdown-buttons.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_dropdown.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_flex-video.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_forms.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_global.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_grid.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_inline-lists.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_joyride.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_keystrokes.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_labels.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_magellan.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_offcanvas.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_orbit.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_pagination.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_panels.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_pricing-tables.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_progress-bars.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_range-slider.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_reveal-new.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_reveal.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_side-nav.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_split-buttons.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_sub-nav.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_switch.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_tables.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_tabs.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_thumbs.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_tooltips.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_top-bar.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_type.scss
create mode 100644 snapporder/bower_components/foundation/scss/foundation/components/_visibility.scss
create mode 100644 snapporder/bower_components/foundation/scss/normalize.scss
create mode 100644 snapporder/bower_components/jquery-placeholder/.bower.json
create mode 100644 snapporder/bower_components/jquery-placeholder/.gitattributes
create mode 100644 snapporder/bower_components/jquery-placeholder/.gitignore
create mode 100644 snapporder/bower_components/jquery-placeholder/LICENSE-MIT.txt
create mode 100644 snapporder/bower_components/jquery-placeholder/README.md
create mode 100644 snapporder/bower_components/jquery-placeholder/bower.json
create mode 100644 snapporder/bower_components/jquery-placeholder/demo.html
create mode 100644 snapporder/bower_components/jquery-placeholder/jquery.placeholder.js
create mode 100644 snapporder/bower_components/jquery-placeholder/tests/index.html
create mode 100644 snapporder/bower_components/jquery-placeholder/tests/tests.js
create mode 100644 snapporder/bower_components/jquery.cookie/.bower.json
create mode 100644 snapporder/bower_components/jquery.cookie/jquery.cookie.js
create mode 100644 snapporder/bower_components/jquery/.bower.json
create mode 100644 snapporder/bower_components/jquery/MIT-LICENSE.txt
create mode 100644 snapporder/bower_components/jquery/bower.json
create mode 100644 snapporder/bower_components/jquery/dist/jquery.js
create mode 100644 snapporder/bower_components/jquery/dist/jquery.min.js
create mode 100644 snapporder/bower_components/jquery/dist/jquery.min.map
create mode 100644 snapporder/bower_components/jquery/src/ajax.js
create mode 100644 snapporder/bower_components/jquery/src/ajax/jsonp.js
create mode 100644 snapporder/bower_components/jquery/src/ajax/load.js
create mode 100644 snapporder/bower_components/jquery/src/ajax/parseJSON.js
create mode 100644 snapporder/bower_components/jquery/src/ajax/parseXML.js
create mode 100644 snapporder/bower_components/jquery/src/ajax/script.js
create mode 100644 snapporder/bower_components/jquery/src/ajax/var/nonce.js
create mode 100644 snapporder/bower_components/jquery/src/ajax/var/rquery.js
create mode 100644 snapporder/bower_components/jquery/src/ajax/xhr.js
create mode 100644 snapporder/bower_components/jquery/src/attributes.js
create mode 100644 snapporder/bower_components/jquery/src/attributes/attr.js
create mode 100644 snapporder/bower_components/jquery/src/attributes/classes.js
create mode 100644 snapporder/bower_components/jquery/src/attributes/prop.js
create mode 100644 snapporder/bower_components/jquery/src/attributes/support.js
create mode 100644 snapporder/bower_components/jquery/src/attributes/val.js
create mode 100644 snapporder/bower_components/jquery/src/callbacks.js
create mode 100644 snapporder/bower_components/jquery/src/core.js
create mode 100644 snapporder/bower_components/jquery/src/core/access.js
create mode 100644 snapporder/bower_components/jquery/src/core/init.js
create mode 100644 snapporder/bower_components/jquery/src/core/parseHTML.js
create mode 100644 snapporder/bower_components/jquery/src/core/ready.js
create mode 100644 snapporder/bower_components/jquery/src/core/var/rsingleTag.js
create mode 100644 snapporder/bower_components/jquery/src/css.js
create mode 100644 snapporder/bower_components/jquery/src/css/addGetHookIf.js
create mode 100644 snapporder/bower_components/jquery/src/css/curCSS.js
create mode 100644 snapporder/bower_components/jquery/src/css/defaultDisplay.js
create mode 100644 snapporder/bower_components/jquery/src/css/hiddenVisibleSelectors.js
create mode 100644 snapporder/bower_components/jquery/src/css/support.js
create mode 100644 snapporder/bower_components/jquery/src/css/swap.js
create mode 100644 snapporder/bower_components/jquery/src/css/var/cssExpand.js
create mode 100644 snapporder/bower_components/jquery/src/css/var/getStyles.js
create mode 100644 snapporder/bower_components/jquery/src/css/var/isHidden.js
create mode 100644 snapporder/bower_components/jquery/src/css/var/rmargin.js
create mode 100644 snapporder/bower_components/jquery/src/css/var/rnumnonpx.js
create mode 100644 snapporder/bower_components/jquery/src/data.js
create mode 100644 snapporder/bower_components/jquery/src/data/Data.js
create mode 100644 snapporder/bower_components/jquery/src/data/accepts.js
create mode 100644 snapporder/bower_components/jquery/src/data/var/data_priv.js
create mode 100644 snapporder/bower_components/jquery/src/data/var/data_user.js
create mode 100644 snapporder/bower_components/jquery/src/deferred.js
create mode 100644 snapporder/bower_components/jquery/src/deprecated.js
create mode 100644 snapporder/bower_components/jquery/src/dimensions.js
create mode 100644 snapporder/bower_components/jquery/src/effects.js
create mode 100644 snapporder/bower_components/jquery/src/effects/Tween.js
create mode 100644 snapporder/bower_components/jquery/src/effects/animatedSelector.js
create mode 100644 snapporder/bower_components/jquery/src/event.js
create mode 100644 snapporder/bower_components/jquery/src/event/alias.js
create mode 100644 snapporder/bower_components/jquery/src/event/support.js
create mode 100644 snapporder/bower_components/jquery/src/exports/amd.js
create mode 100644 snapporder/bower_components/jquery/src/exports/global.js
create mode 100644 snapporder/bower_components/jquery/src/intro.js
create mode 100644 snapporder/bower_components/jquery/src/jquery.js
create mode 100644 snapporder/bower_components/jquery/src/manipulation.js
create mode 100644 snapporder/bower_components/jquery/src/manipulation/_evalUrl.js
create mode 100644 snapporder/bower_components/jquery/src/manipulation/support.js
create mode 100644 snapporder/bower_components/jquery/src/manipulation/var/rcheckableType.js
create mode 100644 snapporder/bower_components/jquery/src/offset.js
create mode 100644 snapporder/bower_components/jquery/src/outro.js
create mode 100644 snapporder/bower_components/jquery/src/queue.js
create mode 100644 snapporder/bower_components/jquery/src/queue/delay.js
create mode 100644 snapporder/bower_components/jquery/src/selector-native.js
create mode 100644 snapporder/bower_components/jquery/src/selector-sizzle.js
create mode 100644 snapporder/bower_components/jquery/src/selector.js
create mode 100644 snapporder/bower_components/jquery/src/serialize.js
create mode 100644 snapporder/bower_components/jquery/src/sizzle/dist/sizzle.js
create mode 100644 snapporder/bower_components/jquery/src/sizzle/dist/sizzle.min.js
create mode 100644 snapporder/bower_components/jquery/src/sizzle/dist/sizzle.min.map
create mode 100644 snapporder/bower_components/jquery/src/traversing.js
create mode 100644 snapporder/bower_components/jquery/src/traversing/findFilter.js
create mode 100644 snapporder/bower_components/jquery/src/traversing/var/rneedsContext.js
create mode 100644 snapporder/bower_components/jquery/src/var/arr.js
create mode 100644 snapporder/bower_components/jquery/src/var/class2type.js
create mode 100644 snapporder/bower_components/jquery/src/var/concat.js
create mode 100644 snapporder/bower_components/jquery/src/var/hasOwn.js
create mode 100644 snapporder/bower_components/jquery/src/var/indexOf.js
create mode 100644 snapporder/bower_components/jquery/src/var/pnum.js
create mode 100644 snapporder/bower_components/jquery/src/var/push.js
create mode 100644 snapporder/bower_components/jquery/src/var/rnotwhite.js
create mode 100644 snapporder/bower_components/jquery/src/var/slice.js
create mode 100644 snapporder/bower_components/jquery/src/var/strundefined.js
create mode 100644 snapporder/bower_components/jquery/src/var/support.js
create mode 100644 snapporder/bower_components/jquery/src/var/toString.js
create mode 100644 snapporder/bower_components/jquery/src/wrap.js
create mode 100644 snapporder/bower_components/modernizr/.bower.json
create mode 100644 snapporder/bower_components/modernizr/.editorconfig
create mode 100644 snapporder/bower_components/modernizr/.gitignore
create mode 100644 snapporder/bower_components/modernizr/.travis.yml
create mode 100644 snapporder/bower_components/modernizr/feature-detects/a-download.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/audio-audiodata-api.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/audio-webaudio-api.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/battery-api.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/battery-level.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/blob-constructor.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/canvas-todataurl-type.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/contenteditable.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/contentsecuritypolicy.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/contextmenu.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/cookies.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/cors.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-backgroundposition-shorthand.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-backgroundposition-xy.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-backgroundrepeat.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-backgroundsizecover.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-boxsizing.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-calc.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-cubicbezierrange.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-displayrunin.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-displaytable.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-filters.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-hyphens.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-lastchild.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-mask.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-mediaqueries.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-objectfit.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-overflow-scrolling.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-pointerevents.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-positionsticky.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-regions.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-remunit.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-resize.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-scrollbars.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-shapes.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-subpixelfont.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-supports.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-userselect.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-vhunit.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-vmaxunit.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-vminunit.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/css-vwunit.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/custom-protocol-handler.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/dart.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/dataview-api.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/dom-classlist.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/dom-createElement-attrs.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/dom-dataset.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/dom-microdata.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/elem-datalist.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/elem-details.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/elem-output.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/elem-progress-meter.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/elem-ruby.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/elem-time.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/elem-track.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/emoji.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/es5-strictmode.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/event-deviceorientation-motion.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/exif-orientation.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/file-api.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/file-filesystem.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/forms-fileinput.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/forms-formattribute.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/forms-inputnumber-l10n.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/forms-placeholder.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/forms-speechinput.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/forms-validation.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/fullscreen-api.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/gamepad.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/getusermedia.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/ie8compat.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/iframe-sandbox.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/iframe-seamless.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/iframe-srcdoc.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/img-apng.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/img-webp.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/json.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/lists-reversed.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/mathml.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/network-connection.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/network-eventsource.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/network-xhr2.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/notification.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/performance.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/pointerlock-api.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/quota-management-api.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/requestanimationframe.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/script-async.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/script-defer.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/style-scoped.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/svg-filters.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/unicode.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/url-data-uri.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/userdata.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/vibration.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/web-intents.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/webgl-extensions.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/websockets-binary.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/window-framed.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/workers-blobworkers.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/workers-dataworkers.js
create mode 100644 snapporder/bower_components/modernizr/feature-detects/workers-sharedworkers.js
create mode 100644 snapporder/bower_components/modernizr/grunt.js
create mode 100644 snapporder/bower_components/modernizr/media/Modernizr 2 Logo.ai
create mode 100644 snapporder/bower_components/modernizr/media/Modernizr 2 Logo.eps
create mode 100644 snapporder/bower_components/modernizr/media/Modernizr 2 Logo.pdf
create mode 100644 snapporder/bower_components/modernizr/media/Modernizr 2 Logo.png
create mode 100644 snapporder/bower_components/modernizr/media/Modernizr 2 Logo.svg
create mode 100644 snapporder/bower_components/modernizr/modernizr.js
create mode 100644 snapporder/bower_components/modernizr/readme.md
create mode 100644 snapporder/bower_components/modernizr/test/basic.html
create mode 100644 snapporder/bower_components/modernizr/test/caniuse.html
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/Windsong-webfont.eot
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/Windsong-webfont.otf
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/Windsong-webfont.svg
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/Windsong-webfont.ttf
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/Windsong-webfont.woff
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/alpha.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/apng_test.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/before-after.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/form_validation.html
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/ga.js
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/green5x5.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/hashchange.html
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/jquery.min.js
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/mathml.html
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/mathml_ref.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/modernizr-1.7.min.js
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/png_alpha_result.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/pushstate.html
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/red30x30.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/ruby.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/stroked-text.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/style.css
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/svg-html-blur.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/svg-img.svg
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/svg-img.svg.1
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/svg_blur.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/table.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/text-shadow1.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/text-shadow2.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/windsong_font.png
create mode 100644 snapporder/bower_components/modernizr/test/caniuse_files/xhtml.html
create mode 100644 snapporder/bower_components/modernizr/test/index.html
create mode 100644 snapporder/bower_components/modernizr/test/js/basic.html
create mode 100644 snapporder/bower_components/modernizr/test/js/dumpdata.js
create mode 100644 snapporder/bower_components/modernizr/test/js/lib/detect-global.js
create mode 100644 snapporder/bower_components/modernizr/test/js/lib/jquery-1.7b2.js
create mode 100644 snapporder/bower_components/modernizr/test/js/lib/jsonselect.js
create mode 100644 snapporder/bower_components/modernizr/test/js/lib/polyfills.js
create mode 100644 snapporder/bower_components/modernizr/test/js/lib/uaparser.js
create mode 100644 snapporder/bower_components/modernizr/test/js/setup.js
create mode 100644 snapporder/bower_components/modernizr/test/js/unit-caniuse.js
create mode 100644 snapporder/bower_components/modernizr/test/js/unit.js
create mode 100644 snapporder/bower_components/modernizr/test/qunit/qunit.css
create mode 100644 snapporder/bower_components/modernizr/test/qunit/qunit.js
create mode 100644 snapporder/bower_components/modernizr/test/qunit/run-qunit.js
create mode 100644 snapporder/bower_components/underscore/.bower.json
create mode 100644 snapporder/bower_components/underscore/.editorconfig
create mode 100644 snapporder/bower_components/underscore/.gitignore
create mode 100644 snapporder/bower_components/underscore/LICENSE
create mode 100644 snapporder/bower_components/underscore/README.md
create mode 100644 snapporder/bower_components/underscore/bower.json
create mode 100644 snapporder/bower_components/underscore/component.json
create mode 100644 snapporder/bower_components/underscore/package.json
create mode 100644 snapporder/bower_components/underscore/underscore.js
create mode 100644 snapporder/img/snapporder_logo_dark_liggende.png
create mode 100644 snapporder/img/success.jpg
diff --git a/inside/User.php b/inside/User.php
index ef82243..9fe4eaf 100644
--- a/inside/User.php
+++ b/inside/User.php
@@ -57,68 +57,67 @@ class User {
error("User: No data supplied.");
$this->id = -1;
return false;
+ }
+
+ /* Validate user supplied data. */
+ if( !validate_username_length($data['username']) ) {
+ notify("Brukernavnet må være mellom 3 og 12 tegn.");
+ $this->id = -1;
+ return false;
+ }
+ if( !validate_username_chars($data['username']) ) {
+ notify("Brukernavnet kan kun inneholde små bokstaver.");
+ $this->id = -1;
+ return false;
+ }
+ $this->username = strtolower(stripcslashes($data['username']));
+ if( !validate_password_length($data['password']) ) {
+ notify("Passordet må være minst 8 tegn.");
+ $this->id = -1;
+ return false;
+ }
+ if( !validate_password_chars($data['password']) ) {
+ notify("Passordet kan ikke inneholde enkel- eller dobbelfnutt eller bakslask.");
+ $this->id = -1;
+ return false;
+ }
+ if ($data['password1'] != $data['password2']) {
+ notify("Passordene var ikke like.");
+ $this->id = -1;
+ return false;
+ }
+ $this->password = $data['password1'];
+
+ $this->addresstype = isset ($data['addresstype']) ? "int" : "no";
+
+ if (isDate($data['birthdate'])) {
+ $this->birthdate = $data['birthdate'];
} else {
- /* Validate user supplied data. */
- if (strlen(stripcslashes($data['username'])) < 3 || strlen(stripcslashes($data['username'])) > 12 ) {
- notify("Brukernavnet må være mellom 3 og 12 tegn.");
- $this->id = -1;
- return false;
- }
- if(! preg_match('/^[a-z]*$/', strtolower(stripcslashes($data['username'])))) {
- notify("Brukernavnet kan kun inneholde små bokstaver.");
- $this->id = -1;
- return false;
- }
- $this->username = strtolower(stripcslashes($data['username']));
- if (strlen($data['password1']) < 8) {
- notify("Passordet må være minst 8 tegn.");
- $this->id = -1;
- return false;
- }
- /* No double nor single quotes */
- if(preg_match('/[\\\"\']+/', $data['password1'])) {
- notify("Passordet kan ikke inneholde enkel- eller dobbelfnutt eller bakslask.");
- $this->id = -1;
- return false;
- }
- if ($data['password1'] != $data['password2']) {
- notify("Passordene var ikke like.");
- $this->id = -1;
- return false;
- }
- $this->password = $data['password1'];
+ notify("Ugyldig fødselsdato: " . $data['birthdate']);
+ $this->id = -1;
+ return false;
+ }
- $this->addresstype = isset ($data['addresstype']) ? "int" : "no";
+ if( $data['phonenumber'] ) {
+ $data['phonenumber'] = clean_phonenumber($data['phonenumber']);
+ }
- if (isDate($data['birthdate'])) {
- $this->birthdate = $data['birthdate'];
- } else {
- notify("Ugyldig fødselsdato: " . $data['birthdate']);
- $this->id = -1;
- return false;
- }
+ /* No duplicate phone numbers */
+ if( getUseridFromPhone($data['phonenumber']) !== false ) {
+ notify("Telefonnummeret er allerede registrert på en bruker.");
+ $this->id = -1;
+ return false;
+ }
- /* TODO replace +47 and 0047 with blank */
- //if( $data['phonenumber'] ) {
- //}
-
- /* No duplicate phone numbers */
- if( getUseridFromPhone($data['phonenumber']) !== false ) {
- notify("Telefonnummeret er allerede registrert på en bruker.");
- $this->id = -1;
- return false;
- }
-
- if (isset ($data['active'])) {
- $this->division_id_request = $data['division'];
- } else {
- $this->division_id_request = NULL;
- }
- if (isset ($data['group'])) {
- $this->group_id = $data['group_id'];
- } else {
- $this->group_id = NULL;
- }
+ if (isset ($data['active'])) {
+ $this->division_id_request = $data['division'];
+ } else {
+ $this->division_id_request = NULL;
+ }
+ if (isset ($data['group'])) {
+ $this->group_id = $data['group_id'];
+ } else {
+ $this->group_id = NULL;
}
} else { //ID set, existing user
if ($data != NULL) {
diff --git a/inside/functions.php b/inside/functions.php
index 39fc4a8..41757db 100644
--- a/inside/functions.php
+++ b/inside/functions.php
@@ -1690,5 +1690,80 @@ function get_gravatar( $email, $s = 80, $d = 'mm', $r = 'g', $img = false, $atts
}
return $url;
}
+function validate_username_length($username) {
+ return strlen(stripcslashes($username)) >= 3 && strlen(stripcslashes($username)) <= 12;
+}
+function validate_username_chars($username) {
+ return preg_match('/^[a-z]+[a-z0-9]*$/', strtolower(stripcslashes($username)));
+}
+function validate_password_length($password) {
+ return strlen($password) >= 8;
+}
+function validate_password_chars($password) {
+ /* No double nor single quotes */
+ if( preg_match('/[\\\"\']+/', $password) ) {
+ return false;
+ }
+ return true;
+}
+function clean_phonenumber($pn) {
+ $pn = preg_replace('/[^0-9\+]/', '', $pn); // remove everything except valid chars
+ $pn = preg_replace('/^00/','+', $pn); // replace starting 00 with +
+ // norwegian phone numbers
+ if( strlen($pn) === 8 && ($pn[0] === "4" || $pn[0] === "9") ) {
+ $pn = "+47".$pn;
+ }
+ return $pn;
+}
+// ISO-8601 Y-m-d
+function clean_date($date) {
+ // returns a DateTime object
+ return date_create_from_format('Y-m-d', $date);
+}
+// E.164
+function valid_phonenumber($phone) {
+ return preg_match('/^\+?\d{8,15}$/i', $phone);
+}
+function valida_email($email) {
+ return filter_var($email, FILTER_VALIDATE_EMAIL);
+}
+
+/* Set HTTP response code */
+function set_response_code($code) {
+ if(!is_int($code)) {
+ return false;
+ }
+ header('X-Ignore-This: something', true, $code);
+}
+/* Redirect to path on same domain */
+function redirect($path) {
+ $scheme ="http".((empty($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off')?'':'s');
+ $host = $_SERVER['HTTP_HOST'];
+ $location = "$scheme://$host$path";
+ header("Location: $location");
+}
+
+function log_userupdate($updated, $comment, $updated_by=NULL) {
+ global $conn;
+
+ if( $updated_by == NULL) {
+ $updated_by = $updated;
+ }
+
+ $now = date_format(date_create(), "Y-m-d H:i:s");
+ $data = array(
+ 'date' => $now,
+ 'user_id_updated' => $updated,
+ 'comment' => $comment,
+ 'user_id_updated_by' => $updated_by
+ );
+ $res = $conn->autoExecute("din_userphonenumber", $data, DB_AUTOQUERY_INSERT);
+
+ if (DB::isError($res)) {
+
+ return false;
+ }
+ return true;
+}
?>
diff --git a/snapporder/activate.php b/snapporder/activate.php
index dd28590..dff0210 100644
--- a/snapporder/activate.php
+++ b/snapporder/activate.php
@@ -2,10 +2,7 @@
/* User activation form (step 2).
* SnappOrder first saves initial data in our temp user db
*
- * TODO:
- * - validate user data
- * - load inside user object and populate it
- * - persist to db
+ * TODO possible to activate expired memberships?
*/
set_include_path("../includes/");
@@ -17,7 +14,7 @@ require_once("lib/functions.php");
require_once("config.php");
if( !isset($_GET['userid']) || !isset($_GET['token']) ) {
- echo "Ugyldig aktiveringslenke. Ta kontakt med medlemskap@studentersamfundet.no hvis du har spørsmål.";
+ echo "Ugyldig eller utgått aktiveringslenke. Ta kontakt med medlemskap@studentersamfundet.no hvis du har spørsmål.";
set_response_code(400);
die();
}
@@ -32,22 +29,44 @@ if(DB :: isError($conn)) {
die();
}
$conn->setFetchMode(DB_FETCHMODE_ASSOC);
+
/* Fetch user and check for valid token */
$user = get_user($_GET['userid']);
if(!$user) {
- echo "Ugyldig aktiveringslenke. Ta kontakt med medlemskap@studentersamfundet.no hvis du har spørsmål.";
+ echo "Ugyldig eller utgått aktiveringslenke. Ta kontakt med medlemskap@studentersamfundet.no hvis du har spørsmål.";
set_response_code(400);
die();
}
if( !check_token($user, $_GET['token'], SECRET_KEY)) {
- echo "Ugyldig aktiveringslenke. Ta kontakt med medlemskap@studentersamfundet.no hvis du har spørsmål.";
+ echo "Ugyldig eller utgått aktiveringslenke. Ta kontakt med medlemskap@studentersamfundet.no hvis du har spørsmål.";
set_response_code(400);
die();
}
+// empty default form values
+$validation_errors = "";
+$username = "";
+$password = "";
+$newsletter_checked = " checked";
+
if( isset($_POST['submit']) ) {
- // TODO validate and persist
- var_dump($_POST);
+ try {
+ $data = validate_activation_form($_POST); // can throw
+
+ // persist
+ save_activation_form($data);
+ // redirect to confirmation page
+ redirect("/snapporder/activate_confirmed.php");
+ die();
+
+ } catch(ValidationException $e) {
+ $validation_errors = $e->getMessage();
+
+ /* Refill form values*/
+ $username = $_POST['username'];
+ $password = $_POST['password'];
+ $newsletter_checked = isset($_POST['newsletter']) ? " checked" : "";
+ }
}
?>
@@ -76,34 +95,41 @@ if( isset($_POST['submit']) ) {
Hei , du er veldig nære å kunne:
+ - FÃ¥ tilgang til din medlemskonto
- Bruke trådløsnett på Chateau Neuf
- Bli aktiv på Studentersamfundet
+ Fullfør profilen din ved å angi brukernavn og passord.
Din profil
- $val) {
- if( in_array($key, $visible_vars) ) {
- echo "- ".ucfirst($key).": $val
\n";
- }
- }
- ?>
+
+ - Navn:
+ - E-post:
+ - Medlemsnummer:
- Kontodetaljer
+ 0 ) {
+ echo "$validation_errors";
+ } ?>
+
+
diff --git a/snapporder/activate_confirmed.php b/snapporder/activate_confirmed.php
new file mode 100644
index 0000000..88006c9
--- /dev/null
+++ b/snapporder/activate_confirmed.php
@@ -0,0 +1,33 @@
+
+
+