Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

change to hollagram

  • Loading branch information...
commit 84d6b2faccbc6684f27f7cac6b50395561a81749 1 parent 97d85bf
Sidney Maestre authored
Showing with 14,764 additions and 138 deletions.
  1. +3 −50 README.md
  2. +645 −0 css/font-awesome-ie7.css
  3. +303 −0 css/font-awesome.css
  4. BIN  font/fontawesome-webfont.eot
  5. +255 −0 font/fontawesome-webfont.svg
  6. BIN  font/fontawesome-webfont.ttf
  7. BIN  font/fontawesome-webfont.woff
  8. BIN  images/foundation/left-arrow.png
  9. BIN  images/foundation/mask-black.png
  10. BIN  images/foundation/pause-black.png
  11. BIN  images/foundation/right-arrow.png
  12. BIN  images/foundation/rotator-black.png
  13. BIN  images/foundation/timer-black.png
  14. +737 −88 index.html
  15. +35 −0 javascripts/app.js
  16. +52 −0 javascripts/foundation.js
  17. +15 −0 javascripts/jquery.foundation.accordion.js
  18. +19 −0 javascripts/jquery.foundation.alerts.js
  19. +45 −0 javascripts/jquery.foundation.buttons.js
  20. +481 −0 javascripts/jquery.foundation.forms.js
  21. +30 −0 javascripts/jquery.foundation.navigation.js
  22. +633 −0 javascripts/jquery.foundation.orbit.js
  23. +773 −0 javascripts/jquery.foundation.reveal.js
  24. +36 −0 javascripts/jquery.foundation.tabs.js
  25. +183 −0 javascripts/jquery.foundation.tooltips.js
  26. +9,404 −0 javascripts/jquery.js
  27. +157 −0 javascripts/jquery.placeholder.js
  28. +4 −0 javascripts/modernizr.foundation.js
  29. +29 −0 stylesheets/app.css
  30. +925 −0 stylesheets/foundation.css
53 README.md 100755 → 100644
View
@@ -1,51 +1,4 @@
-# StackMob Javascript Examples
-
-Welcome! You're here because you downloaded the JS SDK Starter zip or you've forked/cloned the <a href="https://github.com/stackmob/stackmob-javascript-examples" target="_blank">JS Examples GitHub repo</a>.
-
-Here are several examples utilizing the JS SDK. Feel free to use the code as you wish - copy, reuse.. recycle?
-
-There are demos and examples for your reference.
-
-Do you need a GitHub project to try <a href="http://www.stackmob.com/devcenter/docs/StackMob-Hosted-HTML5:-GitHub" target="_blank">StackMob hosting</a>? Feel free to use this one by forking it to your GitHub account!
-
-You can find the `stackmob-javascript-examples` repo at <a target="_blank" href="https://github.com/stackmob/stackmob-javascript-examples">https://github.com/stackmob/stackmob-javascript-examples</a>
-
-# Contents
-
-The root folder has `index.html` which will get you started right away!
-
-Included are examples housed in each respective folder.
-
-# Running the Examples
-
-
-You'll need to initialize `StackMob.init({ ... })` with your application's information. Some of these examples also need specific schemas and relationships set up. These will be described in the example pages and respective READMEs.
-
-First, <a href="https://stackmob.com/platform/help/tutorials/html5_js_sdk" target="_blank">Setup your JS SDK and your StackMob Local Runner</a>.
-
-Save your `.stackmob` file to the folder. For instance, if you see:
-
- /mycomputer/JS Starter 0.5.0/index.html
-
-Then save your `.stackmob` file into:
-
- /mycomputer/JS Starter 0.5.0/.stackmob
-
-You should then run StackMob Local Runner from the root folder. In your terminal/command prompt, run:
-
- > stackmob server
-
-
-Once Local Runner is running, feel free to start exploring by visiting these pages!
-
-* <a href="http://127.0.0.1:4567/api/examples.html" target="_blank">http://127.0.0.1:4567/index.html</a>
-* <a href="http://127.0.0.1:4567/api/examples.html" target="_blank">http://127.0.0.1:4567/api/examples.html</a>
-
-...and more!
-
-# Contributing to the Examples
-
-Have some examples on how to use the StackMob JS SDK in NodeJS? How about CoffeeScript? Email us at support@stackmob.com or simply fork this repo and submit a pull request!
-
-If you'd like to share your repo, contact us at support@stackmob.com and we can also link to it.
+hollagram
+=========
+Social Network demo app built on StackMob - Why Tweet when you can Shout
645 css/font-awesome-ie7.css
View
@@ -0,0 +1,645 @@
+[class^="icon-"],
+[class*=" icon-"] {
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+}
+.btn.dropdown-toggle [class^="icon-"],
+.btn.dropdown-toggle [class*=" icon-"] {
+ /* keeps button heights with and without icons the same */
+
+ line-height: 1.4em;
+}
+.icon-large {
+ font-size: 1.3333em;
+}
+.icon-glass {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf000;&nbsp;');
+}
+.icon-music {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf001;&nbsp;');
+}
+.icon-search {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf002;&nbsp;');
+}
+.icon-envelope {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf003;&nbsp;');
+}
+.icon-heart {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf004;&nbsp;');
+}
+.icon-star {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf005;&nbsp;');
+}
+.icon-star-empty {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf006;&nbsp;');
+}
+.icon-user {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf007;&nbsp;');
+}
+.icon-film {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf008;&nbsp;');
+}
+.icon-th-large {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf009;&nbsp;');
+}
+.icon-th {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf00a;&nbsp;');
+}
+.icon-th-list {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf00b;&nbsp;');
+}
+.icon-ok {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf00c;&nbsp;');
+}
+.icon-remove {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf00d;&nbsp;');
+}
+.icon-zoom-in {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf00e;&nbsp;');
+}
+.icon-zoom-out {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf010;&nbsp;');
+}
+.icon-off {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf011;&nbsp;');
+}
+.icon-signal {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf012;&nbsp;');
+}
+.icon-cog {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf013;&nbsp;');
+}
+.icon-trash {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf014;&nbsp;');
+}
+.icon-home {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf015;&nbsp;');
+}
+.icon-file {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf016;&nbsp;');
+}
+.icon-time {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf017;&nbsp;');
+}
+.icon-road {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf018;&nbsp;');
+}
+.icon-download-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf019;&nbsp;');
+}
+.icon-download {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf01a;&nbsp;');
+}
+.icon-upload {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf01b;&nbsp;');
+}
+.icon-inbox {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf01c;&nbsp;');
+}
+.icon-play-circle {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf01d;&nbsp;');
+}
+.icon-repeat {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf01e;&nbsp;');
+}
+.icon-refresh {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf021;&nbsp;');
+}
+.icon-list-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf022;&nbsp;');
+}
+.icon-lock {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf023;&nbsp;');
+}
+.icon-flag {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf024;&nbsp;');
+}
+.icon-headphones {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf025;&nbsp;');
+}
+.icon-volume-off {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf026;&nbsp;');
+}
+.icon-volume-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf027;&nbsp;');
+}
+.icon-volume-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf028;&nbsp;');
+}
+.icon-qrcode {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf029;&nbsp;');
+}
+.icon-barcode {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02a;&nbsp;');
+}
+.icon-tag {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02b;&nbsp;');
+}
+.icon-tags {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02c;&nbsp;');
+}
+.icon-book {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02d;&nbsp;');
+}
+.icon-bookmark {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02e;&nbsp;');
+}
+.icon-print {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf02f;&nbsp;');
+}
+.icon-camera {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf030;&nbsp;');
+}
+.icon-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf031;&nbsp;');
+}
+.icon-bold {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf032;&nbsp;');
+}
+.icon-italic {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf033;&nbsp;');
+}
+.icon-text-height {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf034;&nbsp;');
+}
+.icon-text-width {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf035;&nbsp;');
+}
+.icon-align-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf036;&nbsp;');
+}
+.icon-align-center {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf037;&nbsp;');
+}
+.icon-align-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf038;&nbsp;');
+}
+.icon-align-justify {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf039;&nbsp;');
+}
+.icon-list {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf03a;&nbsp;');
+}
+.icon-indent-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf03b;&nbsp;');
+}
+.icon-indent-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf03c;&nbsp;');
+}
+.icon-facetime-video {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf03d;&nbsp;');
+}
+.icon-picture {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf03e;&nbsp;');
+}
+.icon-pencil {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf040;&nbsp;');
+}
+.icon-map-marker {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf041;&nbsp;');
+}
+.icon-adjust {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf042;&nbsp;');
+}
+.icon-tint {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf043;&nbsp;');
+}
+.icon-edit {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf044;&nbsp;');
+}
+.icon-share {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf045;&nbsp;');
+}
+.icon-check {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf046;&nbsp;');
+}
+.icon-move {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf047;&nbsp;');
+}
+.icon-step-backward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf048;&nbsp;');
+}
+.icon-fast-backward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf049;&nbsp;');
+}
+.icon-backward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf04a;&nbsp;');
+}
+.icon-play {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf04b;&nbsp;');
+}
+.icon-pause {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf04c;&nbsp;');
+}
+.icon-stop {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf04d;&nbsp;');
+}
+.icon-forward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf04e;&nbsp;');
+}
+.icon-fast-forward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf050;&nbsp;');
+}
+.icon-step-forward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf051;&nbsp;');
+}
+.icon-eject {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf052;&nbsp;');
+}
+.icon-chevron-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf053;&nbsp;');
+}
+.icon-chevron-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf054;&nbsp;');
+}
+.icon-plus-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf055;&nbsp;');
+}
+.icon-minus-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf056;&nbsp;');
+}
+.icon-remove-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf057;&nbsp;');
+}
+.icon-ok-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf058;&nbsp;');
+}
+.icon-question-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf059;&nbsp;');
+}
+.icon-info-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf05a;&nbsp;');
+}
+.icon-screenshot {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf05b;&nbsp;');
+}
+.icon-remove-circle {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf05c;&nbsp;');
+}
+.icon-ok-circle {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf05d;&nbsp;');
+}
+.icon-ban-circle {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf05e;&nbsp;');
+}
+.icon-arrow-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf060;&nbsp;');
+}
+.icon-arrow-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf061;&nbsp;');
+}
+.icon-arrow-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf062;&nbsp;');
+}
+.icon-arrow-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf063;&nbsp;');
+}
+.icon-share-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf064;&nbsp;');
+}
+.icon-resize-full {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf065;&nbsp;');
+}
+.icon-resize-small {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf066;&nbsp;');
+}
+.icon-plus {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf067;&nbsp;');
+}
+.icon-minus {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf068;&nbsp;');
+}
+.icon-asterisk {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf069;&nbsp;');
+}
+.icon-exclamation-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf06a;&nbsp;');
+}
+.icon-gift {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf06b;&nbsp;');
+}
+.icon-leaf {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf06c;&nbsp;');
+}
+.icon-fire {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf06d;&nbsp;');
+}
+.icon-eye-open {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf06e;&nbsp;');
+}
+.icon-eye-close {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf070;&nbsp;');
+}
+.icon-warning-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf071;&nbsp;');
+}
+.icon-plane {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf072;&nbsp;');
+}
+.icon-calendar {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf073;&nbsp;');
+}
+.icon-random {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf074;&nbsp;');
+}
+.icon-comment {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf075;&nbsp;');
+}
+.icon-magnet {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf076;&nbsp;');
+}
+.icon-chevron-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf077;&nbsp;');
+}
+.icon-chevron-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf078;&nbsp;');
+}
+.icon-retweet {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf079;&nbsp;');
+}
+.icon-shopping-cart {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf07a;&nbsp;');
+}
+.icon-folder-close {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf07b;&nbsp;');
+}
+.icon-folder-open {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf07c;&nbsp;');
+}
+.icon-resize-vertical {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf07d;&nbsp;');
+}
+.icon-resize-horizontal {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf07e;&nbsp;');
+}
+.icon-bar-chart {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf080;&nbsp;');
+}
+.icon-twitter-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf081;&nbsp;');
+}
+.icon-facebook-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf082;&nbsp;');
+}
+.icon-camera-retro {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf083;&nbsp;');
+}
+.icon-key {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf084;&nbsp;');
+}
+.icon-cogs {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf085;&nbsp;');
+}
+.icon-comments {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf086;&nbsp;');
+}
+.icon-thumbs-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf087;&nbsp;');
+}
+.icon-thumbs-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf088;&nbsp;');
+}
+.icon-star-half {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf089;&nbsp;');
+}
+.icon-heart-empty {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08a;&nbsp;');
+}
+.icon-signout {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08b;&nbsp;');
+}
+.icon-linkedin-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08c;&nbsp;');
+}
+.icon-pushpin {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08d;&nbsp;');
+}
+.icon-external-link {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf08e;&nbsp;');
+}
+.icon-signin {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf090;&nbsp;');
+}
+.icon-trophy {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf091;&nbsp;');
+}
+.icon-github-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf092;&nbsp;');
+}
+.icon-upload-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf093;&nbsp;');
+}
+.icon-lemon {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf094;&nbsp;');
+}
+.icon-phone {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf095;&nbsp;');
+}
+.icon-check-empty {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf096;&nbsp;');
+}
+.icon-bookmark-empty {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf097;&nbsp;');
+}
+.icon-phone-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf098;&nbsp;');
+}
+.icon-twitter {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf099;&nbsp;');
+}
+.icon-facebook {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09a;&nbsp;');
+}
+.icon-github {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09b;&nbsp;');
+}
+.icon-unlock {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09c;&nbsp;');
+}
+.icon-credit-card {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09d;&nbsp;');
+}
+.icon-rss {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf09e;&nbsp;');
+}
+.icon-hdd {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a0;&nbsp;');
+}
+.icon-bullhorn {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a1;&nbsp;');
+}
+.icon-bell {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a2;&nbsp;');
+}
+.icon-certificate {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a3;&nbsp;');
+}
+.icon-hand-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a4;&nbsp;');
+}
+.icon-hand-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a5;&nbsp;');
+}
+.icon-hand-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a6;&nbsp;');
+}
+.icon-hand-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a7;&nbsp;');
+}
+.icon-circle-arrow-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a8;&nbsp;');
+}
+.icon-circle-arrow-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0a9;&nbsp;');
+}
+.icon-circle-arrow-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0aa;&nbsp;');
+}
+.icon-circle-arrow-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ab;&nbsp;');
+}
+.icon-globe {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ac;&nbsp;');
+}
+.icon-wrench {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ad;&nbsp;');
+}
+.icon-tasks {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ae;&nbsp;');
+}
+.icon-filter {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0b0;&nbsp;');
+}
+.icon-briefcase {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0b1;&nbsp;');
+}
+.icon-fullscreen {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0b2;&nbsp;');
+}
+.icon-group {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c0;&nbsp;');
+}
+.icon-link {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c1;&nbsp;');
+}
+.icon-cloud {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c2;&nbsp;');
+}
+.icon-beaker {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c3;&nbsp;');
+}
+.icon-cut {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c4;&nbsp;');
+}
+.icon-copy {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c5;&nbsp;');
+}
+.icon-paper-clip {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c6;&nbsp;');
+}
+.icon-save {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c7;&nbsp;');
+}
+.icon-sign-blank {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c8;&nbsp;');
+}
+.icon-reorder {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0c9;&nbsp;');
+}
+.icon-list-ul {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ca;&nbsp;');
+}
+.icon-list-ol {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0cb;&nbsp;');
+}
+.icon-strikethrough {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0cc;&nbsp;');
+}
+.icon-underline {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0cd;&nbsp;');
+}
+.icon-table {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ce;&nbsp;');
+}
+.icon-magic {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d0;&nbsp;');
+}
+.icon-truck {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d1;&nbsp;');
+}
+.icon-pinterest {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d2;&nbsp;');
+}
+.icon-pinterest-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d3;&nbsp;');
+}
+.icon-google-plus-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d4;&nbsp;');
+}
+.icon-google-plus {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d5;&nbsp;');
+}
+.icon-money {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d6;&nbsp;');
+}
+.icon-caret-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d7;&nbsp;');
+}
+.icon-caret-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d8;&nbsp;');
+}
+.icon-caret-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0d9;&nbsp;');
+}
+.icon-caret-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0da;&nbsp;');
+}
+.icon-columns {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0db;&nbsp;');
+}
+.icon-sort {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0dc;&nbsp;');
+}
+.icon-sort-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0dd;&nbsp;');
+}
+.icon-sort-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0de;&nbsp;');
+}
+.icon-envelope-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e0;&nbsp;');
+}
+.icon-linkedin {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e1;&nbsp;');
+}
+.icon-undo {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e2;&nbsp;');
+}
+.icon-legal {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e3;&nbsp;');
+}
+.icon-dashboard {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e4;&nbsp;');
+}
+.icon-comment-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e5;&nbsp;');
+}
+.icon-comments-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e6;&nbsp;');
+}
+.icon-bolt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e7;&nbsp;');
+}
+.icon-sitemap {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e8;&nbsp;');
+}
+.icon-umbrella {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0e9;&nbsp;');
+}
+.icon-paste {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf0ea;&nbsp;');
+}
+.icon-user-md {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '&#xf200;&nbsp;');
+}
303 css/font-awesome.css
View
@@ -0,0 +1,303 @@
+/* Font Awesome
+ the iconic font designed for use with Twitter Bootstrap
+ -------------------------------------------------------
+ The full suite of pictographic icons, examples, and documentation
+ can be found at: http://fortawesome.github.com/Font-Awesome/
+
+ License
+ -------------------------------------------------------
+ The Font Awesome webfont, CSS, and LESS files are licensed under CC BY 3.0:
+ http://creativecommons.org/licenses/by/3.0/ A mention of
+ 'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable
+ source code is considered acceptable attribution (most common on the web).
+ If human readable source code is not available to the end user, a mention in
+ an 'About' or 'Credits' screen is considered acceptable (most common in desktop
+ or mobile software).
+
+ Contact
+ -------------------------------------------------------
+ Email: dave@davegandy.com
+ Twitter: http://twitter.com/fortaweso_me
+ Work: http://lemonwi.se co-founder
+
+ */
+@font-face {
+ font-family: "FontAwesome";
+ src: url('../font/fontawesome-webfont.eot');
+ src: url('../font/fontawesome-webfont.eot?#iefix') format('eot'), url('../font/fontawesome-webfont.woff') format('woff'), url('../font/fontawesome-webfont.ttf') format('truetype'), url('../font/fontawesome-webfont.svg#FontAwesome') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+
+/* Font Awesome styles
+ ------------------------------------------------------- */
+[class^="icon-"]:before, [class*=" icon-"]:before {
+ font-family: FontAwesome;
+ font-weight: normal;
+ font-style: normal;
+ display: inline-block;
+ text-decoration: inherit;
+}
+a [class^="icon-"], a [class*=" icon-"] {
+ display: inline-block;
+ text-decoration: inherit;
+}
+/* makes the font 33% larger relative to the icon container */
+.icon-large:before {
+ vertical-align: top;
+ font-size: 1.3333333333333333em;
+}
+.btn [class^="icon-"], .btn [class*=" icon-"] {
+ /* keeps button heights with and without icons the same */
+
+ line-height: .9em;
+}
+li [class^="icon-"], li [class*=" icon-"] {
+ display: inline-block;
+ width: 1.25em;
+ text-align: center;
+}
+li .icon-large[class^="icon-"], li .icon-large[class*=" icon-"] {
+ /* 1.5 increased font size for icon-large * 1.25 width */
+
+ width: 1.875em;
+}
+li[class^="icon-"], li[class*=" icon-"] {
+ margin-left: 0;
+ list-style-type: none;
+}
+li[class^="icon-"]:before, li[class*=" icon-"]:before {
+ text-indent: -2em;
+ text-align: center;
+}
+li[class^="icon-"].icon-large:before, li[class*=" icon-"].icon-large:before {
+ text-indent: -1.3333333333333333em;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.icon-glass:before { content: "\f000"; }
+.icon-music:before { content: "\f001"; }
+.icon-search:before { content: "\f002"; }
+.icon-envelope:before { content: "\f003"; }
+.icon-heart:before { content: "\f004"; }
+.icon-star:before { content: "\f005"; }
+.icon-star-empty:before { content: "\f006"; }
+.icon-user:before { content: "\f007"; }
+.icon-film:before { content: "\f008"; }
+.icon-th-large:before { content: "\f009"; }
+.icon-th:before { content: "\f00a"; }
+.icon-th-list:before { content: "\f00b"; }
+.icon-ok:before { content: "\f00c"; }
+.icon-remove:before { content: "\f00d"; }
+.icon-zoom-in:before { content: "\f00e"; }
+
+.icon-zoom-out:before { content: "\f010"; }
+.icon-off:before { content: "\f011"; }
+.icon-signal:before { content: "\f012"; }
+.icon-cog:before { content: "\f013"; }
+.icon-trash:before { content: "\f014"; }
+.icon-home:before { content: "\f015"; }
+.icon-file:before { content: "\f016"; }
+.icon-time:before { content: "\f017"; }
+.icon-road:before { content: "\f018"; }
+.icon-download-alt:before { content: "\f019"; }
+.icon-download:before { content: "\f01a"; }
+.icon-upload:before { content: "\f01b"; }
+.icon-inbox:before { content: "\f01c"; }
+.icon-play-circle:before { content: "\f01d"; }
+.icon-repeat:before { content: "\f01e"; }
+
+/* \f020 doesn't work in Safari. all shifted one down */
+.icon-refresh:before { content: "\f021"; }
+.icon-list-alt:before { content: "\f022"; }
+.icon-lock:before { content: "\f023"; }
+.icon-flag:before { content: "\f024"; }
+.icon-headphones:before { content: "\f025"; }
+.icon-volume-off:before { content: "\f026"; }
+.icon-volume-down:before { content: "\f027"; }
+.icon-volume-up:before { content: "\f028"; }
+.icon-qrcode:before { content: "\f029"; }
+.icon-barcode:before { content: "\f02a"; }
+.icon-tag:before { content: "\f02b"; }
+.icon-tags:before { content: "\f02c"; }
+.icon-book:before { content: "\f02d"; }
+.icon-bookmark:before { content: "\f02e"; }
+.icon-print:before { content: "\f02f"; }
+
+.icon-camera:before { content: "\f030"; }
+.icon-font:before { content: "\f031"; }
+.icon-bold:before { content: "\f032"; }
+.icon-italic:before { content: "\f033"; }
+.icon-text-height:before { content: "\f034"; }
+.icon-text-width:before { content: "\f035"; }
+.icon-align-left:before { content: "\f036"; }
+.icon-align-center:before { content: "\f037"; }
+.icon-align-right:before { content: "\f038"; }
+.icon-align-justify:before { content: "\f039"; }
+.icon-list:before { content: "\f03a"; }
+.icon-indent-left:before { content: "\f03b"; }
+.icon-indent-right:before { content: "\f03c"; }
+.icon-facetime-video:before { content: "\f03d"; }
+.icon-picture:before { content: "\f03e"; }
+
+.icon-pencil:before { content: "\f040"; }
+.icon-map-marker:before { content: "\f041"; }
+.icon-adjust:before { content: "\f042"; }
+.icon-tint:before { content: "\f043"; }
+.icon-edit:before { content: "\f044"; }
+.icon-share:before { content: "\f045"; }
+.icon-check:before { content: "\f046"; }
+.icon-move:before { content: "\f047"; }
+.icon-step-backward:before { content: "\f048"; }
+.icon-fast-backward:before { content: "\f049"; }
+.icon-backward:before { content: "\f04a"; }
+.icon-play:before { content: "\f04b"; }
+.icon-pause:before { content: "\f04c"; }
+.icon-stop:before { content: "\f04d"; }
+.icon-forward:before { content: "\f04e"; }
+
+.icon-fast-forward:before { content: "\f050"; }
+.icon-step-forward:before { content: "\f051"; }
+.icon-eject:before { content: "\f052"; }
+.icon-chevron-left:before { content: "\f053"; }
+.icon-chevron-right:before { content: "\f054"; }
+.icon-plus-sign:before { content: "\f055"; }
+.icon-minus-sign:before { content: "\f056"; }
+.icon-remove-sign:before { content: "\f057"; }
+.icon-ok-sign:before { content: "\f058"; }
+.icon-question-sign:before { content: "\f059"; }
+.icon-info-sign:before { content: "\f05a"; }
+.icon-screenshot:before { content: "\f05b"; }
+.icon-remove-circle:before { content: "\f05c"; }
+.icon-ok-circle:before { content: "\f05d"; }
+.icon-ban-circle:before { content: "\f05e"; }
+
+.icon-arrow-left:before { content: "\f060"; }
+.icon-arrow-right:before { content: "\f061"; }
+.icon-arrow-up:before { content: "\f062"; }
+.icon-arrow-down:before { content: "\f063"; }
+.icon-share-alt:before { content: "\f064"; }
+.icon-resize-full:before { content: "\f065"; }
+.icon-resize-small:before { content: "\f066"; }
+.icon-plus:before { content: "\f067"; }
+.icon-minus:before { content: "\f068"; }
+.icon-asterisk:before { content: "\f069"; }
+.icon-exclamation-sign:before { content: "\f06a"; }
+.icon-gift:before { content: "\f06b"; }
+.icon-leaf:before { content: "\f06c"; }
+.icon-fire:before { content: "\f06d"; }
+.icon-eye-open:before { content: "\f06e"; }
+
+.icon-eye-close:before { content: "\f070"; }
+.icon-warning-sign:before { content: "\f071"; }
+.icon-plane:before { content: "\f072"; }
+.icon-calendar:before { content: "\f073"; }
+.icon-random:before { content: "\f074"; }
+.icon-comment:before { content: "\f075"; }
+.icon-magnet:before { content: "\f076"; }
+.icon-chevron-up:before { content: "\f077"; }
+.icon-chevron-down:before { content: "\f078"; }
+.icon-retweet:before { content: "\f079"; }
+.icon-shopping-cart:before { content: "\f07a"; }
+.icon-folder-close:before { content: "\f07b"; }
+.icon-folder-open:before { content: "\f07c"; }
+.icon-resize-vertical:before { content: "\f07d"; }
+.icon-resize-horizontal:before { content: "\f07e"; }
+
+.icon-bar-chart:before { content: "\f080"; }
+.icon-twitter-sign:before { content: "\f081"; }
+.icon-facebook-sign:before { content: "\f082"; }
+.icon-camera-retro:before { content: "\f083"; }
+.icon-key:before { content: "\f084"; }
+.icon-cogs:before { content: "\f085"; }
+.icon-comments:before { content: "\f086"; }
+.icon-thumbs-up:before { content: "\f087"; }
+.icon-thumbs-down:before { content: "\f088"; }
+.icon-star-half:before { content: "\f089"; }
+.icon-heart-empty:before { content: "\f08a"; }
+.icon-signout:before { content: "\f08b"; }
+.icon-linkedin-sign:before { content: "\f08c"; }
+.icon-pushpin:before { content: "\f08d"; }
+.icon-external-link:before { content: "\f08e"; }
+
+.icon-signin:before { content: "\f090"; }
+.icon-trophy:before { content: "\f091"; }
+.icon-github-sign:before { content: "\f092"; }
+.icon-upload-alt:before { content: "\f093"; }
+.icon-lemon:before { content: "\f094"; }
+.icon-phone:before { content: "\f095"; }
+.icon-check-empty:before { content: "\f096"; }
+.icon-bookmark-empty:before { content: "\f097"; }
+.icon-phone-sign:before { content: "\f098"; }
+.icon-twitter:before { content: "\f099"; }
+.icon-facebook:before { content: "\f09a"; }
+.icon-github:before { content: "\f09b"; }
+.icon-unlock:before { content: "\f09c"; }
+.icon-credit-card:before { content: "\f09d"; }
+.icon-rss:before { content: "\f09e"; }
+
+.icon-hdd:before { content: "\f0a0"; }
+.icon-bullhorn:before { content: "\f0a1"; }
+.icon-bell:before { content: "\f0a2"; }
+.icon-certificate:before { content: "\f0a3"; }
+.icon-hand-right:before { content: "\f0a4"; }
+.icon-hand-left:before { content: "\f0a5"; }
+.icon-hand-up:before { content: "\f0a6"; }
+.icon-hand-down:before { content: "\f0a7"; }
+.icon-circle-arrow-left:before { content: "\f0a8"; }
+.icon-circle-arrow-right:before { content: "\f0a9"; }
+.icon-circle-arrow-up:before { content: "\f0aa"; }
+.icon-circle-arrow-down:before { content: "\f0ab"; }
+.icon-globe:before { content: "\f0ac"; }
+.icon-wrench:before { content: "\f0ad"; }
+.icon-tasks:before { content: "\f0ae"; }
+
+.icon-filter:before { content: "\f0b0"; }
+.icon-briefcase:before { content: "\f0b1"; }
+.icon-fullscreen:before { content: "\f0b2"; }
+
+.icon-group:before { content: "\f0c0"; }
+.icon-link:before { content: "\f0c1"; }
+.icon-cloud:before { content: "\f0c2"; }
+.icon-beaker:before { content: "\f0c3"; }
+.icon-cut:before { content: "\f0c4"; }
+.icon-copy:before { content: "\f0c5"; }
+.icon-paper-clip:before { content: "\f0c6"; }
+.icon-save:before { content: "\f0c7"; }
+.icon-sign-blank:before { content: "\f0c8"; }
+.icon-reorder:before { content: "\f0c9"; }
+.icon-list-ul:before { content: "\f0ca"; }
+.icon-list-ol:before { content: "\f0cb"; }
+.icon-strikethrough:before { content: "\f0cc"; }
+.icon-underline:before { content: "\f0cd"; }
+.icon-table:before { content: "\f0ce"; }
+
+.icon-magic:before { content: "\f0d0"; }
+.icon-truck:before { content: "\f0d1"; }
+.icon-pinterest:before { content: "\f0d2"; }
+.icon-pinterest-sign:before { content: "\f0d3"; }
+.icon-google-plus-sign:before { content: "\f0d4"; }
+.icon-google-plus:before { content: "\f0d5"; }
+.icon-money:before { content: "\f0d6"; }
+.icon-caret-down:before { content: "\f0d7"; }
+.icon-caret-up:before { content: "\f0d8"; }
+.icon-caret-left:before { content: "\f0d9"; }
+.icon-caret-right:before { content: "\f0da"; }
+.icon-columns:before { content: "\f0db"; }
+.icon-sort:before { content: "\f0dc"; }
+.icon-sort-down:before { content: "\f0dd"; }
+.icon-sort-up:before { content: "\f0de"; }
+
+.icon-envelope-alt:before { content: "\f0e0"; }
+.icon-linkedin:before { content: "\f0e1"; }
+.icon-undo:before { content: "\f0e2"; }
+.icon-legal:before { content: "\f0e3"; }
+.icon-dashboard:before { content: "\f0e4"; }
+.icon-comment-alt:before { content: "\f0e5"; }
+.icon-comments-alt:before { content: "\f0e6"; }
+.icon-bolt:before { content: "\f0e7"; }
+.icon-sitemap:before { content: "\f0e8"; }
+.icon-umbrella:before { content: "\f0e9"; }
+.icon-paste:before { content: "\f0ea"; }
+
+.icon-user-md:before { content: "\f200"; }
BIN  font/fontawesome-webfont.eot
View
Binary file not shown
255 font/fontawesome-webfont.svg
View
255 additions, 0 deletions not shown
BIN  font/fontawesome-webfont.ttf
View
Binary file not shown
BIN  font/fontawesome-webfont.woff
View
Binary file not shown
BIN  images/foundation/left-arrow.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  images/foundation/mask-black.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  images/foundation/pause-black.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  images/foundation/right-arrow.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  images/foundation/rotator-black.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  images/foundation/timer-black.png
View
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
825 index.html
View
@@ -1,105 +1,754 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>StackMob - HTML5 Rocks</title>
+<!DOCTYPE html>
+
+<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
+<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
+<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
+<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
+<head>
+ <meta charset="utf-8" />
+
+ <!-- Set the viewport width to device width for mobile -->
+ <meta name="viewport" content="width=device-width" />
+
+ <title>StackMob News</title>
+
+ <!-- Included CSS Files -->
+ <link rel="stylesheet" href="stylesheets/foundation.css">
+ <link rel="stylesheet" href="stylesheets/app.css">
+ <link rel="stylesheet" href="css/font-awesome.css">
+
+ <script src="javascripts/modernizr.foundation.js"></script>
+
+ <!-- IE Fix for HTML5 Tags -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+
+<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
+<script type="text/javascript" src="http://static.stackmob.com/js/json2-min.js"></script>
+<script type="text/javascript" src="http://static.stackmob.com/js/underscore-1.4.1-min.js"></script>
+<script type="text/javascript" src="http://static.stackmob.com/js/backbone-0.9.2-min.js"></script>
+<script type="text/javascript" src="http://static.stackmob.com/js/stackmob-js-0.6.0-min.js"></script>
+
+
+ <script type="text/javascript">
+ StackMob.init({
+ appName: "socialapp",
+ clientSubdomain: "stackmob339",
+ publicKey: "cdd87f2d-e725-4f8f-85f6-354b2a3707cf",
+ apiVersion: 0
+ });
+
+ var app = (function($){
+
+ var my = {};
+
+ var Shout = StackMob.Model.extend({
+ schemaName: "shout"
+ });
+
+ var Shouts = StackMob.Collection.extend({
+ model: Shout
+ });
+
+ var Whisper = StackMob.Model.extend({
+ schemaName: "whisper"
+ });
+
+ var Whispers = StackMob.Collection.extend({
+ model: Whisper
+ });
+
+ var HomeView = Backbone.View.extend({
+ el: 'body',
+ events: {
+ "click #submitShoutNav": "add",
+ "click #whisperNav": "whisper",
+ "click #loginBtn": "login",
+ "click #logoutBtn": "logout",
+ },
+
+ initialize: function() {
+ this.template = _.template($('#page-home').html());
+ this.router = this.options.router;
+ this.render();
+ },
+
+ render: function() {
+ var el = this.$el
+
+ el.empty();
+ el.append(this.template());
+
+ new ListView({collection:my.shouts});
+
+ if(StackMob.isLoggedIn()) {
+ new WhisperView({collection:my.whispers});
+ }
+ new AddView({collection:my.shouts, whisperCollection : my.whispers});
+ new LogoutView();
+
+ return this;
+ },
+
+ whisper: function() {
+ if(StackMob.isLoggedIn()) {
+ my.whispers.reset();
+ my.whispers.fetch({async: false});
+ new WhisperView({collection:my.whispers});
+ }
+ return this;
+ },
+
+ login: function(e) {
+
+ window.location.hash = "#submitShout";
+ window.location.reload();
+ return this;
+ },
+
+ add: function(e) {
+ new AddView({collection:my.shouts, whisperCollection : my.whispers});
+ return this;
+ },
+
+
+ logout: function() {
+
+ var user = new StackMob.User({username: StackMob.getLoggedInUser()});
+ user.logout({
+ success: function() {
+ $('.three').empty();
+ $('#submitShoutTab').empty();
+
+ loginView = new LoginView();
+ this.el = loginView.el;
+ $('#submitShoutTab').append(this.el);
+
+ my.whispers.reset();
+ $('#whisperTab').empty();
+ $('#whisperTab').append('<a href="#submitShout" class="button" id="loginBtn">Login</a> to see your Whispers.');
+ }
+
+ });
+
+ return this;
+ }
+
+ });
+
+ var ListView = Backbone.View.extend({
+
+ tagName: 'ul',
+ className : 'nav-bar vertical light',
+
+ initialize: function() {
+ this.template = _.template($('#item-list').html());
+ this.render();
+ },
+
+ render:function (eventName) {
+ var template = this.template,
+ el = this.$el,
+ collection = this.collection;
+
+ $("#shoutTab").empty();
+ el.empty();
+
+ collection.each(function(shout){
+ el.append(template(shout.toJSON()));
+ });
+
+ $("#shoutTab").append(el);
+
+ return this;
+ }
+
+ });
+
+ var WhisperView = Backbone.View.extend({
+
+ tagName: 'ul',
+ className : 'nav-bar vertical light',
+
+ initialize: function() {
+ this.template = _.template($('#item-list').html());
+ this.render();
+ },
+
+ render:function (eventName) {
+ var template = this.template,
+ el = this.$el,
+ collection = this.collection;
+
+ $("#whisperTab").empty();
+ el.empty();
+
+ collection.each(function(model){
+ el.append(template(model.toJSON()));
+ });
+
+ $("#whisperTab").append(el);
+
+ return this;
+ }
+
+ });
+
+
+ var AddView = Backbone.View.extend({
+ events: {
+ "click #addBtn": "save",
+ "keypress .title": "onEnter"
+ },
+
+ initialize: function() {
+ this.template = _.template($('#item-edit').html());
+ this.collection = this.options.collection;
+ this.whisperCollection = this.options.whisperCollection;
+ this.render();
+ },
+
+ render: function() {
+ var loginStatus = StackMob.isLoggedIn();
+
+ $('#submitShoutTab').empty();
+
+ if(!loginStatus) {
+ loginView = new LoginView();
+ this.el = loginView.el;
+ } else {
+ $(this.el).html(this.template());
+ }
+
+ $('#submitShoutTab').append(this.el);
+ return this;
+ },
+
+ onEnter: function(e) {
+ if (e.keyCode == 13) {
+ this.save(e);
+ }
+ },
- <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
+ save: function(e) {
+ var collection = this.collection,
+ whisperCollection = this.whisperCollection,
+ item = $('#addForm').serializeObject();
+
+ e.preventDefault();
+ $('.alert-box').hide();
+
+ if(item.description === ''){
+ $('.alert-box').show();
+ $('.alert-box .message').html('Missing text');
+
+ } else {
+ $('#addBtn').addClass('disabled');
+ $('#addBtn').attr('disabled',true);
+
+ if(item.username === ''){
+ var shout = new Shout(item);
+ shout.create({
+ success: function(model){
+ collection.add(model);
+
+ window.location.href = '#shout';
+ window.location.reload();
+ }
+ });
+ } else {
+
+ var whisper = new Whisper({"description": item.description, "url" : item.url});
+ whisper.create({
+ success: function(model){
+ whisperCollection.add(model);
+
+ model.appendAndSave("user", [item.username,StackMob.getLoggedInUser()], {
+ success: function(){
+
+ window.location.href = '#whisper';
+ window.location.reload();
+
+ },
+ error: function(error) {
+ console.log(error);
+ }
+ })
+
+ }
+ });
+ }
+ }
+
+ return this;
+ }
+ });
+
+ var LoginView = Backbone.View.extend({
+ events: {
+ "click #submitLogin": "login",
+ "keypress .title": "onEnter"
+ },
+
+ initialize: function() {
+ this.template = _.template($('#user-login').html());
+ this.collection = this.options.collection;
+ this.render();
+ },
+
+ render: function() {
+ var loginStatus = StackMob.isLoggedIn();
+
+ $('#submitShoutTab').empty();
+
+ if(!loginStatus) {
+ // Render Login Form
+ $(this.el).html(this.template());
+ }
+
+ $('#submitShoutTab').append(this.el);
+
+ return this;
+ },
+
+
+ signupPage: function() {
+ var loginStatus = StackMob.isLoggedIn();
+ $('.alert-box').hide();
+
+ $('#submitShoutTab').empty();
+
+ if(!loginStatus) {
+ // Render SignUp Form
+ signupView = new SignupView();
+ this.el = signupView.el;
+ }
+ $('#submitShoutTab').append(this.el);
+
+ return this;
+ },
+
+ onEnter: function(e) {
+ if (e.keyCode == 13) {
+ this.login(e);
+ }
+ },
+
+ login: function(e) {
+ var collection = this.collection,
+ item = $('#loginForm').serializeObject();
+
+ e.preventDefault();
+ $('#loginBtn').addClass('disabled');
+ $('#loginBtn').attr('disabled',true);
+ $('.alert-box').hide();
+
+ var user = new StackMob.User(item);
+ user.login(false,{
+ success: function(model){
+ $('#submitShoutTab').empty();
+ $('#submitShoutTab').append(new AddView({collection:my.shouts , whisperCollection : my.whispers}).el);
+ new LogoutView();
+
+ },
+ error: function(error){
+ $('#loginBtn').removeClass('disabled');
+ $('#loginBtn').attr('disabled',false);
+ $('.alert-box').show();
+ //$('.alert-box .message').html(error.error_description);
+ $('.alert-box .message').html('Error logging in');
+
+
+
+ }
+ });
+
+ return this;
+ }
+ });
+
+
+ var SignupView = Backbone.View.extend({
+ events: {
+ "click #signupBtn": "signup",
+ //"click #loginPage": "loginPage",
+ "keypress .title": "onEnter"
+ },
+
+ initialize: function() {
+ this.template = _.template($('#user-signup').html());
+ this.collection = this.options.collection;
+ this.render();
+ },
+
+ render: function() {
+ var loginStatus = StackMob.isLoggedIn();
+
+ $('#submitShoutTab').empty();
+
+ if(!loginStatus) {
+ // Render Login Form
+ $(this.el).html(this.template());
+ } else {
+ // Render Submit Shout
+ }
+
+ $('#submitShoutTab').append(this.el);
+
+ return this;
+ },
+
+ loginPage: function() {
+ var loginStatus = StackMob.isLoggedIn();
+ $('.alert-box').hide();
+
+ $('#submitShoutTab').empty();
+
+ if(!loginStatus) {
+ // Render SignUp Form
+ loginView = new LoginView();
+ this.el = loginView.el;
+ } else {
+ }
+
+ $('#submitShoutTab').append(this.el);
+
+ return this;
+ },
+
+ onEnter: function(e) {
+ if (e.keyCode == 13) {
+ this.signup(e);
+ }
+ },
+
+
+ signup: function(e) {
+ var collection = this.collection,
+ item = $('#signupForm').serializeObject();
+
+ e.preventDefault();
+ $('.alert-box').hide();
+
+ if (item.username === ''){
+ $('.alert-box').show();
+ $('.alert-box .message').html('Missing username');
+ } else if (item.password === ''){
+ $('.alert-box').show();
+ $('.alert-box .message').html('Missing password');
+ } else {
+ $('#signupBtn').addClass('disabled');
+ $('#signupBtn').attr('disabled',true);
+ var user = new StackMob.User(item);
+
+ user.create({
+ success: function(model){
+
+ // Render Add Shout Form
+ $('#submitShoutTab').empty();
+ $('#submitShoutTab').append(new AddView().el);
+ },
+ error: function(error){
+ $('#signupBtn').removeClass('disabled');
+ $('#signupBtn').attr('disabled',false);
+ $('.alert-box').show();
+ $('.alert-box .message').html(error.error_description);
+ }
+ });
+ }
+
+ return this;
+ }
+ });
+
+
+
+ var LogoutView = Backbone.View.extend({
+ tagName : 'div',
+ className : 'logout',
+
+ events: {
+ "click #logoutBtn": "logout"
+ },
+
+ initialize: function() {
+ this.template = _.template($('#user-logout').html());
+ this.render();
+ },
+
+ render: function() {
+ var loginStatus = StackMob.isLoggedIn();
+
+
+ $('.three').empty();
+
+ if(loginStatus) {
+ $(this.el).html(this.template());
+ $('.three').append(this.el);
+ }
+
+ return this;
+ },
+
+ onEnter: function(e) {
+ if (e.keyCode == 13) {
+ this.save(e);
+ }
+ },
+
+ logout: function(e) {
+ e.preventDefault();
+ var user = new StackMob.User({username: StackMob.getLoggedInUser()});
+ user.logout({
+ success: function() {
+
+ $('#submitShoutTab').empty();
+
+ loginView = new LoginView();
+ this.el = loginView.el;
+
+ $('#submitShoutTab').append(this.el);
+
+ }
+
+ });
+
+
+ return this;
+ },
+
+ onEnter: function(e) {
+ if (e.keyCode == 13) {
+ this.save(e);
+ }
+ },
+
+ save: function(e) {
+ var collection = this.collection,
+ item = $('#addForm').serializeObject();
+
+ e.preventDefault();
+
+ var shout = new Shout(item);
+ shout.create({
+ success: function(model){
+ collection.add(model);
+ }
+ });
+ return this;
+ }
+ });
- <!-- templates -->
- <script type="text/template" id="listItemTemplate">
- <li>
- <a href="#update/<%= todo_id %>" data-id="<%= todo_id %>"><%= name %></a>
- </li>
- </script>
-
- <script type="text/template" id="login">
- <div data-role="header">
- <a href="#" data-icon="back" class="back ui-btn-left">Back</a>
- <h1>Add ToDo</h1>
- </div>
- <div data-role="content">
- <form id="loginForm" name="loginForm">
- <input type="text" name="username" id="username">
- <input type="password" name="password" id="password">
- <input type="submit" name="submitBtn" id="submitBtn" value="Login">
- </form>
- </div>
- </script>
- <script type="text/template" id="home">
- <div data-role="header">
- <a href="#add" data-role="button" data-icon="add">Add</a>
- <h1>StackMob ToDo</h1>
- <a href="#login" data-role="button" data-icon="add">Login</a>
- </div>
- <div data-role="content"></div>
- </script>
+ AppRouter = Backbone.Router.extend({
- <script type="text/template" id="add">
- <div data-role="header">
- <a href="#" data-icon="back" class="back ui-btn-left">Back</a>
- <h1>Add ToDo</h1>
- </div>
- <div data-role="content">
- <form name="addForm" id="addForm">
- <input type="text" name="name" id="name" placeholder="new tod" value="">
- <input type="button" id="addBtn" value="add">
- </form>
- </div>
- </script>
+ routes:{
+ "":"home",
+ "shout":"shout",
+ "whisper":"whisper",
+ "submitShout":"add",
+ "signup":"signup",
+ "login":"login",
+ "logout":"login"
+ },
- <script type="text/template" id="update">
- <div data-role="header">
- <a href="#" data-icon="back" class="back ui-btn-left">Back</a>
- <h1>Update ToDo</h1>
- </div>
- <div data-role="content">
- <form name="updateForm" id="updateForm">
- <input type="text" name="name" id="name" value="<%= name %>">
- <input type="button" id="updateBtn" value="save">
- <input type="button" id="deleteBtn" value="delete">
- </form>
- </div>
- </script>
+ home:function() {
+ new HomeView({collection:my.shouts, router:this});
+ },
+ shout:function() {
+ if($("#home").length == 0) {
+ new HomeView({collection:my.shouts, router:this});
+ } else {
+ new ListView({collection:my.shouts, router:this});
+ }
+
+ },
+
+ add:function() {
+ if($("#home").length == 0) {
+ new HomeView({collection:my.shouts, router:this});
+ } else {
+ new AddView({collection:my.shouts, whisperCollection : my.whispers, router:this});
+ }
+ },
-<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
-
- <script type="text/javascript">
- $(document).bind("mobileinit", function(){
- $.mobile.page.prototype.options.addBackBtn= false;
- $.mobile.ajaxEnabled = false;
- $.mobile.linkBindingEnabled = false;
- $.mobile.hashListeningEnabled = false;
- $.mobile.pushStateEnabled = false;
-
- // Remove page from DOM when it's being replaced
- $('div[data-role="page"]').live('pagehide', function (event, ui) {
- $(event.currentTarget).remove();
- });
+ whisper:function() {
+ if($("#home").length == 0) {
+ new HomeView({collection:my.shouts});
+ } else {
+ new AddView({collection:my.shouts, whisperCollection : my.whispers, router:this});
+ }
+ },
+
+ signup:function() {
+ new SignupView({router:this});
+ },
+
+ login:function() {
+ new LoginView({router:this});
+ }
});
- </script>
- <script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
+ my.initData = function() {
+ my.shouts = new Shouts();
+ my.shouts.fetch({async: false});
+
+ my.whispers = new Whispers();
+ if(StackMob.isLoggedIn()) {
+ my.whispers.fetch({async: true});
+ }
+ };
+ return my;
+
+ }(jQuery));
-<script type="text/javascript" src="http://static.stackmob.com/js/json2-min.js"></script>
-<script type="text/javascript" src="http://static.stackmob.com/js/underscore-1.3.3-min.js"></script>
-<script type="text/javascript" src="http://static.stackmob.com/js/backbone-0.9.2-min.js"></script>
-<script type="text/javascript" src="http://static.stackmob.com/js/2.5.3-crypto-sha1-hmac.js"></script>
-<script type="text/javascript" src="http://static.stackmob.com/js/stackmob-js-0.5.5-min.js"></script>
+ $(document).ready(function () {
+ app.initData();
+
+ app_router = new AppRouter();
+ Backbone.history.start();
+ $('.alert-box').hide();
+ });
+
+ $.fn.serializeObject = function()
+ {
+ var o = {};
+ var a = this.serializeArray();
+ $.each(a, function() {
+ if (o[this.name] !== undefined) {
+ if (!o[this.name].push) {
+ o[this.name] = [o[this.name]];
+ }
+ o[this.name].push(this.value || '');
+ } else {
+ o[this.name] = this.value || '';
+ }
+ });
+ return o;
+ };
- <!-- App specific scripts -->
- <script src="js/app.js"></script>
-
- <!-- maximum scale added to stop zoom on select controls -->
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
- </head>
- <body>
+ </script>
+
+ <script type="text/template" id="page-home">
+ <div class="row" style="margin-top:20px;" id="home">
+ <div class="eight columns centered">
+ <div class="panel radius">
+
+ <div class="row">
+ <div class="five columns">
+ <h3>Hollagram</h3>
+ </div>
+ <div class="three columns">
+ </div>
+ </div>
+
+ <dl class="tabs mobile">
+ <dd class="active"><a id="shoutNav" href="#shout">Shouts</a></dd>
+ <dd><a href="#whisper" id="whisperNav">Whispers</a></dd>
+ <dd><a href="#submitShout" id="submitShoutNav">Say Somethin</a></dd>
+ </dl>
+
+ <div class="alert-box alert">
+ <div class="message">message</div>
+ <a href="" class="close">&times;</a>
+ </div>
+
+ <ul class="tabs-content">
+ <li class="active" id="shoutTab">
+ Loading Shouts ...
+ </li>
+ <li id="whisperTab">
+ <a href="#submitShout" class="button" id="loginBtn">Login</a> to see your Whispers.
+ </li>
+ <li id="submitShoutTab">
+ add shout
+ </li>
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+
+ </script>
+
+ <script type="text/template" id="item-edit">
+ <form method="post" id="addForm">
+ <fieldset style="padding-bottom:10px;">
+ <legend>Submit a Shout</legend>
+ <label>Text</label>
+ <textarea name="description" /></textarea>
+ <label>URL</label>
+ <input type="text" class="twelve" placeholder="url" name="url" />
+
+
+ <label>Whisper ...</label>
+ <div class="row collapse">
+ <div class="two mobile-one columns">
+ <span class="prefix">@</span>
+ </div>
+ <div class="ten mobile-three columns">
+ <input type="text" name="username" placeholder="username">
+ </div>
+ </div>
+
+ <input type="submit" id="addBtn" class="large button" value="submit" />
+ </fieldset>
+ </form>
+ </script>
+
+ <script type="text/template" id="user-login">
+ <form method="post" id="loginForm">
+ <fieldset style="padding-bottom:10px;">
+ <legend>Login</legend>
+ <label>username</label>
+ <input type="text" placeholder="username" name="username" />
+ <label>password</label>
+ <input type="password" placeholder="password" name="password" />
+ <input type="submit" id="submitLogin" class="large button" value="Login" />
+ Need an account? <a id="signupPage" href="#signup">SignUp Now</a>.
+ </fieldset>
+ </form>
+ </script>
+
+ <script type="text/template" id="user-signup">
+ <form method="post" id="signupForm">
+ <fieldset style="padding-bottom:10px;">
+ <legend>Sign-Up</legend>
+ <label>username</label>
+ <input type="text" placeholder="username" name="username" />
+ <label>password</label>
+ <input type="password" placeholder="password" name="password" />
+ <input type="submit" id="signupBtn" class="large button" value="Sign Up" />
+ Have an account? <a id="loginPage" href="#login">Login Now</a>.
+ </fieldset>
+ </form>
+ </script>
+
+ <script type="text/template" id="user-logout">
+ <a href="#logout" id="logoutBtn" class="small button">Logout <%= StackMob.getLoggedInUser() %></a>
+ </script>
+
+ <script type="text/template" id="item-list">
+ <li>
+ <a href="<%= url %>"><%= description %></a></li>
+ </script>
+</head>
+<body>
- </body>
-</html>
+ <!-- Included JS Files (Compressed) -->
+ <script src="javascripts/foundation.js"></script>
+
+ <!-- Initialize JS Plugins -->
+ <script src="javascripts/app.js"></script>
+</body>
+</html>
35 javascripts/app.js
View
@@ -0,0 +1,35 @@
+(function($){
+ $(function(){
+
+ $(document).foundationAlerts();
+ $(document).foundationAccordion();
+ $(document).tooltips();
+ $('input, textarea').placeholder();
+
+
+
+ $(document).foundationButtons();
+
+
+
+ $(document).foundationNavigation();
+
+
+
+ $(document).foundationCustomForms();
+
+
+
+
+ $(document).foundationTabs({callback:$.foundation.customForms.appendCustomMarkup});
+
+
+
+ // UNCOMMENT THE LINE YOU WANT BELOW IF YOU WANT IE8 SUPPORT AND ARE USING .block-grids
+ // $('.block-grid.two-up>li:nth-child(2n+1)').css({clear: 'left'});
+ // $('.block-grid.three-up>li:nth-child(3n+1)').css({clear: 'left'});
+ // $('.block-grid.four-up>li:nth-child(4n+1)').css({clear: 'left'});
+ // $('.block-grid.five-up>li:nth-child(5n+1)').css({clear: 'left'});
+ });
+
+})(jQuery);
52 javascripts/foundation.js
View
52 additions, 0 deletions not shown
15 javascripts/jquery.foundation.accordion.js
View
@@ -0,0 +1,15 @@
+(function( $ ){
+
+ $.fn.foundationAccordion = function(options) {
+
+ $('.accordion li', this).on('click.fndtn', function() {
+ var flyout = $(this).children('.content').first();
+ $('.accordion .content').not(flyout).hide().parent('li').removeClass('active');
+ flyout.show(0, function() {
+ flyout.parent('li').addClass('active');
+ });
+ });
+
+ };
+
+})( jQuery );
19 javascripts/jquery.foundation.alerts.js
View
@@ -0,0 +1,19 @@
+(function( $ ){
+
+ $.fn.foundationAlerts = function(options) {
+ var settings = $.extend({
+ callback: $.noop
+ }, options);
+
+ $(".alert-box", this).delegate("a.close", "click", function(event) {
+ event.preventDefault();
+ $(this).closest(".alert-box").fadeOut(function(event){
+ $(this).remove();
+ // Do something else after the alert closes
+ settings.callback();
+ });
+ });
+
+ };
+
+})( jQuery );
45 javascripts/jquery.foundation.buttons.js
View
@@ -0,0 +1,45 @@
+(function( $ ){
+
+ $.fn.foundationButtons = function(options) {
+ // Prevent event propagation on disabled buttons
+ $('.button.disabled', this).on('click.fndtn', function (event) {
+ event.preventDefault();
+ });
+
+ $('.button.dropdown > ul', this).addClass('no-hover');
+
+ $('.button.dropdown', this).on('click.fndtn', function (e) {
+ e.stopPropagation();
+ });
+ $('.button.dropdown.split span', this).on('click.fndtn', function (e) {
+ e.preventDefault();
+ $('.button.dropdown', this).not($(this).parent()).children('ul').removeClass('show-dropdown');
+ $(this).siblings('ul').toggleClass('show-dropdown');
+ });
+ $('.button.dropdown', this).not('.split').on('click.fndtn', function (e) {
+ $('.button.dropdown', this).not(this).children('ul').removeClass('show-dropdown');
+ $(this).children('ul').toggleClass('show-dropdown');
+ });
+ $('body, html').on('click.fndtn', function () {
+ $('.button.dropdown ul').removeClass('show-dropdown');
+ });
+
+ // Positioning the Flyout List
+ var normalButtonHeight = $('.button.dropdown:not(.large):not(.small):not(.tiny)', this).outerHeight() - 1,
+ largeButtonHeight = $('.button.large.dropdown', this).outerHeight() - 1,
+ smallButtonHeight = $('.button.small.dropdown', this).outerHeight() - 1,
+ tinyButtonHeight = $('.button.tiny.dropdown', this).outerHeight() - 1;
+
+ $('.button.dropdown:not(.large):not(.small):not(.tiny) > ul', this).css('top', normalButtonHeight);
+ $('.button.dropdown.large > ul', this).css('top', largeButtonHeight);
+ $('.button.dropdown.small > ul', this).css('top', smallButtonHeight);
+ $('.button.dropdown.tiny > ul', this).css('top', tinyButtonHeight);
+
+ $('.button.dropdown.up:not(.large):not(.small):not(.tiny) > ul', this).css('top', 'auto').css('bottom', normalButtonHeight - 2);
+ $('.button.dropdown.up.large > ul', this).css('top', 'auto').css('bottom', largeButtonHeight - 2);
+ $('.button.dropdown.up.small > ul', this).css('top', 'auto').css('bottom', smallButtonHeight - 2);
+ $('.button.dropdown.up.tiny > ul', this).css('top', 'auto').css('bottom', tinyButtonHeight - 2);
+
+ };
+
+})( jQuery );
481 javascripts/jquery.foundation.forms.js
View
@@ -0,0 +1,481 @@
+/*
+ * jQuery Custom Forms Plugin 1.0
+ * www.ZURB.com
+ * Copyright 2010, ZURB
+ * Free to use under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+*/
+
+(function( $ ){
+
+ /**
+ * Helper object used to quickly adjust all hidden parent element's, display and visibility properties.
+ * This is currently used for the custom drop downs. When the dropdowns are contained within a reveal modal
+ * we cannot accurately determine the list-item elements width property, since the modal's display property is set
+ * to 'none'.
+ *
+ * This object will help us work around that problem.
+ *
+ * NOTE: This could also be plugin.
+ *
+ * @function hiddenFix
+ */
+ var hiddenFix = function() {
+ // We'll use this to temporarily store style properties.
+ var tmp = [],
+ hidden = null; // We'll use this to set hidden parent elements.
+
+ return {
+ /**
+ * Sets all hidden parent elements and self to visibile.
+ *
+ * @method adjust
+ * @param {jQuery Object} $child
+ */
+ adjust : function( $child ) {
+ // Internal reference.
+ var _self = this;
+
+ // Set all hidden parent elements, including this element.
+ _self.hidden = $child.parents().andSelf().filter( ":hidden" );
+
+ // Loop through all hidden elements.
+ _self.hidden.each( function() {
+
+ // Cache the element.
+ var $elem = $( this );
+
+ // Store the style attribute.
+ // Undefined if element doesn't have a style attribute.
+ _self.tmp.push( $elem.attr( 'style' ) );
+
+ // Set the element's display property to block,
+ // but ensure it's visibility is hidden.
+ $elem.css( { 'visibility' : 'hidden', 'display' : 'block' } );
+ });
+
+ }, // end adjust
+
+ /**
+ * Resets the elements previous state.
+ *
+ * @method reset
+ */
+ reset : function() {
+ // Internal reference.
+ var _self = this;
+ // Loop through our hidden element collection.
+ _self.hidden.each( function( i ) {
+ // Cache this element.
+ var $elem = $( this ),
+ _tmp = _self.tmp[ i ]; // Get the stored 'style' value for this element.
+
+ // If the stored value is undefined.
+ if( _tmp === undefined )
+ // Remove the style attribute.
+ $elem.removeAttr( 'style' );
+ else
+ // Otherwise, reset the element style attribute.
+ $elem.attr( 'style', _tmp );
+
+ });
+ // Reset the tmp array.
+ _self.tmp = [];
+ // Reset the hidden elements variable.
+ _self.hidden = null;
+
+ } // end reset
+
+ }; // end return
+
+ };
+
+ jQuery.foundation = jQuery.foundation || {};
+ jQuery.foundation.customForms = jQuery.foundation.customForms || {};
+
+ $.foundation.customForms.appendCustomMarkup = function ( options ) {
+
+ var defaults = {
+ disable_class: "js-disable-custom"
+ };
+
+ options = $.extend( defaults, options );
+
+ function appendCustomMarkup(idx, sel) {
+ var $this = $(sel).hide(),
+ type = $this.attr('type'),
+ $span = $this.next('span.custom.' + type);
+
+ if ($span.length === 0) {
+ $span = $('<span class="custom ' + type + '"></span>').insertAfter($this);
+ }
+
+ $span.toggleClass('checked', $this.is(':checked'));
+ $span.toggleClass('disabled', $this.is(':disabled'));
+ }
+
+ function appendCustomSelect(idx, sel) {
+ var hiddenFixObj = hiddenFix();
+ //
+ // jQueryify the <select> element and cache it.
+ //
+ var $this = $( sel ),
+ //
+ // Find the custom drop down element.
+ //
+ $customSelect = $this.next( 'div.custom.dropdown' ),
+ //
+ // Find the custom select element within the custom drop down.
+ //
+ $customList = $customSelect.find( 'ul' ),
+ //
+ // Find the custom a.current element.
+ //
+ $selectCurrent = $customSelect.find( ".current" ),
+ //
+ // Find the custom a.selector element (the drop-down icon).
+ //
+ $selector = $customSelect.find( ".selector" ),
+ //
+ // Get the <options> from the <select> element.
+ //
+ $options = $this.find( 'option' ),
+ //
+ // Filter down the selected options
+ //
+ $selectedOption = $options.filter( ':selected' ),
+ //
+ // Initial max width.
+ //
+ maxWidth = 0,
+ //
+ // We'll use this variable to create the <li> elements for our custom select.
+ //
+ liHtml = '',
+ //
+ // We'll use this to cache the created <li> elements within our custom select.
+ //
+ $listItems
+ ;
+ var $currentSelect = false;
+ //
+ // Should we not create a custom list?
+ //
+ if ( $this.hasClass( 'no-custom' ) ) return;
+
+ //
+ // Did we not create a custom select element yet?
+ //
+ if ( $customSelect.length === 0 ) {
+ //
+ // Let's create our custom select element!
+ //
+
+ //
+ // Determine what select size to use.
+ //
+ var customSelectSize = $this.hasClass( 'small' ) ? 'small' :
+ $this.hasClass( 'medium' ) ? 'medium' :
+ $this.hasClass( 'large' ) ? 'large' :
+ $this.hasClass( 'expand' ) ? 'expand' : ''
+ ;
+ //
+ // Build our custom list.
+ //
+ $customSelect = $('<div class="' + ['custom', 'dropdown', customSelectSize ].join( ' ' ) + '"><a href="#" class="selector"></a><ul /></div>"');
+ //
+ // Grab the selector element
+ //
+ $selector = $customSelect.find( ".selector" );
+ //
+ // Grab the unordered list element from the custom list.
+ //
+ $customList = $customSelect.find( "ul" );
+ //
+ // Build our <li> elements.
+ //
+ liHtml = $.map( $options, function( opt ) { return "<li>" + opt.value + "</li>"; } ).join( '' );
+ //
+ // Append our <li> elements to the custom list (<ul>).
+ //
+ $customList.append( liHtml );
+ //
+ // Insert the the currently selected list item before all other elements.
+ // Then, find the element and assign it to $currentSelect.
+ //
+
+ $currentSelect = $customSelect.prepend( '<a href="#" class="current">' + $selectedOption.html() + '</a>' ).find( ".current" );
+ //
+ // Add the custom select element after the <select> element.
+ //
+ $this.after( $customSelect )
+ //
+ //then hide the <select> element.
+ //
+ .hide();
+
+ } else {
+ //
+ // Create our list item <li> elements.
+ //
+ liHtml = $.map( $options, function( opt ) { return "<li>" + opt.value + "</li>"; } ).join( '' );
+ //
+ // Refresh the ul with options from the select in case the supplied markup doesn't match.
+ // Clear what's currently in the <ul> element.
+ //
+ $customList.html( '' )
+ //
+ // Populate the list item <li> elements.
+ //
+ .append( liHtml );
+
+ } // endif $customSelect.length === 0
+
+ //
+ // Determine whether or not the custom select element should be disabled.
+ //
+ $customSelect.toggleClass( 'disabled', $this.is( ':disabled' ) );
+ //
+ // Cache our List item elements.
+ //
+ $listItems = $customList.find( 'li' );