├── Preview.jpg ├── css ├── font-awesome.min.css ├── images │ ├── bx_loader.gif │ └── controls.png ├── jquery.bxslider.css ├── normalize.css └── web.css ├── fonts ├── FontAwesome.otf ├── fontawesome-webfont.eot ├── fontawesome-webfont.svg ├── fontawesome-webfont.ttf ├── fontawesome-webfont.woff └── fontawesome-webfont.woff2 ├── images ├── 01.png ├── 02.png ├── 03.png ├── 04.png ├── footer │ ├── 01.png │ ├── 02.jpg │ └── 03.jpg ├── header.jpg ├── header2.jpg ├── keyboard.jpg └── products │ ├── 01.jpg │ ├── 02.jpg │ ├── 03.jpg │ ├── 04.jpg │ ├── 05.jpg │ └── 06.jpg ├── index.html └── js ├── custom.js ├── jquery-1.11.3.min.js ├── jquery.bxslider.min.js ├── jquery.mixitup.js └── jquery.nicescroll.min.js /Preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/Preview.jpg -------------------------------------------------------------------------------- /css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.4.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"} 5 | -------------------------------------------------------------------------------- /css/images/bx_loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/css/images/bx_loader.gif -------------------------------------------------------------------------------- /css/images/controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/css/images/controls.png -------------------------------------------------------------------------------- /css/jquery.bxslider.css: -------------------------------------------------------------------------------- 1 | /** 2 | * BxSlider v4.1.2 - Fully loaded, responsive content slider 3 | * http://bxslider.com 4 | * 5 | * Written by: Steven Wanderski, 2014 6 | * http://stevenwanderski.com 7 | * (while drinking Belgian ales and listening to jazz) 8 | * 9 | * CEO and founder of bxCreative, LTD 10 | * http://bxcreative.com 11 | */ 12 | 13 | 14 | /** RESET AND LAYOUT 15 | ===================================*/ 16 | 17 | .bx-wrapper { 18 | position: relative; 19 | margin: 0 auto 60px; 20 | padding: 0; 21 | *zoom: 1; 22 | } 23 | 24 | .bx-wrapper img { 25 | max-width: 100%; 26 | display: block; 27 | } 28 | 29 | /** THEME 30 | ===================================*/ 31 | 32 | .bx-wrapper .bx-viewport { 33 | -moz-box-shadow: 0 0 5px #ccc; 34 | -webkit-box-shadow: 0 0 5px #ccc; 35 | box-shadow: 0 0 5px #ccc; 36 | border: 5px solid #fff; 37 | left: -5px; 38 | background: #fff; 39 | 40 | /*fix other elements on the page moving (on Chrome)*/ 41 | -webkit-transform: translatez(0); 42 | -moz-transform: translatez(0); 43 | -ms-transform: translatez(0); 44 | -o-transform: translatez(0); 45 | transform: translatez(0); 46 | } 47 | 48 | .bx-wrapper .bx-pager, 49 | .bx-wrapper .bx-controls-auto { 50 | position: absolute; 51 | bottom: -30px; 52 | width: 100%; 53 | } 54 | 55 | /* LOADER */ 56 | 57 | .bx-wrapper .bx-loading { 58 | min-height: 50px; 59 | background: url(images/bx_loader.gif) center center no-repeat #fff; 60 | height: 100%; 61 | width: 100%; 62 | position: absolute; 63 | top: 0; 64 | left: 0; 65 | z-index: 2000; 66 | } 67 | 68 | /* PAGER */ 69 | 70 | .bx-wrapper .bx-pager { 71 | text-align: center; 72 | font-size: .85em; 73 | font-family: Arial; 74 | font-weight: bold; 75 | color: #666; 76 | padding-top: 20px; 77 | } 78 | 79 | .bx-wrapper .bx-pager .bx-pager-item, 80 | .bx-wrapper .bx-controls-auto .bx-controls-auto-item { 81 | display: inline-block; 82 | *zoom: 1; 83 | *display: inline; 84 | } 85 | 86 | .bx-wrapper .bx-pager.bx-default-pager a { 87 | background: #666; 88 | text-indent: -9999px; 89 | display: block; 90 | width: 10px; 91 | height: 10px; 92 | margin: 0 5px; 93 | outline: 0; 94 | -moz-border-radius: 5px; 95 | -webkit-border-radius: 5px; 96 | border-radius: 5px; 97 | } 98 | 99 | .bx-wrapper .bx-pager.bx-default-pager a:hover, 100 | .bx-wrapper .bx-pager.bx-default-pager a.active { 101 | background: #000; 102 | } 103 | 104 | /* DIRECTION CONTROLS (NEXT / PREV) */ 105 | 106 | .bx-wrapper .bx-prev { 107 | left: 10px; 108 | background: url(images/controls.png) no-repeat 0 -32px; 109 | } 110 | 111 | .bx-wrapper .bx-next { 112 | right: 10px; 113 | background: url(images/controls.png) no-repeat -43px -32px; 114 | } 115 | 116 | .bx-wrapper .bx-prev:hover { 117 | background-position: 0 0; 118 | } 119 | 120 | .bx-wrapper .bx-next:hover { 121 | background-position: -43px 0; 122 | } 123 | 124 | .bx-wrapper .bx-controls-direction a { 125 | position: absolute; 126 | top: 50%; 127 | margin-top: -16px; 128 | outline: 0; 129 | width: 32px; 130 | height: 32px; 131 | text-indent: -9999px; 132 | z-index: 9999; 133 | } 134 | 135 | .bx-wrapper .bx-controls-direction a.disabled { 136 | display: none; 137 | } 138 | 139 | /* AUTO CONTROLS (START / STOP) */ 140 | 141 | .bx-wrapper .bx-controls-auto { 142 | text-align: center; 143 | } 144 | 145 | .bx-wrapper .bx-controls-auto .bx-start { 146 | display: block; 147 | text-indent: -9999px; 148 | width: 10px; 149 | height: 11px; 150 | outline: 0; 151 | background: url(images/controls.png) -86px -11px no-repeat; 152 | margin: 0 3px; 153 | } 154 | 155 | .bx-wrapper .bx-controls-auto .bx-start:hover, 156 | .bx-wrapper .bx-controls-auto .bx-start.active { 157 | background-position: -86px 0; 158 | } 159 | 160 | .bx-wrapper .bx-controls-auto .bx-stop { 161 | display: block; 162 | text-indent: -9999px; 163 | width: 9px; 164 | height: 11px; 165 | outline: 0; 166 | background: url(images/controls.png) -86px -44px no-repeat; 167 | margin: 0 3px; 168 | } 169 | 170 | .bx-wrapper .bx-controls-auto .bx-stop:hover, 171 | .bx-wrapper .bx-controls-auto .bx-stop.active { 172 | background-position: -86px -33px; 173 | } 174 | 175 | /* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ 176 | 177 | .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager { 178 | text-align: left; 179 | width: 80%; 180 | } 181 | 182 | .bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto { 183 | right: 0; 184 | width: 35px; 185 | } 186 | 187 | /* IMAGE CAPTIONS */ 188 | 189 | .bx-wrapper .bx-caption { 190 | position: absolute; 191 | bottom: 0; 192 | left: 0; 193 | background: #666\9; 194 | background: rgba(80, 80, 80, 0.75); 195 | width: 100%; 196 | } 197 | 198 | .bx-wrapper .bx-caption span { 199 | color: #fff; 200 | font-family: Arial; 201 | display: block; 202 | font-size: .85em; 203 | padding: 10px; 204 | } 205 | -------------------------------------------------------------------------------- /css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ 2 | 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS text size adjust after orientation change, without disabling 6 | * user zoom. 7 | */ 8 | 9 | html { 10 | font-family: sans-serif; /* 1 */ 11 | -ms-text-size-adjust: 100%; /* 2 */ 12 | -webkit-text-size-adjust: 100%; /* 2 */ 13 | } 14 | 15 | /** 16 | * Remove default margin. 17 | */ 18 | 19 | body { 20 | margin: 0; 21 | } 22 | 23 | /* HTML5 display definitions 24 | ========================================================================== */ 25 | 26 | /** 27 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 28 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 29 | * and Firefox. 30 | * Correct `block` display not defined for `main` in IE 11. 31 | */ 32 | 33 | article, 34 | aside, 35 | details, 36 | figcaption, 37 | figure, 38 | footer, 39 | header, 40 | hgroup, 41 | main, 42 | menu, 43 | nav, 44 | section, 45 | summary { 46 | display: block; 47 | } 48 | 49 | /** 50 | * 1. Correct `inline-block` display not defined in IE 8/9. 51 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 52 | */ 53 | 54 | audio, 55 | canvas, 56 | progress, 57 | video { 58 | display: inline-block; /* 1 */ 59 | vertical-align: baseline; /* 2 */ 60 | } 61 | 62 | /** 63 | * Prevent modern browsers from displaying `audio` without controls. 64 | * Remove excess height in iOS 5 devices. 65 | */ 66 | 67 | audio:not([controls]) { 68 | display: none; 69 | height: 0; 70 | } 71 | 72 | /** 73 | * Address `[hidden]` styling not present in IE 8/9/10. 74 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. 75 | */ 76 | 77 | [hidden], 78 | template { 79 | display: none; 80 | } 81 | 82 | /* Links 83 | ========================================================================== */ 84 | 85 | /** 86 | * Remove the gray background color from active links in IE 10. 87 | */ 88 | 89 | a { 90 | background-color: transparent; 91 | } 92 | 93 | /** 94 | * Improve readability when focused and also mouse hovered in all browsers. 95 | */ 96 | 97 | a:active, 98 | a:hover { 99 | outline: 0; 100 | } 101 | 102 | /* Text-level semantics 103 | ========================================================================== */ 104 | 105 | /** 106 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 107 | */ 108 | 109 | abbr[title] { 110 | border-bottom: 1px dotted; 111 | } 112 | 113 | /** 114 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 115 | */ 116 | 117 | b, 118 | strong { 119 | font-weight: bold; 120 | } 121 | 122 | /** 123 | * Address styling not present in Safari and Chrome. 124 | */ 125 | 126 | dfn { 127 | font-style: italic; 128 | } 129 | 130 | /** 131 | * Address variable `h1` font-size and margin within `section` and `article` 132 | * contexts in Firefox 4+, Safari, and Chrome. 133 | */ 134 | 135 | h1 { 136 | font-size: 2em; 137 | margin: 0.67em 0; 138 | } 139 | 140 | /** 141 | * Address styling not present in IE 8/9. 142 | */ 143 | 144 | mark { 145 | background: #ff0; 146 | color: #000; 147 | } 148 | 149 | /** 150 | * Address inconsistent and variable font size in all browsers. 151 | */ 152 | 153 | small { 154 | font-size: 80%; 155 | } 156 | 157 | /** 158 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 159 | */ 160 | 161 | sub, 162 | sup { 163 | font-size: 75%; 164 | line-height: 0; 165 | position: relative; 166 | vertical-align: baseline; 167 | } 168 | 169 | sup { 170 | top: -0.5em; 171 | } 172 | 173 | sub { 174 | bottom: -0.25em; 175 | } 176 | 177 | /* Embedded content 178 | ========================================================================== */ 179 | 180 | /** 181 | * Remove border when inside `a` element in IE 8/9/10. 182 | */ 183 | 184 | img { 185 | border: 0; 186 | } 187 | 188 | /** 189 | * Correct overflow not hidden in IE 9/10/11. 190 | */ 191 | 192 | svg:not(:root) { 193 | overflow: hidden; 194 | } 195 | 196 | /* Grouping content 197 | ========================================================================== */ 198 | 199 | /** 200 | * Address margin not present in IE 8/9 and Safari. 201 | */ 202 | 203 | figure { 204 | margin: 1em 40px; 205 | } 206 | 207 | /** 208 | * Address differences between Firefox and other browsers. 209 | */ 210 | 211 | hr { 212 | -moz-box-sizing: content-box; 213 | box-sizing: content-box; 214 | height: 0; 215 | } 216 | 217 | /** 218 | * Contain overflow in all browsers. 219 | */ 220 | 221 | pre { 222 | overflow: auto; 223 | } 224 | 225 | /** 226 | * Address odd `em`-unit font size rendering in all browsers. 227 | */ 228 | 229 | code, 230 | kbd, 231 | pre, 232 | samp { 233 | font-family: monospace, monospace; 234 | font-size: 1em; 235 | } 236 | 237 | /* Forms 238 | ========================================================================== */ 239 | 240 | /** 241 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 242 | * styling of `select`, unless a `border` property is set. 243 | */ 244 | 245 | /** 246 | * 1. Correct color not being inherited. 247 | * Known issue: affects color of disabled elements. 248 | * 2. Correct font properties not being inherited. 249 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 250 | */ 251 | 252 | button, 253 | input, 254 | optgroup, 255 | select, 256 | textarea { 257 | color: inherit; /* 1 */ 258 | font: inherit; /* 2 */ 259 | margin: 0; /* 3 */ 260 | } 261 | 262 | /** 263 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 264 | */ 265 | 266 | button { 267 | overflow: visible; 268 | } 269 | 270 | /** 271 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 272 | * All other form control elements do not inherit `text-transform` values. 273 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 274 | * Correct `select` style inheritance in Firefox. 275 | */ 276 | 277 | button, 278 | select { 279 | text-transform: none; 280 | } 281 | 282 | /** 283 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 284 | * and `video` controls. 285 | * 2. Correct inability to style clickable `input` types in iOS. 286 | * 3. Improve usability and consistency of cursor style between image-type 287 | * `input` and others. 288 | */ 289 | 290 | button, 291 | html input[type="button"], /* 1 */ 292 | input[type="reset"], 293 | input[type="submit"] { 294 | -webkit-appearance: button; /* 2 */ 295 | cursor: pointer; /* 3 */ 296 | } 297 | 298 | /** 299 | * Re-set default cursor for disabled elements. 300 | */ 301 | 302 | button[disabled], 303 | html input[disabled] { 304 | cursor: default; 305 | } 306 | 307 | /** 308 | * Remove inner padding and border in Firefox 4+. 309 | */ 310 | 311 | button::-moz-focus-inner, 312 | input::-moz-focus-inner { 313 | border: 0; 314 | padding: 0; 315 | } 316 | 317 | /** 318 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 319 | * the UA stylesheet. 320 | */ 321 | 322 | input { 323 | line-height: normal; 324 | } 325 | 326 | /** 327 | * It's recommended that you don't attempt to style these elements. 328 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 329 | * 330 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 331 | * 2. Remove excess padding in IE 8/9/10. 332 | */ 333 | 334 | input[type="checkbox"], 335 | input[type="radio"] { 336 | box-sizing: border-box; /* 1 */ 337 | padding: 0; /* 2 */ 338 | } 339 | 340 | /** 341 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 342 | * `font-size` values of the `input`, it causes the cursor style of the 343 | * decrement button to change from `default` to `text`. 344 | */ 345 | 346 | input[type="number"]::-webkit-inner-spin-button, 347 | input[type="number"]::-webkit-outer-spin-button { 348 | height: auto; 349 | } 350 | 351 | /** 352 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 353 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome 354 | * (include `-moz` to future-proof). 355 | */ 356 | 357 | input[type="search"] { 358 | -webkit-appearance: textfield; /* 1 */ 359 | -moz-box-sizing: content-box; 360 | -webkit-box-sizing: content-box; /* 2 */ 361 | box-sizing: content-box; 362 | } 363 | 364 | /** 365 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 366 | * Safari (but not Chrome) clips the cancel button when the search input has 367 | * padding (and `textfield` appearance). 368 | */ 369 | 370 | input[type="search"]::-webkit-search-cancel-button, 371 | input[type="search"]::-webkit-search-decoration { 372 | -webkit-appearance: none; 373 | } 374 | 375 | /** 376 | * Define consistent border, margin, and padding. 377 | */ 378 | 379 | fieldset { 380 | border: 1px solid #c0c0c0; 381 | margin: 0 2px; 382 | padding: 0.35em 0.625em 0.75em; 383 | } 384 | 385 | /** 386 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 387 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 388 | */ 389 | 390 | legend { 391 | border: 0; /* 1 */ 392 | padding: 0; /* 2 */ 393 | } 394 | 395 | /** 396 | * Remove default vertical scrollbar in IE 8/9/10/11. 397 | */ 398 | 399 | textarea { 400 | overflow: auto; 401 | } 402 | 403 | /** 404 | * Don't inherit the `font-weight` (applied by a rule above). 405 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 406 | */ 407 | 408 | optgroup { 409 | font-weight: bold; 410 | } 411 | 412 | /* Tables 413 | ========================================================================== */ 414 | 415 | /** 416 | * Remove most spacing between table cells. 417 | */ 418 | 419 | table { 420 | border-collapse: collapse; 421 | border-spacing: 0; 422 | } 423 | 424 | td, 425 | th { 426 | padding: 0; 427 | } -------------------------------------------------------------------------------- /css/web.css: -------------------------------------------------------------------------------- 1 | /* Start Global */ 2 | 3 | * { 4 | -webkit-box-sizing: border-box; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | } 8 | 9 | body { 10 | 11 | } 12 | 13 | .container { 14 | width: 1200px; 15 | margin: auto; 16 | min-width: 1200px 17 | } 18 | 19 | ul { 20 | list-style: none; 21 | padding: 0; 22 | margin: 0 23 | } 24 | 25 | h2, h3, h4 { 26 | font-weight: normal 27 | } 28 | 29 | .navbar, 30 | .header, 31 | .services, 32 | .our-team, 33 | .testim, 34 | .our-projects, 35 | .footer {min-width: 1200px} 36 | 37 | /* End Global */ 38 | 39 | /* Start Navbar */ 40 | 41 | .navbar { 42 | font-size: 18px; 43 | height: 0; 44 | color: #FFF; 45 | position: relative; 46 | z-index: 2 47 | } 48 | 49 | .navbar .brand { 50 | float: left; 51 | width: 50%; 52 | text-transform: uppercase; 53 | margin-top: 10px 54 | } 55 | 56 | .navbar .links { 57 | float: left; 58 | width: 50%; 59 | margin-top: 25px 60 | } 61 | 62 | .navbar .links li { 63 | display: inline-block; 64 | padding: 10px 0; 65 | margin: 0 10px; 66 | border-bottom: 2px solid transparent 67 | } 68 | 69 | .navbar .links li a { 70 | color: #FFF; 71 | text-decoration: none 72 | } 73 | 74 | .navbar .links li.active a, 75 | .navbar .links li a:hover { 76 | color: #1abc9c 77 | } 78 | 79 | .navbar .links li.active, 80 | .navbar .links li:hover { 81 | border-bottom: 2px solid #1abc9c; 82 | } 83 | 84 | /* End Navbar */ 85 | 86 | /* Start Header */ 87 | 88 | .header { 89 | background: url('../images/header2.jpg'); 90 | position: relative 91 | } 92 | 93 | .header .overlay { 94 | background-color: rgba(0, 0 ,0 , 0.7); 95 | position: absolute; 96 | top: 0; 97 | left: 0; 98 | bottom: 0; 99 | right: 0; 100 | width: 100%; 101 | height: 100%; 102 | color: #FFF; 103 | z-index: 1 104 | } 105 | 106 | .header .bx-wrapper { 107 | height: 100% 108 | } 109 | 110 | .header .bx-wrapper .bx-viewport { 111 | box-shadow: none; 112 | border: 0; 113 | background: none; 114 | height: 100% !important; 115 | text-align: center 116 | } 117 | 118 | .header .bxslider { 119 | height: 100% 120 | } 121 | 122 | .header .bxslider li { 123 | display: block 124 | } 125 | 126 | .header .bxslider li h2 { 127 | font-size: 60px; 128 | margin-bottom: 20px; 129 | margin-top: 0; 130 | font-weight: bold 131 | } 132 | 133 | .header .bxslider li h2 span { 134 | color: #1abc9c; 135 | } 136 | 137 | /* End Header */ 138 | 139 | /* Start Services */ 140 | 141 | .services { 142 | padding: 80px 20px 40px 143 | } 144 | 145 | .services h2 { 146 | margin: 0 0 50px; 147 | font-weight: normal 148 | } 149 | 150 | .services .item { 151 | float: left; 152 | width: 33.33333%; 153 | margin-bottom: 20px 154 | } 155 | 156 | .services .item i { 157 | color: #1abc9c; 158 | float: left; 159 | width: 17%; 160 | margin-top: 10px; 161 | margin-right: 8% 162 | } 163 | 164 | .services .item .info { 165 | float: left; 166 | width: 70% 167 | } 168 | 169 | .services .item .info h3 { 170 | color: #585353; 171 | margin-bottom: 10px 172 | } 173 | 174 | .services .item .info p { 175 | margin-top: 0; 176 | color: #888 177 | } 178 | 179 | .our-team { 180 | padding: 40px 20px 181 | } 182 | 183 | .our-team .box { 184 | float: left 185 | } 186 | 187 | .our-team .box:first-child { 188 | width: 35% 189 | } 190 | 191 | .our-team .box p { 192 | color: #888; 193 | line-height: 1.4; 194 | font-size: 14px 195 | } 196 | 197 | .our-team .box:not(:first-child) { 198 | width: 15.25%; 199 | margin-left: 1%; 200 | position: relative; 201 | } 202 | 203 | .our-team .box:not(:first-child) .overlay { 204 | position: absolute; 205 | top: 0; 206 | left: 0; 207 | bottom: 0; 208 | right: 0; 209 | width: 100%; 210 | height: 100%; 211 | line-height: 183px; 212 | font-size: 20px; 213 | font-weight: bold; 214 | color: #FFF; 215 | text-align: center; 216 | background-color: rgba(26, 188, 156, .9); 217 | display: none; 218 | } 219 | 220 | .our-team .box:not(:first-child):hover .overlay { 221 | display: block 222 | } 223 | 224 | .our-team .box:not(:first-child) img { 225 | width: 100% 226 | } 227 | 228 | .our-team h2 { 229 | padding: 0 0 15px 230 | } 231 | 232 | /* End Services */ 233 | 234 | /* Start Testimonials */ 235 | 236 | .testim { 237 | background: url('../images/keyboard.jpg'); 238 | -webkit-background-size:cover; 239 | -moz-background-size:cover; 240 | -o-background-size:cover; 241 | background-size:cover; 242 | height: 400px; 243 | position: relative; 244 | text-align: center; 245 | padding: 80px 0 246 | } 247 | 248 | .testim .t-overlay { 249 | position: absolute; 250 | left: 0; 251 | top: 0; 252 | right: 0; 253 | bottom: 0; 254 | width: 100%; 255 | height: 100%; 256 | color: #FFF; 257 | background-color: rgba(0, 0, 0, .8) 258 | } 259 | 260 | .testim h2 { 261 | font-size: 40px; 262 | margin: 80px 0 10px 263 | } 264 | 265 | .testim q { 266 | font-size: 20px; 267 | line-height: 2; 268 | color: #D0D0D0; 269 | display: block; 270 | margin-top: 60px 271 | } 272 | 273 | .testim p { 274 | font-size: 30px; 275 | color: #1abc9c 276 | } 277 | 278 | .testim .slider > div { 279 | display: none 280 | } 281 | 282 | .testim .slider .active { 283 | display: block 284 | } 285 | 286 | /* End Testimoanials */ 287 | 288 | /* Start Projects */ 289 | 290 | .our-projects { 291 | padding: 60px 0; 292 | } 293 | 294 | .our-projects ul { 295 | margin-top: 50px 296 | } 297 | 298 | .our-projects ul li { 299 | display: inline-block; 300 | border: 2px solid #D4CCCC; 301 | color: #A7A7A7; 302 | padding: 10px; 303 | border-radius: 5px; 304 | margin-right: 5px 305 | } 306 | 307 | .our-projects ul li.selected { 308 | background-color: #1abc9c; 309 | border: 2px solid #1abc9c; 310 | color: #FFF 311 | } 312 | 313 | .our-projects .gallery { 314 | margin-top: 50px; 315 | overflow: hidden 316 | } 317 | 318 | .our-projects .gallery .row > div:nth-child(2) { 319 | margin-right: 1%; 320 | margin-left: 1% 321 | } 322 | 323 | .our-projects .gallery .row > div { 324 | width: 32.66666%; 325 | float: left; 326 | margin-bottom: 12px; 327 | background-color: #DDD; 328 | position: relative 329 | } 330 | 331 | .our-projects .gallery .row > div .over { 332 | position: absolute; 333 | top: 0; 334 | left: 0; 335 | bottom: 0; 336 | right: 0; 337 | width: 100%; 338 | height: 100%; 339 | line-height: 232px; 340 | font-size: 20px; 341 | font-weight: bold; 342 | color: #FFF; 343 | text-align: center; 344 | background-color: rgba(26, 188, 156, .9); 345 | display: none 346 | } 347 | 348 | .our-projects .gallery .row > div .heart { 349 | position: absolute; 350 | bottom: 20px; 351 | right: 20px; 352 | color: #FFF; 353 | display: none 354 | } 355 | 356 | .our-projects .gallery .row > div:hover .over, 357 | .our-projects .gallery .row > div:hover .heart { 358 | display: block 359 | } 360 | 361 | .our-projects .gallery .row > div img { 362 | width: 100% 363 | } 364 | 365 | .our-projects .shuffle li { 366 | cursor: pointer 367 | } 368 | 369 | .our-projects .mix { 370 | display: none 371 | } 372 | 373 | /* End Projects */ 374 | 375 | /* Start Footer */ 376 | 377 | .footer { 378 | background-color: #232323; 379 | color: #6C6C6C; 380 | padding: 40px 0; 381 | overflow: hidden 382 | } 383 | 384 | .footer .col { 385 | width: 25%; 386 | float: left 387 | } 388 | 389 | .footer .col h2 { 390 | color: #FFF; 391 | font-size: 18px 392 | } 393 | 394 | .footer .col p { 395 | margin-bottom: 30px; 396 | line-height: 1.6 397 | } 398 | 399 | .footer .col i { 400 | display: inline-block; 401 | color: #979797; 402 | border: 1px solid #979797; 403 | width: 40px; 404 | padding: 10px 405 | } 406 | 407 | .footer .tags span { 408 | display: inline-block; 409 | color: #CCC; 410 | border: 1px solid #979797; 411 | padding: 10px; 412 | margin-right: 5px; 413 | margin-bottom: 10px 414 | } 415 | 416 | .footer .recent div { 417 | overflow: hidden; 418 | margin-bottom: 15px 419 | } 420 | 421 | .footer .recent div img { 422 | float: left; 423 | margin-right: 10px 424 | } 425 | 426 | .footer .recent div h4 { 427 | margin: 8px 0; 428 | color: #CCC; 429 | } 430 | 431 | .footer .blog ul li { 432 | padding: 15px; 433 | border-bottom: 1px solid #979797; 434 | color: #CCC 435 | } 436 | 437 | .footer .copyright { 438 | margin-top: 30px 439 | } 440 | 441 | /* End Footer */ 442 | 443 | /* Start My Framework */ 444 | 445 | .clearfix { 446 | clear: both 447 | } 448 | 449 | .special-heading { 450 | position: relative 451 | } 452 | 453 | .special-heading:after { 454 | content: ""; 455 | display: block; 456 | position: absolute; 457 | top: 40px; 458 | left: 0; 459 | width: 40px; 460 | border-bottom: 2px solid #333; 461 | } 462 | 463 | .separator { 464 | border: 1px solid #EEE 465 | } 466 | 467 | /* End My Framework */ 468 | 469 | -------------------------------------------------------------------------------- /fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /images/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/01.png -------------------------------------------------------------------------------- /images/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/02.png -------------------------------------------------------------------------------- /images/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/03.png -------------------------------------------------------------------------------- /images/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/04.png -------------------------------------------------------------------------------- /images/footer/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/footer/01.png -------------------------------------------------------------------------------- /images/footer/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/footer/02.jpg -------------------------------------------------------------------------------- /images/footer/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/footer/03.jpg -------------------------------------------------------------------------------- /images/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/header.jpg -------------------------------------------------------------------------------- /images/header2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/header2.jpg -------------------------------------------------------------------------------- /images/keyboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/keyboard.jpg -------------------------------------------------------------------------------- /images/products/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/products/01.jpg -------------------------------------------------------------------------------- /images/products/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/products/02.jpg -------------------------------------------------------------------------------- /images/products/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/products/03.jpg -------------------------------------------------------------------------------- /images/products/04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/products/04.jpg -------------------------------------------------------------------------------- /images/products/05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/products/05.jpg -------------------------------------------------------------------------------- /images/products/06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ElzeroWebSchool/Preview2HtmlLv2/f8a37ba91515b0efd73b6202fbcf272f2a1a55aa/images/products/06.jpg -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Classic 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 32 | 33 | 34 | 35 | 36 | 37 |
38 |
39 | 57 |
58 |
59 | 60 | 61 | 62 | 63 | 64 |
65 |
66 |

Our Services

67 |
68 | 69 |
70 |

Responsive

71 |

Nam vel eleifend que fusce consequat pretium velit vitae. Vulputate nullam pharetra lorem laoreet. Etiam sollicitudin magna nullam.

72 |
73 |
74 |
75 | 76 |
77 |

Cloud Services

78 |

Nam vel eleifend que fusce consequat pretium velit vitae. Vulputate nullam pharetra lorem laoreet. Etiam sollicitudin magna nullam.

79 |
80 |
81 |
82 | 83 |
84 |

Fresh Ideas

85 |

Nam vel eleifend que fusce consequat pretium velit vitae. Vulputate nullam pharetra lorem laoreet. Etiam sollicitudin magna nullam.

86 |
87 |
88 |
89 | 90 |
91 |

Attachments

92 |

Nam vel eleifend que fusce consequat pretium velit vitae. Vulputate nullam pharetra lorem laoreet. Etiam sollicitudin magna nullam.

93 |
94 |
95 |
96 | 97 |
98 |

Support Video

99 |

Nam vel eleifend que fusce consequat pretium velit vitae. Vulputate nullam pharetra lorem laoreet. Etiam sollicitudin magna nullam.

100 |
101 |
102 |
103 | 104 |
105 |

Lovely Design

106 |

Nam vel eleifend que fusce consequat pretium velit vitae. Vulputate nullam pharetra lorem laoreet. Etiam sollicitudin magna nullam.

107 |
108 |
109 |
110 |
111 |
112 | 113 |
114 |
115 |
116 | 117 |
118 |
119 |
120 |

Our Team

121 |

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent a lacus facilisis, placerat magna sit amet, rhoncus lacus. Cras porta eget nibh vel vehicula. Phasellus ullamcorper odio sit amet felis congue, id porta sapien tincidunt. Ut id sem malesuada, dapibus.

122 |
123 |
124 |
125 | Osama 126 |
127 | Image1 128 |
129 |
130 |
131 | Hassan 132 |
133 | Image2 134 |
135 |
136 |
137 | Sayed 138 |
139 | Image3 140 |
141 |
142 |
143 | Mahmoud 144 |
145 | Image4 146 |
147 |
148 |
149 |
150 | 151 | 152 | 153 | 154 | 155 |
156 |
157 |
158 |

What Our Clients Say

159 |
160 |
161 | Hello This Is Very Cool Website And I Loved It So Much Because Reason Test Hello This Is Very Cool Website And I Loved It So Much Because Reason Test Hello This Is Very Cool Website And I Loved It So Much Because Reason Test 162 |

Osama

163 |
164 |
165 | Hello This Is Very Cool Website And I Loved It So Much Because Reason Test Hello This Is Very Cool Website And I Loved It So Much Because Reason Test Hello This Is Very Cool Website And I Loved It So Much Because Reason Test 166 |

Ahmed

167 |
168 |
169 | Hello This Is Very Cool Website And I Loved It So Much Because Reason Test Hello This Is Very Cool Website And I Loved It So Much Because Reason Test Hello This Is Very Cool Website And I Loved It So Much Because Reason Test 170 |

Sayed

171 |
172 |
173 | Hello This Is Very Cool Website And I Loved It So Much Because Reason Test Hello This Is Very Cool Website And I Loved It So Much Because Reason Test Hello This Is Very Cool Website And I Loved It So Much Because Reason Test 174 |

Mahmoud

175 |
176 |
177 | Hello This Is Very Cool Website And I Loved It So Much Because Reason Test Hello This Is Very Cool Website And I Loved It So Much Because Reason Test Hello This Is Very Cool Website And I Loved It So Much Because Reason Test 178 |

Hassan

179 |
180 |
181 |
182 |
183 |
184 | 185 | 186 | 187 | 188 | 189 |
190 |
191 |

Projects

192 | 198 | 246 |
247 |
248 | 249 | 250 | 251 | 252 | 253 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | -------------------------------------------------------------------------------- /js/custom.js: -------------------------------------------------------------------------------- 1 | /*global $, alert, console*/ 2 | 3 | $(function () { 4 | 5 | 'use strict'; 6 | 7 | // Adjust Header Height 8 | 9 | var myHeader = $('.header'), 10 | 11 | mySlider = $('.bxslider'); 12 | 13 | myHeader.height($(window).height()); 14 | 15 | $(window).resize(function () { 16 | 17 | myHeader.height($(window).height()); 18 | 19 | // Adjust Bxslider List Item Center 20 | 21 | mySlider.each(function () { 22 | 23 | $(this).css('paddingTop', ($(window).height() - $('.bxslider li').height()) / 2); 24 | 25 | }); 26 | 27 | }); 28 | 29 | // Links Add Active Class 30 | 31 | $('.links li a').click(function () { 32 | 33 | $(this).parent().addClass('active').siblings().removeClass('active'); 34 | 35 | }); 36 | 37 | // Adjust Bxslider List Item Center 38 | 39 | mySlider.each(function () { 40 | 41 | $(this).css('paddingTop', ($(window).height() - $('.bxslider li').height()) / 2); 42 | 43 | }); 44 | 45 | // Trigger The Bx Slider 46 | 47 | mySlider.bxSlider({ 48 | 49 | pager: false 50 | 51 | }); 52 | 53 | // Smooth Scroll To Div 54 | 55 | $('.links li a').click(function () { 56 | 57 | $('html, body').animate({ 58 | 59 | scrollTop: $('#' + $(this).data('value')).offset().top 60 | 61 | }, 1000); 62 | 63 | console.log('#' + $(this).data('value')); 64 | 65 | }); 66 | 67 | // Our Auto Slider Code 68 | 69 | (function autoSlider() { 70 | 71 | $('.slider .active').each(function () { 72 | 73 | if (!$(this).is(':last-child')) { 74 | 75 | $(this).delay(3000).fadeOut(1000, function () { 76 | 77 | $(this).removeClass('active').next().addClass('active').fadeIn(); 78 | 79 | autoSlider(); 80 | 81 | }); 82 | 83 | } else { 84 | 85 | $(this).delay(3000).fadeOut(1000, function () { 86 | 87 | $(this).removeClass('active'); 88 | 89 | $('.slider div').eq(0).addClass('active').fadeIn(); 90 | 91 | autoSlider(); 92 | 93 | }); 94 | 95 | } 96 | 97 | }); 98 | 99 | }()); 100 | 101 | // Trigger MixitUp 102 | 103 | $('#Container').mixItUp(); 104 | 105 | // Adjust Shuffle Links 106 | 107 | $('.shuffle li').click(function () { 108 | 109 | $(this).addClass('selected').siblings().removeClass('selected'); 110 | 111 | }); 112 | 113 | // Trigger Nice Scroll 114 | 115 | $('html').niceScroll({ 116 | 117 | cursorcolor: '#1abc9c', 118 | 119 | cursorwidth: '10px', 120 | 121 | cursorborder: '1px solid #1abc9c', 122 | 123 | cursorborderradius: 0 124 | 125 | }); 126 | 127 | }); -------------------------------------------------------------------------------- /js/jquery.bxslider.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * BxSlider v4.1.2 - Fully loaded, responsive content slider 3 | * http://bxslider.com 4 | * 5 | * Copyright 2014, Steven Wanderski - http://stevenwanderski.com - http://bxcreative.com 6 | * Written while drinking Belgian ales and listening to jazz 7 | * 8 | * Released under the MIT license - http://opensource.org/licenses/MIT 9 | */ 10 | !function(t){var e={},s={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",autoHover:!1,autoDelay:0,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,onSliderLoad:function(){},onSlideBefore:function(){},onSlideAfter:function(){},onSlideNext:function(){},onSlidePrev:function(){},onSliderResize:function(){}};t.fn.bxSlider=function(n){if(0==this.length)return this;if(this.length>1)return this.each(function(){t(this).bxSlider(n)}),this;var o={},r=this;e.el=this;var a=t(window).width(),l=t(window).height(),d=function(){o.settings=t.extend({},s,n),o.settings.slideWidth=parseInt(o.settings.slideWidth),o.children=r.children(o.settings.slideSelector),o.children.length1||o.settings.maxSlides>1,o.carousel&&(o.settings.preloadImages="all"),o.minThreshold=o.settings.minSlides*o.settings.slideWidth+(o.settings.minSlides-1)*o.settings.slideMargin,o.maxThreshold=o.settings.maxSlides*o.settings.slideWidth+(o.settings.maxSlides-1)*o.settings.slideMargin,o.working=!1,o.controls={},o.interval=null,o.animProp="vertical"==o.settings.mode?"top":"left",o.usingCSS=o.settings.useCSS&&"fade"!=o.settings.mode&&function(){var t=document.createElement("div"),e=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in e)if(void 0!==t.style[e[i]])return o.cssPrefix=e[i].replace("Perspective","").toLowerCase(),o.animProp="-"+o.cssPrefix+"-transform",!0;return!1}(),"vertical"==o.settings.mode&&(o.settings.maxSlides=o.settings.minSlides),r.data("origStyle",r.attr("style")),r.children(o.settings.slideSelector).each(function(){t(this).data("origStyle",t(this).attr("style"))}),c()},c=function(){r.wrap('
'),o.viewport=r.parent(),o.loader=t('
'),o.viewport.prepend(o.loader),r.css({width:"horizontal"==o.settings.mode?100*o.children.length+215+"%":"auto",position:"relative"}),o.usingCSS&&o.settings.easing?r.css("-"+o.cssPrefix+"-transition-timing-function",o.settings.easing):o.settings.easing||(o.settings.easing="swing"),f(),o.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),o.viewport.parent().css({maxWidth:p()}),o.settings.pager||o.viewport.parent().css({margin:"0 auto 0px"}),o.children.css({"float":"horizontal"==o.settings.mode?"left":"none",listStyle:"none",position:"relative"}),o.children.css("width",u()),"horizontal"==o.settings.mode&&o.settings.slideMargin>0&&o.children.css("marginRight",o.settings.slideMargin),"vertical"==o.settings.mode&&o.settings.slideMargin>0&&o.children.css("marginBottom",o.settings.slideMargin),"fade"==o.settings.mode&&(o.children.css({position:"absolute",zIndex:0,display:"none"}),o.children.eq(o.settings.startSlide).css({zIndex:o.settings.slideZIndex,display:"block"})),o.controls.el=t('
'),o.settings.captions&&P(),o.active.last=o.settings.startSlide==x()-1,o.settings.video&&r.fitVids();var e=o.children.eq(o.settings.startSlide);"all"==o.settings.preloadImages&&(e=o.children),o.settings.ticker?o.settings.pager=!1:(o.settings.pager&&T(),o.settings.controls&&C(),o.settings.auto&&o.settings.autoControls&&E(),(o.settings.controls||o.settings.autoControls||o.settings.pager)&&o.viewport.after(o.controls.el)),g(e,h)},g=function(e,i){var s=e.find("img, iframe").length;if(0==s)return i(),void 0;var n=0;e.find("img, iframe").each(function(){t(this).one("load",function(){++n==s&&i()}).each(function(){this.complete&&t(this).load()})})},h=function(){if(o.settings.infiniteLoop&&"fade"!=o.settings.mode&&!o.settings.ticker){var e="vertical"==o.settings.mode?o.settings.minSlides:o.settings.maxSlides,i=o.children.slice(0,e).clone().addClass("bx-clone"),s=o.children.slice(-e).clone().addClass("bx-clone");r.append(i).prepend(s)}o.loader.remove(),S(),"vertical"==o.settings.mode&&(o.settings.adaptiveHeight=!0),o.viewport.height(v()),r.redrawSlider(),o.settings.onSliderLoad(o.active.index),o.initialized=!0,o.settings.responsive&&t(window).bind("resize",Z),o.settings.auto&&o.settings.autoStart&&H(),o.settings.ticker&&L(),o.settings.pager&&q(o.settings.startSlide),o.settings.controls&&W(),o.settings.touchEnabled&&!o.settings.ticker&&O()},v=function(){var e=0,s=t();if("vertical"==o.settings.mode||o.settings.adaptiveHeight)if(o.carousel){var n=1==o.settings.moveSlides?o.active.index:o.active.index*m();for(s=o.children.eq(n),i=1;i<=o.settings.maxSlides-1;i++)s=n+i>=o.children.length?s.add(o.children.eq(i-1)):s.add(o.children.eq(n+i))}else s=o.children.eq(o.active.index);else s=o.children;return"vertical"==o.settings.mode?(s.each(function(){e+=t(this).outerHeight()}),o.settings.slideMargin>0&&(e+=o.settings.slideMargin*(o.settings.minSlides-1))):e=Math.max.apply(Math,s.map(function(){return t(this).outerHeight(!1)}).get()),e},p=function(){var t="100%";return o.settings.slideWidth>0&&(t="horizontal"==o.settings.mode?o.settings.maxSlides*o.settings.slideWidth+(o.settings.maxSlides-1)*o.settings.slideMargin:o.settings.slideWidth),t},u=function(){var t=o.settings.slideWidth,e=o.viewport.width();return 0==o.settings.slideWidth||o.settings.slideWidth>e&&!o.carousel||"vertical"==o.settings.mode?t=e:o.settings.maxSlides>1&&"horizontal"==o.settings.mode&&(e>o.maxThreshold||e0)if(o.viewport.width()o.maxThreshold)t=o.settings.maxSlides;else{var e=o.children.first().width();t=Math.floor(o.viewport.width()/e)}else"vertical"==o.settings.mode&&(t=o.settings.minSlides);return t},x=function(){var t=0;if(o.settings.moveSlides>0)if(o.settings.infiniteLoop)t=o.children.length/m();else for(var e=0,i=0;e0&&o.settings.moveSlides<=f()?o.settings.moveSlides:f()},S=function(){if(o.children.length>o.settings.maxSlides&&o.active.last&&!o.settings.infiniteLoop){if("horizontal"==o.settings.mode){var t=o.children.last(),e=t.position();b(-(e.left-(o.viewport.width()-t.width())),"reset",0)}else if("vertical"==o.settings.mode){var i=o.children.length-o.settings.minSlides,e=o.children.eq(i).position();b(-e.top,"reset",0)}}else{var e=o.children.eq(o.active.index*m()).position();o.active.index==x()-1&&(o.active.last=!0),void 0!=e&&("horizontal"==o.settings.mode?b(-e.left,"reset",0):"vertical"==o.settings.mode&&b(-e.top,"reset",0))}},b=function(t,e,i,s){if(o.usingCSS){var n="vertical"==o.settings.mode?"translate3d(0, "+t+"px, 0)":"translate3d("+t+"px, 0, 0)";r.css("-"+o.cssPrefix+"-transition-duration",i/1e3+"s"),"slide"==e?(r.css(o.animProp,n),r.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){r.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),D()})):"reset"==e?r.css(o.animProp,n):"ticker"==e&&(r.css("-"+o.cssPrefix+"-transition-timing-function","linear"),r.css(o.animProp,n),r.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){r.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),b(s.resetValue,"reset",0),N()}))}else{var a={};a[o.animProp]=t,"slide"==e?r.animate(a,i,o.settings.easing,function(){D()}):"reset"==e?r.css(o.animProp,t):"ticker"==e&&r.animate(a,speed,"linear",function(){b(s.resetValue,"reset",0),N()})}},w=function(){for(var e="",i=x(),s=0;i>s;s++){var n="";o.settings.buildPager&&t.isFunction(o.settings.buildPager)?(n=o.settings.buildPager(s),o.pagerEl.addClass("bx-custom-pager")):(n=s+1,o.pagerEl.addClass("bx-default-pager")),e+='"}o.pagerEl.html(e)},T=function(){o.settings.pagerCustom?o.pagerEl=t(o.settings.pagerCustom):(o.pagerEl=t('
'),o.settings.pagerSelector?t(o.settings.pagerSelector).html(o.pagerEl):o.controls.el.addClass("bx-has-pager").append(o.pagerEl),w()),o.pagerEl.on("click","a",I)},C=function(){o.controls.next=t(''+o.settings.nextText+""),o.controls.prev=t(''+o.settings.prevText+""),o.controls.next.bind("click",y),o.controls.prev.bind("click",z),o.settings.nextSelector&&t(o.settings.nextSelector).append(o.controls.next),o.settings.prevSelector&&t(o.settings.prevSelector).append(o.controls.prev),o.settings.nextSelector||o.settings.prevSelector||(o.controls.directionEl=t('
'),o.controls.directionEl.append(o.controls.prev).append(o.controls.next),o.controls.el.addClass("bx-has-controls-direction").append(o.controls.directionEl))},E=function(){o.controls.start=t('"),o.controls.stop=t('"),o.controls.autoEl=t('
'),o.controls.autoEl.on("click",".bx-start",k),o.controls.autoEl.on("click",".bx-stop",M),o.settings.autoControlsCombine?o.controls.autoEl.append(o.controls.start):o.controls.autoEl.append(o.controls.start).append(o.controls.stop),o.settings.autoControlsSelector?t(o.settings.autoControlsSelector).html(o.controls.autoEl):o.controls.el.addClass("bx-has-controls-auto").append(o.controls.autoEl),A(o.settings.autoStart?"stop":"start")},P=function(){o.children.each(function(){var e=t(this).find("img:first").attr("title");void 0!=e&&(""+e).length&&t(this).append('
'+e+"
")})},y=function(t){o.settings.auto&&r.stopAuto(),r.goToNextSlide(),t.preventDefault()},z=function(t){o.settings.auto&&r.stopAuto(),r.goToPrevSlide(),t.preventDefault()},k=function(t){r.startAuto(),t.preventDefault()},M=function(t){r.stopAuto(),t.preventDefault()},I=function(e){o.settings.auto&&r.stopAuto();var i=t(e.currentTarget),s=parseInt(i.attr("data-slide-index"));s!=o.active.index&&r.goToSlide(s),e.preventDefault()},q=function(e){var i=o.children.length;return"short"==o.settings.pagerType?(o.settings.maxSlides>1&&(i=Math.ceil(o.children.length/o.settings.maxSlides)),o.pagerEl.html(e+1+o.settings.pagerShortSeparator+i),void 0):(o.pagerEl.find("a").removeClass("active"),o.pagerEl.each(function(i,s){t(s).find("a").eq(e).addClass("active")}),void 0)},D=function(){if(o.settings.infiniteLoop){var t="";0==o.active.index?t=o.children.eq(0).position():o.active.index==x()-1&&o.carousel?t=o.children.eq((x()-1)*m()).position():o.active.index==o.children.length-1&&(t=o.children.eq(o.children.length-1).position()),t&&("horizontal"==o.settings.mode?b(-t.left,"reset",0):"vertical"==o.settings.mode&&b(-t.top,"reset",0))}o.working=!1,o.settings.onSlideAfter(o.children.eq(o.active.index),o.oldIndex,o.active.index)},A=function(t){o.settings.autoControlsCombine?o.controls.autoEl.html(o.controls[t]):(o.controls.autoEl.find("a").removeClass("active"),o.controls.autoEl.find("a:not(.bx-"+t+")").addClass("active"))},W=function(){1==x()?(o.controls.prev.addClass("disabled"),o.controls.next.addClass("disabled")):!o.settings.infiniteLoop&&o.settings.hideControlOnEnd&&(0==o.active.index?(o.controls.prev.addClass("disabled"),o.controls.next.removeClass("disabled")):o.active.index==x()-1?(o.controls.next.addClass("disabled"),o.controls.prev.removeClass("disabled")):(o.controls.prev.removeClass("disabled"),o.controls.next.removeClass("disabled")))},H=function(){o.settings.autoDelay>0?setTimeout(r.startAuto,o.settings.autoDelay):r.startAuto(),o.settings.autoHover&&r.hover(function(){o.interval&&(r.stopAuto(!0),o.autoPaused=!0)},function(){o.autoPaused&&(r.startAuto(!0),o.autoPaused=null)})},L=function(){var e=0;if("next"==o.settings.autoDirection)r.append(o.children.clone().addClass("bx-clone"));else{r.prepend(o.children.clone().addClass("bx-clone"));var i=o.children.first().position();e="horizontal"==o.settings.mode?-i.left:-i.top}b(e,"reset",0),o.settings.pager=!1,o.settings.controls=!1,o.settings.autoControls=!1,o.settings.tickerHover&&!o.usingCSS&&o.viewport.hover(function(){r.stop()},function(){var e=0;o.children.each(function(){e+="horizontal"==o.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)});var i=o.settings.speed/e,s="horizontal"==o.settings.mode?"left":"top",n=i*(e-Math.abs(parseInt(r.css(s))));N(n)}),N()},N=function(t){speed=t?t:o.settings.speed;var e={left:0,top:0},i={left:0,top:0};"next"==o.settings.autoDirection?e=r.find(".bx-clone").first().position():i=o.children.first().position();var s="horizontal"==o.settings.mode?-e.left:-e.top,n="horizontal"==o.settings.mode?-i.left:-i.top,a={resetValue:n};b(s,"ticker",speed,a)},O=function(){o.touch={start:{x:0,y:0},end:{x:0,y:0}},o.viewport.bind("touchstart",X)},X=function(t){if(o.working)t.preventDefault();else{o.touch.originalPos=r.position();var e=t.originalEvent;o.touch.start.x=e.changedTouches[0].pageX,o.touch.start.y=e.changedTouches[0].pageY,o.viewport.bind("touchmove",Y),o.viewport.bind("touchend",V)}},Y=function(t){var e=t.originalEvent,i=Math.abs(e.changedTouches[0].pageX-o.touch.start.x),s=Math.abs(e.changedTouches[0].pageY-o.touch.start.y);if(3*i>s&&o.settings.preventDefaultSwipeX?t.preventDefault():3*s>i&&o.settings.preventDefaultSwipeY&&t.preventDefault(),"fade"!=o.settings.mode&&o.settings.oneToOneTouch){var n=0;if("horizontal"==o.settings.mode){var r=e.changedTouches[0].pageX-o.touch.start.x;n=o.touch.originalPos.left+r}else{var r=e.changedTouches[0].pageY-o.touch.start.y;n=o.touch.originalPos.top+r}b(n,"reset",0)}},V=function(t){o.viewport.unbind("touchmove",Y);var e=t.originalEvent,i=0;if(o.touch.end.x=e.changedTouches[0].pageX,o.touch.end.y=e.changedTouches[0].pageY,"fade"==o.settings.mode){var s=Math.abs(o.touch.start.x-o.touch.end.x);s>=o.settings.swipeThreshold&&(o.touch.start.x>o.touch.end.x?r.goToNextSlide():r.goToPrevSlide(),r.stopAuto())}else{var s=0;"horizontal"==o.settings.mode?(s=o.touch.end.x-o.touch.start.x,i=o.touch.originalPos.left):(s=o.touch.end.y-o.touch.start.y,i=o.touch.originalPos.top),!o.settings.infiniteLoop&&(0==o.active.index&&s>0||o.active.last&&0>s)?b(i,"reset",200):Math.abs(s)>=o.settings.swipeThreshold?(0>s?r.goToNextSlide():r.goToPrevSlide(),r.stopAuto()):b(i,"reset",200)}o.viewport.unbind("touchend",V)},Z=function(){var e=t(window).width(),i=t(window).height();(a!=e||l!=i)&&(a=e,l=i,r.redrawSlider(),o.settings.onSliderResize.call(r,o.active.index))};return r.goToSlide=function(e,i){if(!o.working&&o.active.index!=e)if(o.working=!0,o.oldIndex=o.active.index,o.active.index=0>e?x()-1:e>=x()?0:e,o.settings.onSlideBefore(o.children.eq(o.active.index),o.oldIndex,o.active.index),"next"==i?o.settings.onSlideNext(o.children.eq(o.active.index),o.oldIndex,o.active.index):"prev"==i&&o.settings.onSlidePrev(o.children.eq(o.active.index),o.oldIndex,o.active.index),o.active.last=o.active.index>=x()-1,o.settings.pager&&q(o.active.index),o.settings.controls&&W(),"fade"==o.settings.mode)o.settings.adaptiveHeight&&o.viewport.height()!=v()&&o.viewport.animate({height:v()},o.settings.adaptiveHeightSpeed),o.children.filter(":visible").fadeOut(o.settings.speed).css({zIndex:0}),o.children.eq(o.active.index).css("zIndex",o.settings.slideZIndex+1).fadeIn(o.settings.speed,function(){t(this).css("zIndex",o.settings.slideZIndex),D()});else{o.settings.adaptiveHeight&&o.viewport.height()!=v()&&o.viewport.animate({height:v()},o.settings.adaptiveHeightSpeed);var s=0,n={left:0,top:0};if(!o.settings.infiniteLoop&&o.carousel&&o.active.last)if("horizontal"==o.settings.mode){var a=o.children.eq(o.children.length-1);n=a.position(),s=o.viewport.width()-a.outerWidth()}else{var l=o.children.length-o.settings.minSlides;n=o.children.eq(l).position()}else if(o.carousel&&o.active.last&&"prev"==i){var d=1==o.settings.moveSlides?o.settings.maxSlides-m():(x()-1)*m()-(o.children.length-o.settings.maxSlides),a=r.children(".bx-clone").eq(d);n=a.position()}else if("next"==i&&0==o.active.index)n=r.find("> .bx-clone").eq(o.settings.maxSlides).position(),o.active.last=!1;else if(e>=0){var c=e*m();n=o.children.eq(c).position()}if("undefined"!=typeof n){var g="horizontal"==o.settings.mode?-(n.left-s):-n.top;b(g,"slide",o.settings.speed)}}},r.goToNextSlide=function(){if(o.settings.infiniteLoop||!o.active.last){var t=parseInt(o.active.index)+1;r.goToSlide(t,"next")}},r.goToPrevSlide=function(){if(o.settings.infiniteLoop||0!=o.active.index){var t=parseInt(o.active.index)-1;r.goToSlide(t,"prev")}},r.startAuto=function(t){o.interval||(o.interval=setInterval(function(){"next"==o.settings.autoDirection?r.goToNextSlide():r.goToPrevSlide()},o.settings.pause),o.settings.autoControls&&1!=t&&A("stop"))},r.stopAuto=function(t){o.interval&&(clearInterval(o.interval),o.interval=null,o.settings.autoControls&&1!=t&&A("start"))},r.getCurrentSlide=function(){return o.active.index},r.getCurrentSlideElement=function(){return o.children.eq(o.active.index)},r.getSlideCount=function(){return o.children.length},r.redrawSlider=function(){o.children.add(r.find(".bx-clone")).outerWidth(u()),o.viewport.css("height",v()),o.settings.ticker||S(),o.active.last&&(o.active.index=x()-1),o.active.index>=x()&&(o.active.last=!0),o.settings.pager&&!o.settings.pagerCustom&&(w(),q(o.active.index))},r.destroySlider=function(){o.initialized&&(o.initialized=!1,t(".bx-clone",this).remove(),o.children.each(function(){void 0!=t(this).data("origStyle")?t(this).attr("style",t(this).data("origStyle")):t(this).removeAttr("style")}),void 0!=t(this).data("origStyle")?this.attr("style",t(this).data("origStyle")):t(this).removeAttr("style"),t(this).unwrap().unwrap(),o.controls.el&&o.controls.el.remove(),o.controls.next&&o.controls.next.remove(),o.controls.prev&&o.controls.prev.remove(),o.pagerEl&&o.settings.controls&&o.pagerEl.remove(),t(".bx-caption",this).remove(),o.controls.autoEl&&o.controls.autoEl.remove(),clearInterval(o.interval),o.settings.responsive&&t(window).unbind("resize",Z))},r.reloadSlider=function(t){void 0!=t&&(n=t),r.destroySlider(),d()},d(),this}}(jQuery); -------------------------------------------------------------------------------- /js/jquery.mixitup.js: -------------------------------------------------------------------------------- 1 | /**! 2 | * MixItUp v2.1.10 3 | * 4 | * @copyright Copyright 2015 KunkaLabs Limited. 5 | * @author KunkaLabs Limited. 6 | * @link https://mixitup.kunkalabs.com 7 | * 8 | * @license Commercial use requires a commercial license. 9 | * https://mixitup.kunkalabs.com/licenses/ 10 | * 11 | * Non-commercial use permitted under terms of CC-BY-NC license. 12 | * http://creativecommons.org/licenses/by-nc/3.0/ 13 | */ 14 | 15 | (function($, undf){ 16 | 'use strict'; 17 | 18 | /** 19 | * MixItUp Constructor Function 20 | * @constructor 21 | * @extends jQuery 22 | */ 23 | 24 | $.MixItUp = function(){ 25 | var self = this; 26 | 27 | self._execAction('_constructor', 0); 28 | 29 | $.extend(self, { 30 | 31 | /* Public Properties 32 | ---------------------------------------------------------------------- */ 33 | 34 | selectors: { 35 | target: '.mix', 36 | filter: '.filter', 37 | sort: '.sort' 38 | }, 39 | 40 | animation: { 41 | enable: true, 42 | effects: 'fade scale', 43 | duration: 600, 44 | easing: 'ease', 45 | perspectiveDistance: '3000', 46 | perspectiveOrigin: '50% 50%', 47 | queue: true, 48 | queueLimit: 1, 49 | animateChangeLayout: false, 50 | animateResizeContainer: true, 51 | animateResizeTargets: false, 52 | staggerSequence: false, 53 | reverseOut: false 54 | }, 55 | 56 | callbacks: { 57 | onMixLoad: false, 58 | onMixStart: false, 59 | onMixBusy: false, 60 | onMixEnd: false, 61 | onMixFail: false, 62 | _user: false 63 | }, 64 | 65 | controls: { 66 | enable: true, 67 | live: false, 68 | toggleFilterButtons: false, 69 | toggleLogic: 'or', 70 | activeClass: 'active' 71 | }, 72 | 73 | layout: { 74 | display: 'inline-block', 75 | containerClass: '', 76 | containerClassFail: 'fail' 77 | }, 78 | 79 | load: { 80 | filter: 'all', 81 | sort: false 82 | }, 83 | 84 | /* Private Properties 85 | ---------------------------------------------------------------------- */ 86 | 87 | _$body: null, 88 | _$container: null, 89 | _$targets: null, 90 | _$parent: null, 91 | _$sortButtons: null, 92 | _$filterButtons: null, 93 | 94 | _suckMode: false, 95 | _mixing: false, 96 | _sorting: false, 97 | _clicking: false, 98 | _loading: true, 99 | _changingLayout: false, 100 | _changingClass: false, 101 | _changingDisplay: false, 102 | 103 | _origOrder: [], 104 | _startOrder: [], 105 | _newOrder: [], 106 | _activeFilter: null, 107 | _toggleArray: [], 108 | _toggleString: '', 109 | _activeSort: 'default:asc', 110 | _newSort: null, 111 | _startHeight: null, 112 | _newHeight: null, 113 | _incPadding: true, 114 | _newDisplay: null, 115 | _newClass: null, 116 | _targetsBound: 0, 117 | _targetsDone: 0, 118 | _queue: [], 119 | 120 | _$show: $(), 121 | _$hide: $() 122 | }); 123 | 124 | self._execAction('_constructor', 1); 125 | }; 126 | 127 | /** 128 | * MixItUp Prototype 129 | * @override 130 | */ 131 | 132 | $.MixItUp.prototype = { 133 | constructor: $.MixItUp, 134 | 135 | /* Static Properties 136 | ---------------------------------------------------------------------- */ 137 | 138 | _instances: {}, 139 | _handled: { 140 | _filter: {}, 141 | _sort: {} 142 | }, 143 | _bound: { 144 | _filter: {}, 145 | _sort: {} 146 | }, 147 | _actions: {}, 148 | _filters: {}, 149 | 150 | /* Static Methods 151 | ---------------------------------------------------------------------- */ 152 | 153 | /** 154 | * Extend 155 | * @since 2.1.0 156 | * @param {object} new properties/methods 157 | * @extends {object} prototype 158 | */ 159 | 160 | extend: function(extension){ 161 | for(var key in extension){ 162 | $.MixItUp.prototype[key] = extension[key]; 163 | } 164 | }, 165 | 166 | /** 167 | * Add Action 168 | * @since 2.1.0 169 | * @param {string} hook name 170 | * @param {string} namespace 171 | * @param {function} function to execute 172 | * @param {number} priority 173 | * @extends {object} $.MixItUp.prototype._actions 174 | */ 175 | 176 | addAction: function(hook, name, func, priority){ 177 | $.MixItUp.prototype._addHook('_actions', hook, name, func, priority); 178 | }, 179 | 180 | /** 181 | * Add Filter 182 | * @since 2.1.0 183 | * @param {string} hook name 184 | * @param {string} namespace 185 | * @param {function} function to execute 186 | * @param {number} priority 187 | * @extends {object} $.MixItUp.prototype._filters 188 | */ 189 | 190 | addFilter: function(hook, name, func, priority){ 191 | $.MixItUp.prototype._addHook('_filters', hook, name, func, priority); 192 | }, 193 | 194 | /** 195 | * Add Hook 196 | * @since 2.1.0 197 | * @param {string} type of hook 198 | * @param {string} hook name 199 | * @param {function} function to execute 200 | * @param {number} priority 201 | * @extends {object} $.MixItUp.prototype._filters 202 | */ 203 | 204 | _addHook: function(type, hook, name, func, priority){ 205 | var collection = $.MixItUp.prototype[type], 206 | obj = {}; 207 | 208 | priority = (priority === 1 || priority === 'post') ? 'post' : 'pre'; 209 | 210 | obj[hook] = {}; 211 | obj[hook][priority] = {}; 212 | obj[hook][priority][name] = func; 213 | 214 | $.extend(true, collection, obj); 215 | }, 216 | 217 | 218 | /* Private Methods 219 | ---------------------------------------------------------------------- */ 220 | 221 | /** 222 | * Initialise 223 | * @since 2.0.0 224 | * @param {object} domNode 225 | * @param {object} config 226 | */ 227 | 228 | _init: function(domNode, config){ 229 | var self = this; 230 | 231 | self._execAction('_init', 0, arguments); 232 | 233 | config && $.extend(true, self, config); 234 | 235 | self._$body = $('body'); 236 | self._domNode = domNode; 237 | self._$container = $(domNode); 238 | self._$container.addClass(self.layout.containerClass); 239 | self._id = domNode.id; 240 | 241 | self._platformDetect(); 242 | 243 | self._brake = self._getPrefixedCSS('transition', 'none'); 244 | 245 | self._refresh(true); 246 | 247 | self._$parent = self._$targets.parent().length ? self._$targets.parent() : self._$container; 248 | 249 | if(self.load.sort){ 250 | self._newSort = self._parseSort(self.load.sort); 251 | self._newSortString = self.load.sort; 252 | self._activeSort = self.load.sort; 253 | self._sort(); 254 | self._printSort(); 255 | } 256 | 257 | self._activeFilter = self.load.filter === 'all' ? 258 | self.selectors.target : 259 | self.load.filter === 'none' ? 260 | '' : 261 | self.load.filter; 262 | 263 | self.controls.enable && self._bindHandlers(); 264 | 265 | if(self.controls.toggleFilterButtons){ 266 | self._buildToggleArray(); 267 | 268 | for(var i = 0; i < self._toggleArray.length; i++){ 269 | self._updateControls({filter: self._toggleArray[i], sort: self._activeSort}, true); 270 | }; 271 | } else if(self.controls.enable){ 272 | self._updateControls({filter: self._activeFilter, sort: self._activeSort}); 273 | } 274 | 275 | self._filter(); 276 | 277 | self._init = true; 278 | 279 | self._$container.data('mixItUp',self); 280 | 281 | self._execAction('_init', 1, arguments); 282 | 283 | self._buildState(); 284 | 285 | self._$targets.css(self._brake); 286 | 287 | self._goMix(self.animation.enable); 288 | }, 289 | 290 | /** 291 | * Platform Detect 292 | * @since 2.0.0 293 | */ 294 | 295 | _platformDetect: function(){ 296 | var self = this, 297 | vendorsTrans = ['Webkit', 'Moz', 'O', 'ms'], 298 | vendorsRAF = ['webkit', 'moz'], 299 | chrome = window.navigator.appVersion.match(/Chrome\/(\d+)\./) || false, 300 | ff = typeof InstallTrigger !== 'undefined', 301 | prefix = function(el){ 302 | for (var i = 0; i < vendorsTrans.length; i++){ 303 | if (vendorsTrans[i] + 'Transition' in el.style){ 304 | return { 305 | prefix: '-'+vendorsTrans[i].toLowerCase()+'-', 306 | vendor: vendorsTrans[i] 307 | }; 308 | }; 309 | }; 310 | return 'transition' in el.style ? '' : false; 311 | }, 312 | transPrefix = prefix(self._domNode); 313 | 314 | self._execAction('_platformDetect', 0); 315 | 316 | self._chrome = chrome ? parseInt(chrome[1], 10) : false; 317 | self._ff = ff ? parseInt(window.navigator.userAgent.match(/rv:([^)]+)\)/)[1]) : false; 318 | self._prefix = transPrefix.prefix; 319 | self._vendor = transPrefix.vendor; 320 | self._suckMode = window.atob && self._prefix ? false : true; 321 | 322 | self._suckMode && (self.animation.enable = false); 323 | (self._ff && self._ff <= 4) && (self.animation.enable = false); 324 | 325 | /* Polyfills 326 | ---------------------------------------------------------------------- */ 327 | 328 | /** 329 | * window.requestAnimationFrame 330 | */ 331 | 332 | for(var x = 0; x < vendorsRAF.length && !window.requestAnimationFrame; x++){ 333 | window.requestAnimationFrame = window[vendorsRAF[x]+'RequestAnimationFrame']; 334 | } 335 | 336 | /** 337 | * Object.getPrototypeOf 338 | */ 339 | 340 | if(typeof Object.getPrototypeOf !== 'function'){ 341 | if(typeof 'test'.__proto__ === 'object'){ 342 | Object.getPrototypeOf = function(object){ 343 | return object.__proto__; 344 | }; 345 | } else { 346 | Object.getPrototypeOf = function(object){ 347 | return object.constructor.prototype; 348 | }; 349 | } 350 | } 351 | 352 | /** 353 | * Element.nextElementSibling 354 | */ 355 | 356 | if(self._domNode.nextElementSibling === undf){ 357 | Object.defineProperty(Element.prototype, 'nextElementSibling',{ 358 | get: function(){ 359 | var el = this.nextSibling; 360 | 361 | while(el){ 362 | if(el.nodeType ===1){ 363 | return el; 364 | } 365 | el = el.nextSibling; 366 | } 367 | return null; 368 | } 369 | }); 370 | } 371 | 372 | self._execAction('_platformDetect', 1); 373 | }, 374 | 375 | /** 376 | * Refresh 377 | * @since 2.0.0 378 | * @param {boolean} init 379 | * @param {boolean} force 380 | */ 381 | 382 | _refresh: function(init, force){ 383 | var self = this; 384 | 385 | self._execAction('_refresh', 0, arguments); 386 | 387 | self._$targets = self._$container.find(self.selectors.target); 388 | 389 | for(var i = 0; i < self._$targets.length; i++){ 390 | var target = self._$targets[i]; 391 | 392 | if(target.dataset === undf || force){ 393 | 394 | target.dataset = {}; 395 | 396 | for(var j = 0; j < target.attributes.length; j++){ 397 | 398 | var attr = target.attributes[j], 399 | name = attr.name, 400 | val = attr.value; 401 | 402 | if(name.indexOf('data-') > -1){ 403 | var dataName = self._helpers._camelCase(name.substring(5,name.length)); 404 | target.dataset[dataName] = val; 405 | } 406 | } 407 | } 408 | 409 | if(target.mixParent === undf){ 410 | target.mixParent = self._id; 411 | } 412 | } 413 | 414 | if( 415 | (self._$targets.length && init) || 416 | (!self._origOrder.length && self._$targets.length) 417 | ){ 418 | self._origOrder = []; 419 | 420 | for(var i = 0; i < self._$targets.length; i++){ 421 | var target = self._$targets[i]; 422 | 423 | self._origOrder.push(target); 424 | } 425 | } 426 | 427 | self._execAction('_refresh', 1, arguments); 428 | }, 429 | 430 | /** 431 | * Bind Handlers 432 | * @since 2.0.0 433 | */ 434 | 435 | _bindHandlers: function(){ 436 | var self = this, 437 | filters = $.MixItUp.prototype._bound._filter, 438 | sorts = $.MixItUp.prototype._bound._sort; 439 | 440 | self._execAction('_bindHandlers', 0); 441 | 442 | if(self.controls.live){ 443 | self._$body 444 | .on('click.mixItUp.'+self._id, self.selectors.sort, function(){ 445 | self._processClick($(this), 'sort'); 446 | }) 447 | .on('click.mixItUp.'+self._id, self.selectors.filter, function(){ 448 | self._processClick($(this), 'filter'); 449 | }); 450 | } else { 451 | self._$sortButtons = $(self.selectors.sort); 452 | self._$filterButtons = $(self.selectors.filter); 453 | 454 | self._$sortButtons.on('click.mixItUp.'+self._id, function(){ 455 | self._processClick($(this), 'sort'); 456 | }); 457 | 458 | self._$filterButtons.on('click.mixItUp.'+self._id, function(){ 459 | self._processClick($(this), 'filter'); 460 | }); 461 | } 462 | 463 | filters[self.selectors.filter] = (filters[self.selectors.filter] === undf) ? 1 : filters[self.selectors.filter] + 1; 464 | sorts[self.selectors.sort] = (sorts[self.selectors.sort] === undf) ? 1 : sorts[self.selectors.sort] + 1; 465 | 466 | self._execAction('_bindHandlers', 1); 467 | }, 468 | 469 | /** 470 | * Process Click 471 | * @since 2.0.0 472 | * @param {object} $button 473 | * @param {string} type 474 | */ 475 | 476 | _processClick: function($button, type){ 477 | var self = this, 478 | trackClick = function($button, type, off){ 479 | var proto = $.MixItUp.prototype; 480 | 481 | proto._handled['_'+type][self.selectors[type]] = (proto._handled['_'+type][self.selectors[type]] === undf) ? 482 | 1 : 483 | proto._handled['_'+type][self.selectors[type]] + 1; 484 | 485 | if(proto._handled['_'+type][self.selectors[type]] === proto._bound['_'+type][self.selectors[type]]){ 486 | $button[(off ? 'remove' : 'add')+'Class'](self.controls.activeClass); 487 | delete proto._handled['_'+type][self.selectors[type]]; 488 | } 489 | }; 490 | 491 | self._execAction('_processClick', 0, arguments); 492 | 493 | if(!self._mixing || (self.animation.queue && self._queue.length < self.animation.queueLimit)){ 494 | self._clicking = true; 495 | 496 | if(type === 'sort'){ 497 | var sort = $button.attr('data-sort'); 498 | 499 | if(!$button.hasClass(self.controls.activeClass) || sort.indexOf('random') > -1){ 500 | $(self.selectors.sort).removeClass(self.controls.activeClass); 501 | trackClick($button, type); 502 | self.sort(sort); 503 | } 504 | } 505 | 506 | if(type === 'filter') { 507 | var filter = $button.attr('data-filter'), 508 | ndx, 509 | seperator = self.controls.toggleLogic === 'or' ? ',' : ''; 510 | 511 | if(!self.controls.toggleFilterButtons){ 512 | if(!$button.hasClass(self.controls.activeClass)){ 513 | $(self.selectors.filter).removeClass(self.controls.activeClass); 514 | trackClick($button, type); 515 | self.filter(filter); 516 | } 517 | } else { 518 | self._buildToggleArray(); 519 | 520 | if(!$button.hasClass(self.controls.activeClass)){ 521 | trackClick($button, type); 522 | 523 | self._toggleArray.push(filter); 524 | } else { 525 | trackClick($button, type, true); 526 | ndx = self._toggleArray.indexOf(filter); 527 | self._toggleArray.splice(ndx, 1); 528 | } 529 | 530 | self._toggleArray = $.grep(self._toggleArray,function(n){return(n);}); 531 | 532 | self._toggleString = self._toggleArray.join(seperator); 533 | 534 | self.filter(self._toggleString); 535 | } 536 | } 537 | 538 | self._execAction('_processClick', 1, arguments); 539 | } else { 540 | if(typeof self.callbacks.onMixBusy === 'function'){ 541 | self.callbacks.onMixBusy.call(self._domNode, self._state, self); 542 | } 543 | self._execAction('_processClickBusy', 1, arguments); 544 | } 545 | }, 546 | 547 | /** 548 | * Build Toggle Array 549 | * @since 2.0.0 550 | */ 551 | 552 | _buildToggleArray: function(){ 553 | var self = this, 554 | activeFilter = self._activeFilter.replace(/\s/g, ''); 555 | 556 | self._execAction('_buildToggleArray', 0, arguments); 557 | 558 | if(self.controls.toggleLogic === 'or'){ 559 | self._toggleArray = activeFilter.split(','); 560 | } else { 561 | self._toggleArray = activeFilter.split('.'); 562 | 563 | !self._toggleArray[0] && self._toggleArray.shift(); 564 | 565 | for(var i = 0, filter; filter = self._toggleArray[i]; i++){ 566 | self._toggleArray[i] = '.'+filter; 567 | } 568 | } 569 | 570 | self._execAction('_buildToggleArray', 1, arguments); 571 | }, 572 | 573 | /** 574 | * Update Controls 575 | * @since 2.0.0 576 | * @param {object} command 577 | * @param {boolean} multi 578 | */ 579 | 580 | _updateControls: function(command, multi){ 581 | var self = this, 582 | output = { 583 | filter: command.filter, 584 | sort: command.sort 585 | }, 586 | update = function($el, filter){ 587 | try { 588 | (multi && type === 'filter' && !(output.filter === 'none' || output.filter === '')) ? 589 | $el.filter(filter).addClass(self.controls.activeClass) : 590 | $el.removeClass(self.controls.activeClass).filter(filter).addClass(self.controls.activeClass); 591 | } catch(e) {} 592 | }, 593 | type = 'filter', 594 | $el = null; 595 | 596 | self._execAction('_updateControls', 0, arguments); 597 | 598 | (command.filter === undf) && (output.filter = self._activeFilter); 599 | (command.sort === undf) && (output.sort = self._activeSort); 600 | (output.filter === self.selectors.target) && (output.filter = 'all'); 601 | 602 | for(var i = 0; i < 2; i++){ 603 | $el = self.controls.live ? $(self.selectors[type]) : self['_$'+type+'Buttons']; 604 | $el && update($el, '[data-'+type+'="'+output[type]+'"]'); 605 | type = 'sort'; 606 | } 607 | 608 | self._execAction('_updateControls', 1, arguments); 609 | }, 610 | 611 | /** 612 | * Filter (private) 613 | * @since 2.0.0 614 | */ 615 | 616 | _filter: function(){ 617 | var self = this; 618 | 619 | self._execAction('_filter', 0); 620 | 621 | for(var i = 0; i < self._$targets.length; i++){ 622 | var $target = $(self._$targets[i]); 623 | 624 | if($target.is(self._activeFilter)){ 625 | self._$show = self._$show.add($target); 626 | } else { 627 | self._$hide = self._$hide.add($target); 628 | } 629 | } 630 | 631 | self._execAction('_filter', 1); 632 | }, 633 | 634 | /** 635 | * Sort (private) 636 | * @since 2.0.0 637 | */ 638 | 639 | _sort: function(){ 640 | var self = this, 641 | arrayShuffle = function(oldArray){ 642 | var newArray = oldArray.slice(), 643 | len = newArray.length, 644 | i = len; 645 | 646 | while(i--){ 647 | var p = parseInt(Math.random()*len); 648 | var t = newArray[i]; 649 | newArray[i] = newArray[p]; 650 | newArray[p] = t; 651 | }; 652 | return newArray; 653 | }; 654 | 655 | self._execAction('_sort', 0); 656 | 657 | self._startOrder = []; 658 | 659 | for(var i = 0; i < self._$targets.length; i++){ 660 | var target = self._$targets[i]; 661 | 662 | self._startOrder.push(target); 663 | } 664 | 665 | switch(self._newSort[0].sortBy){ 666 | case 'default': 667 | self._newOrder = self._origOrder; 668 | break; 669 | case 'random': 670 | self._newOrder = arrayShuffle(self._startOrder); 671 | break; 672 | case 'custom': 673 | self._newOrder = self._newSort[0].order; 674 | break; 675 | default: 676 | self._newOrder = self._startOrder.concat().sort(function(a, b){ 677 | return self._compare(a, b); 678 | }); 679 | } 680 | 681 | self._execAction('_sort', 1); 682 | }, 683 | 684 | /** 685 | * Compare Algorithm 686 | * @since 2.0.0 687 | * @param {string|number} a 688 | * @param {string|number} b 689 | * @param {number} depth (recursion) 690 | * @return {number} 691 | */ 692 | 693 | _compare: function(a, b, depth){ 694 | depth = depth ? depth : 0; 695 | 696 | var self = this, 697 | order = self._newSort[depth].order, 698 | getData = function(el){ 699 | return el.dataset[self._newSort[depth].sortBy] || 0; 700 | }, 701 | attrA = isNaN(getData(a) * 1) ? getData(a).toLowerCase() : getData(a) * 1, 702 | attrB = isNaN(getData(b) * 1) ? getData(b).toLowerCase() : getData(b) * 1; 703 | 704 | if(attrA < attrB) 705 | return order === 'asc' ? -1 : 1; 706 | if(attrA > attrB) 707 | return order === 'asc' ? 1 : -1; 708 | if(attrA === attrB && self._newSort.length > depth+1) 709 | return self._compare(a, b, depth+1); 710 | 711 | return 0; 712 | }, 713 | 714 | /** 715 | * Print Sort 716 | * @since 2.0.0 717 | * @param {boolean} reset 718 | */ 719 | 720 | _printSort: function(reset){ 721 | var self = this, 722 | order = reset ? self._startOrder : self._newOrder, 723 | targets = self._$parent[0].querySelectorAll(self.selectors.target), 724 | nextSibling = targets.length ? targets[targets.length -1].nextElementSibling : null, 725 | frag = document.createDocumentFragment(); 726 | 727 | self._execAction('_printSort', 0, arguments); 728 | 729 | for(var i = 0; i < targets.length; i++){ 730 | var target = targets[i], 731 | whiteSpace = target.nextSibling; 732 | 733 | if(target.style.position === 'absolute') continue; 734 | 735 | if(whiteSpace && whiteSpace.nodeName === '#text'){ 736 | self._$parent[0].removeChild(whiteSpace); 737 | } 738 | 739 | self._$parent[0].removeChild(target); 740 | } 741 | 742 | for(var i = 0; i < order.length; i++){ 743 | var el = order[i]; 744 | 745 | if(self._newSort[0].sortBy === 'default' && self._newSort[0].order === 'desc' && !reset){ 746 | var firstChild = frag.firstChild; 747 | frag.insertBefore(el, firstChild); 748 | frag.insertBefore(document.createTextNode(' '), el); 749 | } else { 750 | frag.appendChild(el); 751 | frag.appendChild(document.createTextNode(' ')); 752 | } 753 | } 754 | 755 | nextSibling ? 756 | self._$parent[0].insertBefore(frag, nextSibling) : 757 | self._$parent[0].appendChild(frag); 758 | 759 | self._execAction('_printSort', 1, arguments); 760 | }, 761 | 762 | /** 763 | * Parse Sort 764 | * @since 2.0.0 765 | * @param {string} sortString 766 | * @return {array} newSort 767 | */ 768 | 769 | _parseSort: function(sortString){ 770 | var self = this, 771 | rules = typeof sortString === 'string' ? sortString.split(' ') : [sortString], 772 | newSort = []; 773 | 774 | for(var i = 0; i < rules.length; i++){ 775 | var rule = typeof sortString === 'string' ? rules[i].split(':') : ['custom', rules[i]], 776 | ruleObj = { 777 | sortBy: self._helpers._camelCase(rule[0]), 778 | order: rule[1] || 'asc' 779 | }; 780 | 781 | newSort.push(ruleObj); 782 | 783 | if(ruleObj.sortBy === 'default' || ruleObj.sortBy === 'random') break; 784 | } 785 | 786 | return self._execFilter('_parseSort', newSort, arguments); 787 | }, 788 | 789 | /** 790 | * Parse Effects 791 | * @since 2.0.0 792 | * @return {object} effects 793 | */ 794 | 795 | _parseEffects: function(){ 796 | var self = this, 797 | effects = { 798 | opacity: '', 799 | transformIn: '', 800 | transformOut: '', 801 | filter: '' 802 | }, 803 | parse = function(effect, extract, reverse){ 804 | if(self.animation.effects.indexOf(effect) > -1){ 805 | if(extract){ 806 | var propIndex = self.animation.effects.indexOf(effect+'('); 807 | if(propIndex > -1){ 808 | var str = self.animation.effects.substring(propIndex), 809 | match = /\(([^)]+)\)/.exec(str), 810 | val = match[1]; 811 | 812 | return {val: val}; 813 | } 814 | } 815 | return true; 816 | } else { 817 | return false; 818 | } 819 | }, 820 | negate = function(value, invert){ 821 | if(invert){ 822 | return value.charAt(0) === '-' ? value.substr(1, value.length) : '-'+value; 823 | } else { 824 | return value; 825 | } 826 | }, 827 | buildTransform = function(key, invert){ 828 | var transforms = [ 829 | ['scale', '.01'], 830 | ['translateX', '20px'], 831 | ['translateY', '20px'], 832 | ['translateZ', '20px'], 833 | ['rotateX', '90deg'], 834 | ['rotateY', '90deg'], 835 | ['rotateZ', '180deg'], 836 | ]; 837 | 838 | for(var i = 0; i < transforms.length; i++){ 839 | var prop = transforms[i][0], 840 | def = transforms[i][1], 841 | inverted = invert && prop !== 'scale'; 842 | 843 | effects[key] += parse(prop) ? prop+'('+negate(parse(prop, true).val || def, inverted)+') ' : ''; 844 | } 845 | }; 846 | 847 | effects.opacity = parse('fade') ? parse('fade',true).val || '0' : '1'; 848 | 849 | buildTransform('transformIn'); 850 | 851 | self.animation.reverseOut ? buildTransform('transformOut', true) : (effects.transformOut = effects.transformIn); 852 | 853 | effects.transition = {}; 854 | 855 | effects.transition = self._getPrefixedCSS('transition','all '+self.animation.duration+'ms '+self.animation.easing+', opacity '+self.animation.duration+'ms linear'); 856 | 857 | self.animation.stagger = parse('stagger') ? true : false; 858 | self.animation.staggerDuration = parseInt(parse('stagger') ? (parse('stagger',true).val ? parse('stagger',true).val : 100) : 100); 859 | 860 | return self._execFilter('_parseEffects', effects); 861 | }, 862 | 863 | /** 864 | * Build State 865 | * @since 2.0.0 866 | * @param {boolean} future 867 | * @return {object} futureState 868 | */ 869 | 870 | _buildState: function(future){ 871 | var self = this, 872 | state = {}; 873 | 874 | self._execAction('_buildState', 0); 875 | 876 | state = { 877 | activeFilter: self._activeFilter === '' ? 'none' : self._activeFilter, 878 | activeSort: future && self._newSortString ? self._newSortString : self._activeSort, 879 | fail: !self._$show.length && self._activeFilter !== '', 880 | $targets: self._$targets, 881 | $show: self._$show, 882 | $hide: self._$hide, 883 | totalTargets: self._$targets.length, 884 | totalShow: self._$show.length, 885 | totalHide: self._$hide.length, 886 | display: future && self._newDisplay ? self._newDisplay : self.layout.display 887 | }; 888 | 889 | if(future){ 890 | return self._execFilter('_buildState', state); 891 | } else { 892 | self._state = state; 893 | 894 | self._execAction('_buildState', 1); 895 | } 896 | }, 897 | 898 | /** 899 | * Go Mix 900 | * @since 2.0.0 901 | * @param {boolean} animate 902 | */ 903 | 904 | _goMix: function(animate){ 905 | var self = this, 906 | phase1 = function(){ 907 | if(self._chrome && (self._chrome === 31)){ 908 | chromeFix(self._$parent[0]); 909 | } 910 | 911 | self._setInter(); 912 | 913 | phase2(); 914 | }, 915 | phase2 = function(){ 916 | var scrollTop = window.pageYOffset, 917 | scrollLeft = window.pageXOffset, 918 | docHeight = document.documentElement.scrollHeight; 919 | 920 | self._getInterMixData(); 921 | 922 | self._setFinal(); 923 | 924 | self._getFinalMixData(); 925 | 926 | (window.pageYOffset !== scrollTop) && window.scrollTo(scrollLeft, scrollTop); 927 | 928 | self._prepTargets(); 929 | 930 | if(window.requestAnimationFrame){ 931 | requestAnimationFrame(phase3); 932 | } else { 933 | setTimeout(function(){ 934 | phase3(); 935 | },20); 936 | } 937 | }, 938 | phase3 = function(){ 939 | self._animateTargets(); 940 | 941 | if(self._targetsBound === 0){ 942 | self._cleanUp(); 943 | } 944 | }, 945 | chromeFix = function(grid){ 946 | var parent = grid.parentElement, 947 | placeholder = document.createElement('div'), 948 | frag = document.createDocumentFragment(); 949 | 950 | parent.insertBefore(placeholder, grid); 951 | frag.appendChild(grid); 952 | parent.replaceChild(grid, placeholder); 953 | }, 954 | futureState = self._buildState(true); 955 | 956 | self._execAction('_goMix', 0, arguments); 957 | 958 | !self.animation.duration && (animate = false); 959 | 960 | self._mixing = true; 961 | 962 | self._$container.removeClass(self.layout.containerClassFail); 963 | 964 | if(typeof self.callbacks.onMixStart === 'function'){ 965 | self.callbacks.onMixStart.call(self._domNode, self._state, futureState, self); 966 | } 967 | 968 | self._$container.trigger('mixStart', [self._state, futureState, self]); 969 | 970 | self._getOrigMixData(); 971 | 972 | if(animate && !self._suckMode){ 973 | 974 | window.requestAnimationFrame ? 975 | requestAnimationFrame(phase1) : 976 | phase1(); 977 | 978 | } else { 979 | self._cleanUp(); 980 | } 981 | 982 | self._execAction('_goMix', 1, arguments); 983 | }, 984 | 985 | /** 986 | * Get Target Data 987 | * @since 2.0.0 988 | */ 989 | 990 | _getTargetData: function(el, stage){ 991 | var self = this, 992 | elStyle; 993 | 994 | el.dataset[stage+'PosX'] = el.offsetLeft; 995 | el.dataset[stage+'PosY'] = el.offsetTop; 996 | 997 | if(self.animation.animateResizeTargets){ 998 | elStyle = !self._suckMode ? 999 | window.getComputedStyle(el) : 1000 | { 1001 | marginBottom: '', 1002 | marginRight: '' 1003 | }; 1004 | 1005 | el.dataset[stage+'MarginBottom'] = parseInt(elStyle.marginBottom); 1006 | el.dataset[stage+'MarginRight'] = parseInt(elStyle.marginRight); 1007 | el.dataset[stage+'Width'] = el.offsetWidth; 1008 | el.dataset[stage+'Height'] = el.offsetHeight; 1009 | } 1010 | }, 1011 | 1012 | /** 1013 | * Get Original Mix Data 1014 | * @since 2.0.0 1015 | */ 1016 | 1017 | _getOrigMixData: function(){ 1018 | var self = this, 1019 | parentStyle = !self._suckMode ? window.getComputedStyle(self._$parent[0]) : {boxSizing: ''}, 1020 | parentBS = parentStyle.boxSizing || parentStyle[self._vendor+'BoxSizing']; 1021 | 1022 | self._incPadding = (parentBS === 'border-box'); 1023 | 1024 | self._execAction('_getOrigMixData', 0); 1025 | 1026 | !self._suckMode && (self.effects = self._parseEffects()); 1027 | 1028 | self._$toHide = self._$hide.filter(':visible'); 1029 | self._$toShow = self._$show.filter(':hidden'); 1030 | self._$pre = self._$targets.filter(':visible'); 1031 | 1032 | self._startHeight = self._incPadding ? 1033 | self._$parent.outerHeight() : 1034 | self._$parent.height(); 1035 | 1036 | for(var i = 0; i < self._$pre.length; i++){ 1037 | var el = self._$pre[i]; 1038 | 1039 | self._getTargetData(el, 'orig'); 1040 | } 1041 | 1042 | self._execAction('_getOrigMixData', 1); 1043 | }, 1044 | 1045 | /** 1046 | * Set Intermediate Positions 1047 | * @since 2.0.0 1048 | */ 1049 | 1050 | _setInter: function(){ 1051 | var self = this; 1052 | 1053 | self._execAction('_setInter', 0); 1054 | 1055 | if(self._changingLayout && self.animation.animateChangeLayout){ 1056 | self._$toShow.css('display',self._newDisplay); 1057 | 1058 | if(self._changingClass){ 1059 | self._$container 1060 | .removeClass(self.layout.containerClass) 1061 | .addClass(self._newClass); 1062 | } 1063 | } else { 1064 | self._$toShow.css('display', self.layout.display); 1065 | } 1066 | 1067 | self._execAction('_setInter', 1); 1068 | }, 1069 | 1070 | /** 1071 | * Get Intermediate Mix Data 1072 | * @since 2.0.0 1073 | */ 1074 | 1075 | _getInterMixData: function(){ 1076 | var self = this; 1077 | 1078 | self._execAction('_getInterMixData', 0); 1079 | 1080 | for(var i = 0; i < self._$toShow.length; i++){ 1081 | var el = self._$toShow[i]; 1082 | 1083 | self._getTargetData(el, 'inter'); 1084 | } 1085 | 1086 | for(var i = 0; i < self._$pre.length; i++){ 1087 | var el = self._$pre[i]; 1088 | 1089 | self._getTargetData(el, 'inter'); 1090 | } 1091 | 1092 | self._execAction('_getInterMixData', 1); 1093 | }, 1094 | 1095 | /** 1096 | * Set Final Positions 1097 | * @since 2.0.0 1098 | */ 1099 | 1100 | _setFinal: function(){ 1101 | var self = this; 1102 | 1103 | self._execAction('_setFinal', 0); 1104 | 1105 | self._sorting && self._printSort(); 1106 | 1107 | self._$toHide.removeStyle('display'); 1108 | 1109 | if(self._changingLayout && self.animation.animateChangeLayout){ 1110 | self._$pre.css('display',self._newDisplay); 1111 | } 1112 | 1113 | self._execAction('_setFinal', 1); 1114 | }, 1115 | 1116 | /** 1117 | * Get Final Mix Data 1118 | * @since 2.0.0 1119 | */ 1120 | 1121 | _getFinalMixData: function(){ 1122 | var self = this; 1123 | 1124 | self._execAction('_getFinalMixData', 0); 1125 | 1126 | for(var i = 0; i < self._$toShow.length; i++){ 1127 | var el = self._$toShow[i]; 1128 | 1129 | self._getTargetData(el, 'final'); 1130 | } 1131 | 1132 | for(var i = 0; i < self._$pre.length; i++){ 1133 | var el = self._$pre[i]; 1134 | 1135 | self._getTargetData(el, 'final'); 1136 | } 1137 | 1138 | self._newHeight = self._incPadding ? 1139 | self._$parent.outerHeight() : 1140 | self._$parent.height(); 1141 | 1142 | self._sorting && self._printSort(true); 1143 | 1144 | self._$toShow.removeStyle('display'); 1145 | 1146 | self._$pre.css('display',self.layout.display); 1147 | 1148 | if(self._changingClass && self.animation.animateChangeLayout){ 1149 | self._$container 1150 | .removeClass(self._newClass) 1151 | .addClass(self.layout.containerClass); 1152 | } 1153 | 1154 | self._execAction('_getFinalMixData', 1); 1155 | }, 1156 | 1157 | /** 1158 | * Prepare Targets 1159 | * @since 2.0.0 1160 | */ 1161 | 1162 | _prepTargets: function(){ 1163 | var self = this, 1164 | transformCSS = { 1165 | _in: self._getPrefixedCSS('transform', self.effects.transformIn), 1166 | _out: self._getPrefixedCSS('transform', self.effects.transformOut) 1167 | }; 1168 | 1169 | self._execAction('_prepTargets', 0); 1170 | 1171 | if(self.animation.animateResizeContainer){ 1172 | self._$parent.css('height',self._startHeight+'px'); 1173 | } 1174 | 1175 | for(var i = 0; i < self._$toShow.length; i++){ 1176 | var el = self._$toShow[i], 1177 | $el = $(el); 1178 | 1179 | el.style.opacity = self.effects.opacity; 1180 | el.style.display = (self._changingLayout && self.animation.animateChangeLayout) ? 1181 | self._newDisplay : 1182 | self.layout.display; 1183 | 1184 | $el.css(transformCSS._in); 1185 | 1186 | if(self.animation.animateResizeTargets){ 1187 | el.style.width = el.dataset.finalWidth+'px'; 1188 | el.style.height = el.dataset.finalHeight+'px'; 1189 | el.style.marginRight = -(el.dataset.finalWidth - el.dataset.interWidth) + (el.dataset.finalMarginRight * 1)+'px'; 1190 | el.style.marginBottom = -(el.dataset.finalHeight - el.dataset.interHeight) + (el.dataset.finalMarginBottom * 1)+'px'; 1191 | } 1192 | } 1193 | 1194 | for(var i = 0; i < self._$pre.length; i++){ 1195 | var el = self._$pre[i], 1196 | $el = $(el), 1197 | translate = { 1198 | x: el.dataset.origPosX - el.dataset.interPosX, 1199 | y: el.dataset.origPosY - el.dataset.interPosY 1200 | }, 1201 | transformCSS = self._getPrefixedCSS('transform','translate('+translate.x+'px,'+translate.y+'px)'); 1202 | 1203 | $el.css(transformCSS); 1204 | 1205 | if(self.animation.animateResizeTargets){ 1206 | el.style.width = el.dataset.origWidth+'px'; 1207 | el.style.height = el.dataset.origHeight+'px'; 1208 | 1209 | if(el.dataset.origWidth - el.dataset.finalWidth){ 1210 | el.style.marginRight = -(el.dataset.origWidth - el.dataset.interWidth) + (el.dataset.origMarginRight * 1)+'px'; 1211 | } 1212 | 1213 | if(el.dataset.origHeight - el.dataset.finalHeight){ 1214 | el.style.marginBottom = -(el.dataset.origHeight - el.dataset.interHeight) + (el.dataset.origMarginBottom * 1) +'px'; 1215 | } 1216 | } 1217 | } 1218 | 1219 | self._execAction('_prepTargets', 1); 1220 | }, 1221 | 1222 | /** 1223 | * Animate Targets 1224 | * @since 2.0.0 1225 | */ 1226 | 1227 | _animateTargets: function(){ 1228 | var self = this; 1229 | 1230 | self._execAction('_animateTargets', 0); 1231 | 1232 | self._targetsDone = 0; 1233 | self._targetsBound = 0; 1234 | 1235 | self._$parent 1236 | .css(self._getPrefixedCSS('perspective', self.animation.perspectiveDistance+'px')) 1237 | .css(self._getPrefixedCSS('perspective-origin', self.animation.perspectiveOrigin)); 1238 | 1239 | if(self.animation.animateResizeContainer){ 1240 | self._$parent 1241 | .css(self._getPrefixedCSS('transition','height '+self.animation.duration+'ms ease')) 1242 | .css('height',self._newHeight+'px'); 1243 | } 1244 | 1245 | for(var i = 0; i < self._$toShow.length; i++){ 1246 | var el = self._$toShow[i], 1247 | $el = $(el), 1248 | translate = { 1249 | x: el.dataset.finalPosX - el.dataset.interPosX, 1250 | y: el.dataset.finalPosY - el.dataset.interPosY 1251 | }, 1252 | delay = self._getDelay(i), 1253 | toShowCSS = {}; 1254 | 1255 | el.style.opacity = ''; 1256 | 1257 | for(var j = 0; j < 2; j++){ 1258 | var a = j === 0 ? a = self._prefix : ''; 1259 | 1260 | if(self._ff && self._ff <= 20){ 1261 | toShowCSS[a+'transition-property'] = 'all'; 1262 | toShowCSS[a+'transition-timing-function'] = self.animation.easing+'ms'; 1263 | toShowCSS[a+'transition-duration'] = self.animation.duration+'ms'; 1264 | } 1265 | 1266 | toShowCSS[a+'transition-delay'] = delay+'ms'; 1267 | toShowCSS[a+'transform'] = 'translate('+translate.x+'px,'+translate.y+'px)'; 1268 | } 1269 | 1270 | if(self.effects.transform || self.effects.opacity){ 1271 | self._bindTargetDone($el); 1272 | } 1273 | 1274 | (self._ff && self._ff <= 20) ? 1275 | $el.css(toShowCSS) : 1276 | $el.css(self.effects.transition).css(toShowCSS); 1277 | } 1278 | 1279 | for(var i = 0; i < self._$pre.length; i++){ 1280 | var el = self._$pre[i], 1281 | $el = $(el), 1282 | translate = { 1283 | x: el.dataset.finalPosX - el.dataset.interPosX, 1284 | y: el.dataset.finalPosY - el.dataset.interPosY 1285 | }, 1286 | delay = self._getDelay(i); 1287 | 1288 | if(!( 1289 | el.dataset.finalPosX === el.dataset.origPosX && 1290 | el.dataset.finalPosY === el.dataset.origPosY 1291 | )){ 1292 | self._bindTargetDone($el); 1293 | } 1294 | 1295 | $el.css(self._getPrefixedCSS('transition', 'all '+self.animation.duration+'ms '+self.animation.easing+' '+delay+'ms')); 1296 | $el.css(self._getPrefixedCSS('transform', 'translate('+translate.x+'px,'+translate.y+'px)')); 1297 | 1298 | if(self.animation.animateResizeTargets){ 1299 | if(el.dataset.origWidth - el.dataset.finalWidth && el.dataset.finalWidth * 1){ 1300 | el.style.width = el.dataset.finalWidth+'px'; 1301 | el.style.marginRight = -(el.dataset.finalWidth - el.dataset.interWidth)+(el.dataset.finalMarginRight * 1)+'px'; 1302 | } 1303 | 1304 | if(el.dataset.origHeight - el.dataset.finalHeight && el.dataset.finalHeight * 1){ 1305 | el.style.height = el.dataset.finalHeight+'px'; 1306 | el.style.marginBottom = -(el.dataset.finalHeight - el.dataset.interHeight)+(el.dataset.finalMarginBottom * 1) +'px'; 1307 | } 1308 | } 1309 | } 1310 | 1311 | if(self._changingClass){ 1312 | self._$container 1313 | .removeClass(self.layout.containerClass) 1314 | .addClass(self._newClass); 1315 | } 1316 | 1317 | for(var i = 0; i < self._$toHide.length; i++){ 1318 | var el = self._$toHide[i], 1319 | $el = $(el), 1320 | delay = self._getDelay(i), 1321 | toHideCSS = {}; 1322 | 1323 | for(var j = 0; j<2; j++){ 1324 | var a = j === 0 ? a = self._prefix : ''; 1325 | 1326 | toHideCSS[a+'transition-delay'] = delay+'ms'; 1327 | toHideCSS[a+'transform'] = self.effects.transformOut; 1328 | toHideCSS.opacity = self.effects.opacity; 1329 | } 1330 | 1331 | $el.css(self.effects.transition).css(toHideCSS); 1332 | 1333 | if(self.effects.transform || self.effects.opacity){ 1334 | self._bindTargetDone($el); 1335 | }; 1336 | } 1337 | 1338 | self._execAction('_animateTargets', 1); 1339 | 1340 | }, 1341 | 1342 | /** 1343 | * Bind Targets TransitionEnd 1344 | * @since 2.0.0 1345 | * @param {object} $el 1346 | */ 1347 | 1348 | _bindTargetDone: function($el){ 1349 | var self = this, 1350 | el = $el[0]; 1351 | 1352 | self._execAction('_bindTargetDone', 0, arguments); 1353 | 1354 | if(!el.dataset.bound){ 1355 | 1356 | el.dataset.bound = true; 1357 | self._targetsBound++; 1358 | 1359 | $el.on('webkitTransitionEnd.mixItUp transitionend.mixItUp',function(e){ 1360 | if( 1361 | (e.originalEvent.propertyName.indexOf('transform') > -1 || 1362 | e.originalEvent.propertyName.indexOf('opacity') > -1) && 1363 | $(e.originalEvent.target).is(self.selectors.target) 1364 | ){ 1365 | $el.off('.mixItUp'); 1366 | delete el.dataset.bound; 1367 | self._targetDone(); 1368 | } 1369 | }); 1370 | } 1371 | 1372 | self._execAction('_bindTargetDone', 1, arguments); 1373 | }, 1374 | 1375 | /** 1376 | * Target Done 1377 | * @since 2.0.0 1378 | */ 1379 | 1380 | _targetDone: function(){ 1381 | var self = this; 1382 | 1383 | self._execAction('_targetDone', 0); 1384 | 1385 | self._targetsDone++; 1386 | 1387 | (self._targetsDone === self._targetsBound) && self._cleanUp(); 1388 | 1389 | self._execAction('_targetDone', 1); 1390 | }, 1391 | 1392 | /** 1393 | * Clean Up 1394 | * @since 2.0.0 1395 | */ 1396 | 1397 | _cleanUp: function(){ 1398 | var self = this, 1399 | targetStyles = self.animation.animateResizeTargets ? 1400 | 'transform opacity width height margin-bottom margin-right' : 1401 | 'transform opacity', 1402 | unBrake = function(){ 1403 | self._$targets.removeStyle('transition', self._prefix); 1404 | }; 1405 | 1406 | self._execAction('_cleanUp', 0); 1407 | 1408 | !self._changingLayout ? 1409 | self._$show.css('display',self.layout.display) : 1410 | self._$show.css('display',self._newDisplay); 1411 | 1412 | self._$targets.css(self._brake); 1413 | 1414 | self._$targets 1415 | .removeStyle(targetStyles, self._prefix) 1416 | .removeAttr('data-inter-pos-x data-inter-pos-y data-final-pos-x data-final-pos-y data-orig-pos-x data-orig-pos-y data-orig-height data-orig-width data-final-height data-final-width data-inter-width data-inter-height data-orig-margin-right data-orig-margin-bottom data-inter-margin-right data-inter-margin-bottom data-final-margin-right data-final-margin-bottom'); 1417 | 1418 | self._$hide.removeStyle('display'); 1419 | 1420 | self._$parent.removeStyle('height transition perspective-distance perspective perspective-origin-x perspective-origin-y perspective-origin perspectiveOrigin', self._prefix); 1421 | 1422 | if(self._sorting){ 1423 | self._printSort(); 1424 | self._activeSort = self._newSortString; 1425 | self._sorting = false; 1426 | } 1427 | 1428 | if(self._changingLayout){ 1429 | if(self._changingDisplay){ 1430 | self.layout.display = self._newDisplay; 1431 | self._changingDisplay = false; 1432 | } 1433 | 1434 | if(self._changingClass){ 1435 | self._$parent.removeClass(self.layout.containerClass).addClass(self._newClass); 1436 | self.layout.containerClass = self._newClass; 1437 | self._changingClass = false; 1438 | } 1439 | 1440 | self._changingLayout = false; 1441 | } 1442 | 1443 | self._refresh(); 1444 | 1445 | self._buildState(); 1446 | 1447 | if(self._state.fail){ 1448 | self._$container.addClass(self.layout.containerClassFail); 1449 | } 1450 | 1451 | self._$show = $(); 1452 | self._$hide = $(); 1453 | 1454 | if(window.requestAnimationFrame){ 1455 | requestAnimationFrame(unBrake); 1456 | } 1457 | 1458 | self._mixing = false; 1459 | 1460 | if(typeof self.callbacks._user === 'function'){ 1461 | self.callbacks._user.call(self._domNode, self._state, self); 1462 | } 1463 | 1464 | if(typeof self.callbacks.onMixEnd === 'function'){ 1465 | self.callbacks.onMixEnd.call(self._domNode, self._state, self); 1466 | } 1467 | 1468 | self._$container.trigger('mixEnd', [self._state, self]); 1469 | 1470 | if(self._state.fail){ 1471 | (typeof self.callbacks.onMixFail === 'function') && self.callbacks.onMixFail.call(self._domNode, self._state, self); 1472 | self._$container.trigger('mixFail', [self._state, self]); 1473 | } 1474 | 1475 | if(self._loading){ 1476 | (typeof self.callbacks.onMixLoad === 'function') && self.callbacks.onMixLoad.call(self._domNode, self._state, self); 1477 | self._$container.trigger('mixLoad', [self._state, self]); 1478 | } 1479 | 1480 | if(self._queue.length){ 1481 | self._execAction('_queue', 0); 1482 | 1483 | self.multiMix(self._queue[0][0],self._queue[0][1],self._queue[0][2]); 1484 | self._queue.splice(0, 1); 1485 | } 1486 | 1487 | self._execAction('_cleanUp', 1); 1488 | 1489 | self._loading = false; 1490 | }, 1491 | 1492 | /** 1493 | * Get Prefixed CSS 1494 | * @since 2.0.0 1495 | * @param {string} property 1496 | * @param {string} value 1497 | * @param {boolean} prefixValue 1498 | * @return {object} styles 1499 | */ 1500 | 1501 | _getPrefixedCSS: function(property, value, prefixValue){ 1502 | var self = this, 1503 | styles = {}, 1504 | prefix = '', 1505 | i = -1; 1506 | 1507 | for(i = 0; i < 2; i++){ 1508 | prefix = i === 0 ? self._prefix : ''; 1509 | prefixValue ? styles[prefix+property] = prefix+value : styles[prefix+property] = value; 1510 | } 1511 | 1512 | return self._execFilter('_getPrefixedCSS', styles, arguments); 1513 | }, 1514 | 1515 | /** 1516 | * Get Delay 1517 | * @since 2.0.0 1518 | * @param {number} i 1519 | * @return {number} delay 1520 | */ 1521 | 1522 | _getDelay: function(i){ 1523 | var self = this, 1524 | n = typeof self.animation.staggerSequence === 'function' ? self.animation.staggerSequence.call(self._domNode, i, self._state) : i, 1525 | delay = self.animation.stagger ? n * self.animation.staggerDuration : 0; 1526 | 1527 | return self._execFilter('_getDelay', delay, arguments); 1528 | }, 1529 | 1530 | /** 1531 | * Parse MultiMix Arguments 1532 | * @since 2.0.0 1533 | * @param {array} args 1534 | * @return {object} output 1535 | */ 1536 | 1537 | _parseMultiMixArgs: function(args){ 1538 | var self = this, 1539 | output = { 1540 | command: null, 1541 | animate: self.animation.enable, 1542 | callback: null 1543 | }; 1544 | 1545 | for(var i = 0; i < args.length; i++){ 1546 | var arg = args[i]; 1547 | 1548 | if(arg !== null){ 1549 | if(typeof arg === 'object' || typeof arg === 'string'){ 1550 | output.command = arg; 1551 | } else if(typeof arg === 'boolean'){ 1552 | output.animate = arg; 1553 | } else if(typeof arg === 'function'){ 1554 | output.callback = arg; 1555 | } 1556 | } 1557 | } 1558 | 1559 | return self._execFilter('_parseMultiMixArgs', output, arguments); 1560 | }, 1561 | 1562 | /** 1563 | * Parse Insert Arguments 1564 | * @since 2.0.0 1565 | * @param {array} args 1566 | * @return {object} output 1567 | */ 1568 | 1569 | _parseInsertArgs: function(args){ 1570 | var self = this, 1571 | output = { 1572 | index: 0, 1573 | $object: $(), 1574 | multiMix: {filter: self._state.activeFilter}, 1575 | callback: null 1576 | }; 1577 | 1578 | for(var i = 0; i < args.length; i++){ 1579 | var arg = args[i]; 1580 | 1581 | if(typeof arg === 'number'){ 1582 | output.index = arg; 1583 | } else if(typeof arg === 'object' && arg instanceof $){ 1584 | output.$object = arg; 1585 | } else if(typeof arg === 'object' && self._helpers._isElement(arg)){ 1586 | output.$object = $(arg); 1587 | } else if(typeof arg === 'object' && arg !== null){ 1588 | output.multiMix = arg; 1589 | } else if(typeof arg === 'boolean' && !arg){ 1590 | output.multiMix = false; 1591 | } else if(typeof arg === 'function'){ 1592 | output.callback = arg; 1593 | } 1594 | } 1595 | 1596 | return self._execFilter('_parseInsertArgs', output, arguments); 1597 | }, 1598 | 1599 | /** 1600 | * Execute Action 1601 | * @since 2.0.0 1602 | * @param {string} methodName 1603 | * @param {boolean} isPost 1604 | * @param {array} args 1605 | */ 1606 | 1607 | _execAction: function(methodName, isPost, args){ 1608 | var self = this, 1609 | context = isPost ? 'post' : 'pre'; 1610 | 1611 | if(!self._actions.isEmptyObject && self._actions.hasOwnProperty(methodName)){ 1612 | for(var key in self._actions[methodName][context]){ 1613 | self._actions[methodName][context][key].call(self, args); 1614 | } 1615 | } 1616 | }, 1617 | 1618 | /** 1619 | * Execute Filter 1620 | * @since 2.0.0 1621 | * @param {string} methodName 1622 | * @param {mixed} value 1623 | * @return {mixed} value 1624 | */ 1625 | 1626 | _execFilter: function(methodName, value, args){ 1627 | var self = this; 1628 | 1629 | if(!self._filters.isEmptyObject && self._filters.hasOwnProperty(methodName)){ 1630 | for(var key in self._filters[methodName]){ 1631 | return self._filters[methodName][key].call(self, args); 1632 | } 1633 | } else { 1634 | return value; 1635 | } 1636 | }, 1637 | 1638 | /* Helpers 1639 | ---------------------------------------------------------------------- */ 1640 | 1641 | _helpers: { 1642 | 1643 | /** 1644 | * CamelCase 1645 | * @since 2.0.0 1646 | * @param {string} 1647 | * @return {string} 1648 | */ 1649 | 1650 | _camelCase: function(string){ 1651 | return string.replace(/-([a-z])/g, function(g){ 1652 | return g[1].toUpperCase(); 1653 | }); 1654 | }, 1655 | 1656 | /** 1657 | * Is Element 1658 | * @since 2.1.3 1659 | * @param {object} element to test 1660 | * @return {boolean} 1661 | */ 1662 | 1663 | _isElement: function(el){ 1664 | if(window.HTMLElement){ 1665 | return el instanceof HTMLElement; 1666 | } else { 1667 | return ( 1668 | el !== null && 1669 | el.nodeType === 1 && 1670 | el.nodeName === 'string' 1671 | ); 1672 | } 1673 | } 1674 | }, 1675 | 1676 | /* Public Methods 1677 | ---------------------------------------------------------------------- */ 1678 | 1679 | /** 1680 | * Is Mixing 1681 | * @since 2.0.0 1682 | * @return {boolean} 1683 | */ 1684 | 1685 | isMixing: function(){ 1686 | var self = this; 1687 | 1688 | return self._execFilter('isMixing', self._mixing); 1689 | }, 1690 | 1691 | /** 1692 | * Filter (public) 1693 | * @since 2.0.0 1694 | * @param {array} arguments 1695 | */ 1696 | 1697 | filter: function(){ 1698 | var self = this, 1699 | args = self._parseMultiMixArgs(arguments); 1700 | 1701 | self._clicking && (self._toggleString = ''); 1702 | 1703 | self.multiMix({filter: args.command}, args.animate, args.callback); 1704 | }, 1705 | 1706 | /** 1707 | * Sort (public) 1708 | * @since 2.0.0 1709 | * @param {array} arguments 1710 | */ 1711 | 1712 | sort: function(){ 1713 | var self = this, 1714 | args = self._parseMultiMixArgs(arguments); 1715 | 1716 | self.multiMix({sort: args.command}, args.animate, args.callback); 1717 | }, 1718 | 1719 | /** 1720 | * Change Layout (public) 1721 | * @since 2.0.0 1722 | * @param {array} arguments 1723 | */ 1724 | 1725 | changeLayout: function(){ 1726 | var self = this, 1727 | args = self._parseMultiMixArgs(arguments); 1728 | 1729 | self.multiMix({changeLayout: args.command}, args.animate, args.callback); 1730 | }, 1731 | 1732 | /** 1733 | * MultiMix 1734 | * @since 2.0.0 1735 | * @param {array} arguments 1736 | */ 1737 | 1738 | multiMix: function(){ 1739 | var self = this, 1740 | args = self._parseMultiMixArgs(arguments); 1741 | 1742 | self._execAction('multiMix', 0, arguments); 1743 | 1744 | if(!self._mixing){ 1745 | if(self.controls.enable && !self._clicking){ 1746 | self.controls.toggleFilterButtons && self._buildToggleArray(); 1747 | self._updateControls(args.command, self.controls.toggleFilterButtons); 1748 | } 1749 | 1750 | (self._queue.length < 2) && (self._clicking = false); 1751 | 1752 | delete self.callbacks._user; 1753 | if(args.callback) self.callbacks._user = args.callback; 1754 | 1755 | var sort = args.command.sort, 1756 | filter = args.command.filter, 1757 | changeLayout = args.command.changeLayout; 1758 | 1759 | self._refresh(); 1760 | 1761 | if(sort){ 1762 | self._newSort = self._parseSort(sort); 1763 | self._newSortString = sort; 1764 | 1765 | self._sorting = true; 1766 | self._sort(); 1767 | } 1768 | 1769 | if(filter !== undf){ 1770 | filter = (filter === 'all') ? self.selectors.target : filter; 1771 | 1772 | self._activeFilter = filter; 1773 | } 1774 | 1775 | self._filter(); 1776 | 1777 | if(changeLayout){ 1778 | self._newDisplay = (typeof changeLayout === 'string') ? changeLayout : changeLayout.display || self.layout.display; 1779 | self._newClass = changeLayout.containerClass || ''; 1780 | 1781 | if( 1782 | self._newDisplay !== self.layout.display || 1783 | self._newClass !== self.layout.containerClass 1784 | ){ 1785 | self._changingLayout = true; 1786 | 1787 | self._changingClass = (self._newClass !== self.layout.containerClass); 1788 | self._changingDisplay = (self._newDisplay !== self.layout.display); 1789 | } 1790 | } 1791 | 1792 | self._$targets.css(self._brake); 1793 | 1794 | self._goMix(args.animate ^ self.animation.enable ? args.animate : self.animation.enable); 1795 | 1796 | self._execAction('multiMix', 1, arguments); 1797 | 1798 | } else { 1799 | if(self.animation.queue && self._queue.length < self.animation.queueLimit){ 1800 | self._queue.push(arguments); 1801 | 1802 | (self.controls.enable && !self._clicking) && self._updateControls(args.command); 1803 | 1804 | self._execAction('multiMixQueue', 1, arguments); 1805 | 1806 | } else { 1807 | if(typeof self.callbacks.onMixBusy === 'function'){ 1808 | self.callbacks.onMixBusy.call(self._domNode, self._state, self); 1809 | } 1810 | self._$container.trigger('mixBusy', [self._state, self]); 1811 | 1812 | self._execAction('multiMixBusy', 1, arguments); 1813 | } 1814 | } 1815 | }, 1816 | 1817 | /** 1818 | * Insert 1819 | * @since 2.0.0 1820 | * @param {array} arguments 1821 | */ 1822 | 1823 | insert: function(){ 1824 | var self = this, 1825 | args = self._parseInsertArgs(arguments), 1826 | callback = (typeof args.callback === 'function') ? args.callback : null, 1827 | frag = document.createDocumentFragment(), 1828 | target = (function(){ 1829 | self._refresh(); 1830 | 1831 | if(self._$targets.length){ 1832 | return (args.index < self._$targets.length || !self._$targets.length) ? 1833 | self._$targets[args.index] : 1834 | self._$targets[self._$targets.length-1].nextElementSibling; 1835 | } else { 1836 | return self._$parent[0].children[0]; 1837 | } 1838 | })(); 1839 | 1840 | self._execAction('insert', 0, arguments); 1841 | 1842 | if(args.$object){ 1843 | for(var i = 0; i < args.$object.length; i++){ 1844 | var el = args.$object[i]; 1845 | 1846 | frag.appendChild(el); 1847 | frag.appendChild(document.createTextNode(' ')); 1848 | } 1849 | 1850 | self._$parent[0].insertBefore(frag, target); 1851 | } 1852 | 1853 | self._execAction('insert', 1, arguments); 1854 | 1855 | if(typeof args.multiMix === 'object'){ 1856 | self.multiMix(args.multiMix, callback); 1857 | } 1858 | }, 1859 | 1860 | /** 1861 | * Prepend 1862 | * @since 2.0.0 1863 | * @param {array} arguments 1864 | */ 1865 | 1866 | prepend: function(){ 1867 | var self = this, 1868 | args = self._parseInsertArgs(arguments); 1869 | 1870 | self.insert(0, args.$object, args.multiMix, args.callback); 1871 | }, 1872 | 1873 | /** 1874 | * Append 1875 | * @since 2.0.0 1876 | * @param {array} arguments 1877 | */ 1878 | 1879 | append: function(){ 1880 | var self = this, 1881 | args = self._parseInsertArgs(arguments); 1882 | 1883 | self.insert(self._state.totalTargets, args.$object, args.multiMix, args.callback); 1884 | }, 1885 | 1886 | /** 1887 | * Get Option 1888 | * @since 2.0.0 1889 | * @param {string} string 1890 | * @return {mixed} value 1891 | */ 1892 | 1893 | getOption: function(string){ 1894 | var self = this, 1895 | getProperty = function(obj, prop){ 1896 | var parts = prop.split('.'), 1897 | last = parts.pop(), 1898 | l = parts.length, 1899 | i = 1, 1900 | current = parts[0] || prop; 1901 | 1902 | while((obj = obj[current]) && i < l){ 1903 | current = parts[i]; 1904 | i++; 1905 | } 1906 | 1907 | if(obj !== undf){ 1908 | return obj[last] !== undf ? obj[last] : obj; 1909 | } 1910 | }; 1911 | 1912 | return string ? self._execFilter('getOption', getProperty(self, string), arguments) : self; 1913 | }, 1914 | 1915 | /** 1916 | * Set Options 1917 | * @since 2.0.0 1918 | * @param {object} config 1919 | */ 1920 | 1921 | setOptions: function(config){ 1922 | var self = this; 1923 | 1924 | self._execAction('setOptions', 0, arguments); 1925 | 1926 | typeof config === 'object' && $.extend(true, self, config); 1927 | 1928 | self._execAction('setOptions', 1, arguments); 1929 | }, 1930 | 1931 | /** 1932 | * Get State 1933 | * @since 2.0.0 1934 | * @return {object} state 1935 | */ 1936 | 1937 | getState: function(){ 1938 | var self = this; 1939 | 1940 | return self._execFilter('getState', self._state, self); 1941 | }, 1942 | 1943 | /** 1944 | * Force Refresh 1945 | * @since 2.1.2 1946 | */ 1947 | 1948 | forceRefresh: function(){ 1949 | var self = this; 1950 | 1951 | self._refresh(false, true); 1952 | }, 1953 | 1954 | /** 1955 | * Destroy 1956 | * @since 2.0.0 1957 | * @param {boolean} hideAll 1958 | */ 1959 | 1960 | destroy: function(hideAll){ 1961 | var self = this, 1962 | filters = $.MixItUp.prototype._bound._filter, 1963 | sorts = $.MixItUp.prototype._bound._sort; 1964 | 1965 | self._execAction('destroy', 0, arguments); 1966 | 1967 | self._$body 1968 | .add($(self.selectors.sort)) 1969 | .add($(self.selectors.filter)) 1970 | .off('.mixItUp'); 1971 | 1972 | for(var i = 0; i < self._$targets.length; i++){ 1973 | var target = self._$targets[i]; 1974 | 1975 | hideAll && (target.style.display = ''); 1976 | 1977 | delete target.mixParent; 1978 | } 1979 | 1980 | self._execAction('destroy', 1, arguments); 1981 | 1982 | if(filters[self.selectors.filter] && filters[self.selectors.filter] > 1) { 1983 | filters[self.selectors.filter]--; 1984 | } else if(filters[self.selectors.filter] === 1) { 1985 | delete filters[self.selectors.filter]; 1986 | } 1987 | 1988 | if(sorts[self.selectors.sort] && sorts[self.selectors.sort] > 1) { 1989 | sorts[self.selectors.sort]--; 1990 | } else if(sorts[self.selectors.sort] === 1) { 1991 | delete sorts[self.selectors.sort]; 1992 | } 1993 | 1994 | delete $.MixItUp.prototype._instances[self._id]; 1995 | } 1996 | 1997 | }; 1998 | 1999 | /* jQuery Methods 2000 | ---------------------------------------------------------------------- */ 2001 | 2002 | /** 2003 | * jQuery .mixItUp() method 2004 | * @since 2.0.0 2005 | * @extends $.fn 2006 | */ 2007 | 2008 | $.fn.mixItUp = function(){ 2009 | var args = arguments, 2010 | dataReturn = [], 2011 | eachReturn, 2012 | _instantiate = function(domNode, settings){ 2013 | var instance = new $.MixItUp(), 2014 | rand = function(){ 2015 | return ('00000'+(Math.random()*16777216<<0).toString(16)).substr(-6).toUpperCase(); 2016 | }; 2017 | 2018 | instance._execAction('_instantiate', 0, arguments); 2019 | 2020 | domNode.id = !domNode.id ? 'MixItUp'+rand() : domNode.id; 2021 | 2022 | if(!instance._instances[domNode.id]){ 2023 | instance._instances[domNode.id] = instance; 2024 | instance._init(domNode, settings); 2025 | } 2026 | 2027 | instance._execAction('_instantiate', 1, arguments); 2028 | }; 2029 | 2030 | eachReturn = this.each(function(){ 2031 | if(args && typeof args[0] === 'string'){ 2032 | var instance = $.MixItUp.prototype._instances[this.id]; 2033 | if(args[0] === 'isLoaded'){ 2034 | dataReturn.push(instance ? true : false); 2035 | } else { 2036 | var data = instance[args[0]](args[1], args[2], args[3]); 2037 | if(data !== undf)dataReturn.push(data); 2038 | } 2039 | } else { 2040 | _instantiate(this, args[0]); 2041 | } 2042 | }); 2043 | 2044 | if(dataReturn.length){ 2045 | return dataReturn.length > 1 ? dataReturn : dataReturn[0]; 2046 | } else { 2047 | return eachReturn; 2048 | } 2049 | }; 2050 | 2051 | /** 2052 | * jQuery .removeStyle() method 2053 | * @since 2.0.0 2054 | * @extends $.fn 2055 | */ 2056 | 2057 | $.fn.removeStyle = function(style, prefix){ 2058 | prefix = prefix ? prefix : ''; 2059 | 2060 | return this.each(function(){ 2061 | var el = this, 2062 | styles = style.split(' '); 2063 | 2064 | for(var i = 0; i < styles.length; i++){ 2065 | for(var j = 0; j < 4; j++){ 2066 | switch (j) { 2067 | case 0: 2068 | var prop = styles[i]; 2069 | break; 2070 | case 1: 2071 | var prop = $.MixItUp.prototype._helpers._camelCase(prop); 2072 | break; 2073 | case 2: 2074 | var prop = prefix+styles[i]; 2075 | break; 2076 | case 3: 2077 | var prop = $.MixItUp.prototype._helpers._camelCase(prefix+styles[i]); 2078 | } 2079 | 2080 | if( 2081 | el.style[prop] !== undf && 2082 | typeof el.style[prop] !== 'unknown' && 2083 | el.style[prop].length > 0 2084 | ){ 2085 | el.style[prop] = ''; 2086 | } 2087 | 2088 | if(!prefix && j === 1)break; 2089 | } 2090 | } 2091 | 2092 | if(el.attributes && el.attributes.style && el.attributes.style !== undf && el.attributes.style.value === ''){ 2093 | el.attributes.removeNamedItem('style'); 2094 | } 2095 | }); 2096 | }; 2097 | 2098 | })(jQuery); -------------------------------------------------------------------------------- /js/jquery.nicescroll.min.js: -------------------------------------------------------------------------------- 1 | /* jquery.nicescroll 3.2.0 InuYaksa*2013 MIT http://areaaperta.com/nicescroll */(function(e){var y=!1,D=!1,J=5E3,K=2E3,x=0,L=function(){var e=document.getElementsByTagName("script"),e=e[e.length-1].src.split("?")[0];return 0f){if(b.getScrollTop()>=b.page.maxh)return!0}else if(0>=b.getScrollTop())return!0;b.scrollmom&&b.scrollmom.stop(); 12 | b.lastdeltay+=f;b.debounced("mousewheely",function(){var d=b.lastdeltay;b.lastdeltay=0;b.rail.drag||b.doScrollBy(d)},120)}d.stopImmediatePropagation();return d.preventDefault()}var b=this;this.version="3.4.0";this.name="nicescroll";this.me=c;this.opt={doc:e("body"),win:!1};e.extend(this.opt,F);this.opt.snapbackspeed=80;if(k)for(var q in b.opt)"undefined"!=typeof k[q]&&(b.opt[q]=k[q]);this.iddoc=(this.doc=b.opt.doc)&&this.doc[0]?this.doc[0].id||"":"";this.ispage=/BODY|HTML/.test(b.opt.win?b.opt.win[0].nodeName: 13 | this.doc[0].nodeName);this.haswrapper=!1!==b.opt.win;this.win=b.opt.win||(this.ispage?e(window):this.doc);this.docscroll=this.ispage&&!this.haswrapper?e(window):this.win;this.body=e("body");this.iframe=this.isfixed=this.viewport=!1;this.isiframe="IFRAME"==this.doc[0].nodeName&&"IFRAME"==this.win[0].nodeName;this.istextarea="TEXTAREA"==this.win[0].nodeName;this.forcescreen=!1;this.canshowonmouseevent="scroll"!=b.opt.autohidemode;this.page=this.view=this.onzoomout=this.onzoomin=this.onscrollcancel= 14 | this.onscrollend=this.onscrollstart=this.onclick=this.ongesturezoom=this.onkeypress=this.onmousewheel=this.onmousemove=this.onmouseup=this.onmousedown=!1;this.scroll={x:0,y:0};this.scrollratio={x:0,y:0};this.cursorheight=20;this.scrollvaluemax=0;this.observerremover=this.observer=this.scrollmom=this.scrollrunning=this.checkrtlmode=!1;do this.id="ascrail"+K++;while(document.getElementById(this.id));this.hasmousefocus=this.hasfocus=this.zoomactive=this.zoom=this.selectiondrag=this.cursorfreezed=this.cursor= 15 | this.rail=!1;this.visibility=!0;this.hidden=this.locked=!1;this.cursoractive=!0;this.overflowx=b.opt.overflowx;this.overflowy=b.opt.overflowy;this.nativescrollingarea=!1;this.checkarea=0;this.events=[];this.saved={};this.delaylist={};this.synclist={};this.lastdeltay=this.lastdeltax=0;this.detected=M();var f=e.extend({},this.detected);this.ishwscroll=(this.canhwscroll=f.hastransform&&b.opt.hwacceleration)&&b.haswrapper;this.istouchcapable=!1;f.cantouch&&(f.ischrome&&!f.isios&&!f.isandroid)&&(this.istouchcapable= 16 | !0,f.cantouch=!1);f.cantouch&&(f.ismozilla&&!f.isios)&&(this.istouchcapable=!0,f.cantouch=!1);b.opt.enablemouselockapi||(f.hasmousecapture=!1,f.haspointerlock=!1);this.delayed=function(d,c,g,e){var f=b.delaylist[d],h=(new Date).getTime();if(!e&&f&&f.tt)return!1;f&&f.tt&&clearTimeout(f.tt);if(f&&f.last+g>h&&!f.tt)b.delaylist[d]={last:h+g,tt:setTimeout(function(){b.delaylist[d].tt=0;c.call()},g)};else if(!f||!f.tt)b.delaylist[d]={last:h,tt:0},setTimeout(function(){c.call()},0)};this.debounced=function(d, 17 | c,g){var f=b.delaylist[d];(new Date).getTime();b.delaylist[d]=c;f||setTimeout(function(){var c=b.delaylist[d];b.delaylist[d]=!1;c.call()},g)};this.synched=function(d,c){b.synclist[d]=c;(function(){b.onsync||(v(function(){b.onsync=!1;for(d in b.synclist){var c=b.synclist[d];c&&c.call(b);b.synclist[d]=!1}}),b.onsync=!0)})();return d};this.unsynched=function(d){b.synclist[d]&&(b.synclist[d]=!1)};this.css=function(d,c){for(var g in c)b.saved.css.push([d,g,d.css(g)]),d.css(g,c[g])};this.scrollTop=function(d){return"undefined"== 18 | typeof d?b.getScrollTop():b.setScrollTop(d)};this.scrollLeft=function(d){return"undefined"==typeof d?b.getScrollLeft():b.setScrollLeft(d)};BezierClass=function(b,c,g,f,e,h,l){this.st=b;this.ed=c;this.spd=g;this.p1=f||0;this.p2=e||1;this.p3=h||0;this.p4=l||1;this.ts=(new Date).getTime();this.df=this.ed-this.st};BezierClass.prototype={B2:function(b){return 3*b*b*(1-b)},B3:function(b){return 3*b*(1-b)*(1-b)},B4:function(b){return(1-b)*(1-b)*(1-b)},getNow:function(){var b=1-((new Date).getTime()-this.ts)/ 19 | this.spd,c=this.B2(b)+this.B3(b)+this.B4(b);return 0>b?this.ed:this.st+Math.round(this.df*c)},update:function(b,c){this.st=this.getNow();this.ed=b;this.spd=c;this.ts=(new Date).getTime();this.df=this.ed-this.st;return this}};if(this.ishwscroll){this.doc.translate={x:0,y:0,tx:"0px",ty:"0px"};f.hastranslate3d&&f.isios&&this.doc.css("-webkit-backface-visibility","hidden");var r=function(){var d=b.doc.css(f.trstyle);return d&&"matrix"==d.substr(0,6)?d.replace(/^.*\((.*)\)$/g,"$1").replace(/px/g,"").split(/, +/): 20 | !1};this.getScrollTop=function(d){if(!d){if(d=r())return 16==d.length?-d[13]:-d[5];if(b.timerscroll&&b.timerscroll.bz)return b.timerscroll.bz.getNow()}return b.doc.translate.y};this.getScrollLeft=function(d){if(!d){if(d=r())return 16==d.length?-d[12]:-d[4];if(b.timerscroll&&b.timerscroll.bh)return b.timerscroll.bh.getNow()}return b.doc.translate.x};this.notifyScrollEvent=document.createEvent?function(b){var c=document.createEvent("UIEvents");c.initUIEvent("scroll",!1,!0,window,1);b.dispatchEvent(c)}: 21 | document.fireEvent?function(b){var c=document.createEventObject();b.fireEvent("onscroll");c.cancelBubble=!0}:function(b,c){};f.hastranslate3d&&b.opt.enabletranslate3d?(this.setScrollTop=function(d,c){b.doc.translate.y=d;b.doc.translate.ty=-1*d+"px";b.doc.css(f.trstyle,"translate3d("+b.doc.translate.tx+","+b.doc.translate.ty+",0px)");c||b.notifyScrollEvent(b.win[0])},this.setScrollLeft=function(d,c){b.doc.translate.x=d;b.doc.translate.tx=-1*d+"px";b.doc.css(f.trstyle,"translate3d("+b.doc.translate.tx+ 22 | ","+b.doc.translate.ty+",0px)");c||b.notifyScrollEvent(b.win[0])}):(this.setScrollTop=function(d,c){b.doc.translate.y=d;b.doc.translate.ty=-1*d+"px";b.doc.css(f.trstyle,"translate("+b.doc.translate.tx+","+b.doc.translate.ty+")");c||b.notifyScrollEvent(b.win[0])},this.setScrollLeft=function(d,c){b.doc.translate.x=d;b.doc.translate.tx=-1*d+"px";b.doc.css(f.trstyle,"translate("+b.doc.translate.tx+","+b.doc.translate.ty+")");c||b.notifyScrollEvent(b.win[0])})}else this.getScrollTop=function(){return b.docscroll.scrollTop()}, 23 | this.setScrollTop=function(d){return b.docscroll.scrollTop(d)},this.getScrollLeft=function(){return b.docscroll.scrollLeft()},this.setScrollLeft=function(d){return b.docscroll.scrollLeft(d)};this.getTarget=function(b){return!b?!1:b.target?b.target:b.srcElement?b.srcElement:!1};this.hasParent=function(b,c){if(!b)return!1;for(var g=b.target||b.srcElement||b||!1;g&&g.id!=c;)g=g.parentNode||!1;return!1!==g};var u={thin:1,medium:3,thick:5};this.getOffset=function(){if(b.isfixed)return{top:parseFloat(b.win.css("top")), 24 | left:parseFloat(b.win.css("left"))};if(!b.viewport)return b.win.offset();var d=b.win.offset(),c=b.viewport.offset();return{top:d.top-c.top+b.viewport.scrollTop(),left:d.left-c.left+b.viewport.scrollLeft()}};this.updateScrollBar=function(d){if(b.ishwscroll)b.rail.css({height:b.win.innerHeight()}),b.railh&&b.railh.css({width:b.win.innerWidth()});else{var c=b.getOffset(),g=c.top,f=c.left,g=g+l(b.win,"border-top-width",!0);b.win.outerWidth();b.win.innerWidth();var f=f+(b.rail.align?b.win.outerWidth()- 25 | l(b.win,"border-right-width")-b.rail.width:l(b.win,"border-left-width")),e=b.opt.railoffset;e&&(e.top&&(g+=e.top),b.rail.align&&e.left&&(f+=e.left));b.locked||b.rail.css({top:g,left:f,height:d?d.h:b.win.innerHeight()});b.zoom&&b.zoom.css({top:g+1,left:1==b.rail.align?f-20:f+b.rail.width+4});b.railh&&!b.locked&&(g=c.top,f=c.left,d=b.railh.align?g+l(b.win,"border-top-width",!0)+b.win.innerHeight()-b.railh.height:g+l(b.win,"border-top-width",!0),f+=l(b.win,"border-left-width"),b.railh.css({top:d,left:f, 26 | width:b.railh.width}))}};this.doRailClick=function(d,c,g){var f;b.locked||(b.cancelEvent(d),c?(c=g?b.doScrollLeft:b.doScrollTop,f=g?(d.pageX-b.railh.offset().left-b.cursorwidth/2)*b.scrollratio.x:(d.pageY-b.rail.offset().top-b.cursorheight/2)*b.scrollratio.y,c(f)):(c=g?b.doScrollLeftBy:b.doScrollBy,f=g?b.scroll.x:b.scroll.y,d=g?d.pageX-b.railh.offset().left:d.pageY-b.rail.offset().top,g=g?b.view.w:b.view.h,f>=d?c(g):c(-g)))};b.hasanimationframe=v;b.hascancelanimationframe=w;b.hasanimationframe?b.hascancelanimationframe|| 27 | (w=function(){b.cancelAnimationFrame=!0}):(v=function(b){return setTimeout(b,15-Math.floor(+new Date/1E3)%16)},w=clearInterval);this.init=function(){b.saved.css=[];if(f.isie7mobile)return!0;f.hasmstouch&&b.css(b.ispage?e("html"):b.win,{"-ms-touch-action":"none"});b.zindex="auto";b.zindex=!b.ispage&&"auto"==b.opt.zindex?h()||"auto":b.opt.zindex;!b.ispage&&"auto"!=b.zindex&&b.zindex>x&&(x=b.zindex);b.isie&&(0==b.zindex&&"auto"==b.opt.zindex)&&(b.zindex="auto");if(!b.ispage||!f.cantouch&&!f.isieold&& 28 | !f.isie9mobile){var d=b.docscroll;b.ispage&&(d=b.haswrapper?b.win:b.doc);f.isie9mobile||b.css(d,{"overflow-y":"hidden"});b.ispage&&f.isie7&&("BODY"==b.doc[0].nodeName?b.css(e("html"),{"overflow-y":"hidden"}):"HTML"==b.doc[0].nodeName&&b.css(e("body"),{"overflow-y":"hidden"}));f.isios&&(!b.ispage&&!b.haswrapper)&&b.css(e("body"),{"-webkit-overflow-scrolling":"touch"});var c=e(document.createElement("div"));c.css({position:"relative",top:0,"float":"right",width:b.opt.cursorwidth,height:"0px","background-color":b.opt.cursorcolor, 29 | border:b.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":b.opt.cursorborderradius,"-moz-border-radius":b.opt.cursorborderradius,"border-radius":b.opt.cursorborderradius});c.hborder=parseFloat(c.outerHeight()-c.innerHeight());b.cursor=c;var g=e(document.createElement("div"));g.attr("id",b.id);g.addClass("nicescroll-rails");var l,k,n=["left","right"],G;for(G in n)k=n[G],(l=b.opt.railpadding[k])?g.css("padding-"+k,l+"px"):b.opt.railpadding[k]=0;g.append(c);g.width=Math.max(parseFloat(b.opt.cursorwidth), 30 | c.outerWidth())+b.opt.railpadding.left+b.opt.railpadding.right;g.css({width:g.width+"px",zIndex:b.zindex,background:b.opt.background,cursor:"default"});g.visibility=!0;g.scrollable=!0;g.align="left"==b.opt.railalign?0:1;b.rail=g;c=b.rail.drag=!1;b.opt.boxzoom&&(!b.ispage&&!f.isieold)&&(c=document.createElement("div"),b.bind(c,"click",b.doZoom),b.zoom=e(c),b.zoom.css({cursor:"pointer","z-index":b.zindex,backgroundImage:"url("+L+"zoomico.png)",height:18,width:18,backgroundPosition:"0px 0px"}),b.opt.dblclickzoom&& 31 | b.bind(b.win,"dblclick",b.doZoom),f.cantouch&&b.opt.gesturezoom&&(b.ongesturezoom=function(d){1.5d.scale&&b.doZoomOut(d);return b.cancelEvent(d)},b.bind(b.win,"gestureend",b.ongesturezoom)));b.railh=!1;if(b.opt.horizrailenabled){b.css(d,{"overflow-x":"hidden"});c=e(document.createElement("div"));c.css({position:"relative",top:0,height:b.opt.cursorwidth,width:"0px","background-color":b.opt.cursorcolor,border:b.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":b.opt.cursorborderradius, 32 | "-moz-border-radius":b.opt.cursorborderradius,"border-radius":b.opt.cursorborderradius});c.wborder=parseFloat(c.outerWidth()-c.innerWidth());b.cursorh=c;var m=e(document.createElement("div"));m.attr("id",b.id+"-hr");m.addClass("nicescroll-rails");m.height=Math.max(parseFloat(b.opt.cursorwidth),c.outerHeight());m.css({height:m.height+"px",zIndex:b.zindex,background:b.opt.background});m.append(c);m.visibility=!0;m.scrollable=!0;m.align="top"==b.opt.railvalign?0:1;b.railh=m;b.railh.drag=!1}b.ispage? 33 | (g.css({position:"fixed",top:"0px",height:"100%"}),g.align?g.css({right:"0px"}):g.css({left:"0px"}),b.body.append(g),b.railh&&(m.css({position:"fixed",left:"0px",width:"100%"}),m.align?m.css({bottom:"0px"}):m.css({top:"0px"}),b.body.append(m))):(b.ishwscroll?("static"==b.win.css("position")&&b.css(b.win,{position:"relative"}),d="HTML"==b.win[0].nodeName?b.body:b.win,b.zoom&&(b.zoom.css({position:"absolute",top:1,right:0,"margin-right":g.width+4}),d.append(b.zoom)),g.css({position:"absolute",top:0}), 34 | g.align?g.css({right:0}):g.css({left:0}),d.append(g),m&&(m.css({position:"absolute",left:0,bottom:0}),m.align?m.css({bottom:0}):m.css({top:0}),d.append(m))):(b.isfixed="fixed"==b.win.css("position"),d=b.isfixed?"fixed":"absolute",b.isfixed||(b.viewport=b.getViewport(b.win[0])),b.viewport&&(b.body=b.viewport,!1==/relative|absolute/.test(b.viewport.css("position"))&&b.css(b.viewport,{position:"relative"})),g.css({position:d}),b.zoom&&b.zoom.css({position:d}),b.updateScrollBar(),b.body.append(g),b.zoom&& 35 | b.body.append(b.zoom),b.railh&&(m.css({position:d}),b.body.append(m))),f.isios&&b.css(b.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),f.isie&&b.opt.disableoutline&&b.win.attr("hideFocus","true"),f.iswebkit&&b.opt.disableoutline&&b.win.css({outline:"none"}));!1===b.opt.autohidemode?(b.autohidedom=!1,b.rail.css({opacity:b.opt.cursoropacitymax}),b.railh&&b.railh.css({opacity:b.opt.cursoropacitymax})):!0===b.opt.autohidemode?(b.autohidedom=e().add(b.rail),f.isie8&& 36 | (b.autohidedom=b.autohidedom.add(b.cursor)),b.railh&&(b.autohidedom=b.autohidedom.add(b.railh)),b.railh&&f.isie8&&(b.autohidedom=b.autohidedom.add(b.cursorh))):"scroll"==b.opt.autohidemode?(b.autohidedom=e().add(b.rail),b.railh&&(b.autohidedom=b.autohidedom.add(b.railh))):"cursor"==b.opt.autohidemode?(b.autohidedom=e().add(b.cursor),b.railh&&(b.autohidedom=b.autohidedom.add(b.cursorh))):"hidden"==b.opt.autohidemode&&(b.autohidedom=!1,b.hide(),b.locked=!1);if(f.isie9mobile)b.scrollmom=new H(b),b.onmangotouch= 37 | function(d){d=b.getScrollTop();var c=b.getScrollLeft();if(d==b.scrollmom.lastscrolly&&c==b.scrollmom.lastscrollx)return!0;var g=d-b.mangotouch.sy,f=c-b.mangotouch.sx;if(0!=Math.round(Math.sqrt(Math.pow(f,2)+Math.pow(g,2)))){var p=0>g?-1:1,e=0>f?-1:1,h=+new Date;b.mangotouch.lazy&&clearTimeout(b.mangotouch.lazy);80s?s=Math.round(s/2):s>b.page.maxh&&(s=b.page.maxh+Math.round((s-b.page.maxh)/2)):(0>s&&(h=s=0),s>b.page.maxh&&(s=b.page.maxh,h=0));if(b.railh&&b.railh.scrollable){var m=b.rail.drag.sl-k;b.ishwscroll&&b.opt.bouncescroll?0>m?m=Math.round(m/2):m>b.page.maxw&&(m=b.page.maxw+ 45 | Math.round((m-b.page.maxw)/2)):(0>m&&(l=m=0),m>b.page.maxw&&(m=b.page.maxw,l=0))}g=!1;if(b.rail.drag.dl)g=!0,"v"==b.rail.drag.dl?m=b.rail.drag.sl:"h"==b.rail.drag.dl&&(s=b.rail.drag.st);else{var p=Math.abs(p),k=Math.abs(k),n=b.opt.directionlockdeadzone;if("v"==b.rail.drag.ck){if(p>n&&k<=0.3*p)return b.rail.drag=!1,!0;k>n&&(b.rail.drag.dl="f",e("body").scrollTop(e("body").scrollTop()))}else if("h"==b.rail.drag.ck){if(k>n&&p<=0.3*az)return b.rail.drag=!1,!0;p>n&&(b.rail.drag.dl="f",e("body").scrollLeft(e("body").scrollLeft()))}}b.synched("touchmove", 46 | function(){b.rail.drag&&2==b.rail.drag.pt&&(b.prepareTransition&&b.prepareTransition(0),b.rail.scrollable&&b.setScrollTop(s),b.scrollmom.update(l,h),b.railh&&b.railh.scrollable?(b.setScrollLeft(m),b.showCursor(s,m)):b.showCursor(s),f.isie10&&document.selection.clear())});f.ischrome&&b.istouchcapable&&(g=!1);if(g)return b.cancelEvent(d)}}}b.onmousedown=function(d,c){if(!(b.rail.drag&&1!=b.rail.drag.pt)){if(b.locked)return b.cancelEvent(d);b.cancelScroll();b.rail.drag={x:d.clientX,y:d.clientY,sx:b.scroll.x, 47 | sy:b.scroll.y,pt:1,hr:!!c};var g=b.getTarget(d);!b.ispage&&f.hasmousecapture&&g.setCapture();b.isiframe&&!f.hasmousecapture&&(b.saved.csspointerevents=b.doc.css("pointer-events"),b.css(b.doc,{"pointer-events":"none"}));return b.cancelEvent(d)}};b.onmouseup=function(d){if(b.rail.drag&&(f.hasmousecapture&&document.releaseCapture(),b.isiframe&&!f.hasmousecapture&&b.doc.css("pointer-events",b.saved.csspointerevents),1==b.rail.drag.pt))return b.rail.drag=!1,b.cancelEvent(d)};b.onmousemove=function(d){if(b.rail.drag&& 48 | 1==b.rail.drag.pt){if(f.ischrome&&0==d.which)return b.onmouseup(d);b.cursorfreezed=!0;if(b.rail.drag.hr){b.scroll.x=b.rail.drag.sx+(d.clientX-b.rail.drag.x);0>b.scroll.x&&(b.scroll.x=0);var c=b.scrollvaluemaxw;b.scroll.x>c&&(b.scroll.x=c)}else b.scroll.y=b.rail.drag.sy+(d.clientY-b.rail.drag.y),0>b.scroll.y&&(b.scroll.y=0),c=b.scrollvaluemax,b.scroll.y>c&&(b.scroll.y=c);b.synched("mousemove",function(){b.rail.drag&&1==b.rail.drag.pt&&(b.showCursor(),b.rail.drag.hr?b.doScrollLeft(Math.round(b.scroll.x* 49 | b.scrollratio.x),b.opt.cursordragspeed):b.doScrollTop(Math.round(b.scroll.y*b.scrollratio.y),b.opt.cursordragspeed))});return b.cancelEvent(d)}};if(f.cantouch||b.opt.touchbehavior)b.onpreventclick=function(d){if(b.preventclick)return b.preventclick.tg.onclick=b.preventclick.click,b.preventclick=!1,b.cancelEvent(d)},b.bind(b.win,"mousedown",b.ontouchstart),b.onclick=f.isios?!1:function(d){return b.lastmouseup?(b.lastmouseup=!1,b.cancelEvent(d)):!0},b.opt.grabcursorenabled&&f.cursorgrabvalue&&(b.css(b.ispage? 50 | b.doc:b.win,{cursor:f.cursorgrabvalue}),b.css(b.rail,{cursor:f.cursorgrabvalue}));else{var r=function(d){if(b.selectiondrag){if(d){var c=b.win.outerHeight();d=d.pageY-b.selectiondrag.top;0=c&&(d-=c);b.selectiondrag.df=d}0!=b.selectiondrag.df&&(b.doScrollBy(2*-Math.floor(b.selectiondrag.df/6)),b.debounced("doselectionscroll",function(){r()},50))}};b.hasTextSelected="getSelection"in document?function(){return 0b.page.maxh?b.doScrollTop(b.page.maxh):(b.scroll.y=Math.round(b.getScrollTop()*(1/b.scrollratio.y)), 74 | b.scroll.x=Math.round(b.getScrollLeft()*(1/b.scrollratio.x)),b.cursoractive&&b.noticeCursor());b.scroll.y&&0==b.getScrollTop()&&b.doScrollTo(Math.floor(b.scroll.y*b.scrollratio.y));return b};this.resize=b.onResize;this.lazyResize=function(d){d=isNaN(d)?30:d;b.delayed("resize",b.resize,d);return b};this._bind=function(d,c,g,f){b.events.push({e:d,n:c,f:g,b:f,q:!1});d.addEventListener?d.addEventListener(c,g,f||!1):d.attachEvent?d.attachEvent("on"+c,g):d["on"+c]=g};this.jqbind=function(d,c,g){b.events.push({e:d, 75 | n:c,f:g,q:!0});e(d).bind(c,g)};this.bind=function(d,c,g,e){var h="jquery"in d?d[0]:d;"mousewheel"==c?"onwheel"in b.win?b._bind(h,"wheel",g,e||!1):(d="undefined"!=typeof document.onmousewheel?"mousewheel":"DOMMouseScroll",n(h,d,g,e||!1),"DOMMouseScroll"==d&&n(h,"MozMousePixelScroll",g,e||!1)):h.addEventListener?(f.cantouch&&/mouseup|mousedown|mousemove/.test(c)&&b._bind(h,"mousedown"==c?"touchstart":"mouseup"==c?"touchend":"touchmove",function(b){if(b.touches){if(2>b.touches.length){var d=b.touches.length? 76 | b.touches[0]:b;d.original=b;g.call(this,d)}}else b.changedTouches&&(d=b.changedTouches[0],d.original=b,g.call(this,d))},e||!1),b._bind(h,c,g,e||!1),f.cantouch&&"mouseup"==c&&b._bind(h,"touchcancel",g,e||!1)):b._bind(h,c,function(d){if((d=d||window.event||!1)&&d.srcElement)d.target=d.srcElement;"pageY"in d||(d.pageX=d.clientX+document.documentElement.scrollLeft,d.pageY=d.clientY+document.documentElement.scrollTop);return!1===g.call(h,d)||!1===e?b.cancelEvent(d):!0})};this._unbind=function(b,c,g,f){b.removeEventListener? 77 | b.removeEventListener(c,g,f):b.detachEvent?b.detachEvent("on"+c,g):b["on"+c]=!1};this.unbindAll=function(){for(var d=0;d 86 | (b.newscrolly-h)*(e-h)||0>(b.newscrollx-l)*(c-l))&&b.cancelScroll();!1==b.opt.bouncescroll&&(0>e?e=0:e>b.page.maxh&&(e=b.page.maxh),0>c?c=0:c>b.page.maxw&&(c=b.page.maxw));if(b.scrollrunning&&c==b.newscrollx&&e==b.newscrolly)return!1;b.newscrolly=e;b.newscrollx=c;b.newscrollspeed=g||!1;if(b.timer)return!1;b.timer=setTimeout(function(){var g=b.getScrollTop(),h=b.getScrollLeft(),l,k;l=c-h;k=e-g;l=Math.round(Math.sqrt(Math.pow(l,2)+Math.pow(k,2)));l=b.newscrollspeed&&1=b.newscrollspeed&&(l*=b.newscrollspeed);b.prepareTransition(l,!0);b.timerscroll&&b.timerscroll.tm&&clearInterval(b.timerscroll.tm);0c?c=0:c>b.page.maxh&&(c=b.page.maxh);0>e?e=0:e>b.page.maxw&&(e=b.page.maxw);if(c!=b.newscrolly||e!=b.newscrollx)return b.doScrollPos(e,c,b.opt.snapbackspeed);b.onscrollend&&b.scrollrunning&&b.onscrollend.call(b,{type:"scrollend",current:{x:e,y:c},end:{x:b.newscrollx,y:b.newscrolly}});b.scrollrunning= 91 | !1}):(this.doScrollLeft=function(c,f){var g=b.scrollrunning?b.newscrolly:b.getScrollTop();b.doScrollPos(c,g,f)},this.doScrollTop=function(c,f){var g=b.scrollrunning?b.newscrollx:b.getScrollLeft();b.doScrollPos(g,c,f)},this.doScrollPos=function(c,f,g){function e(){if(b.cancelAnimationFrame)return!0;b.scrollrunning=!0;if(r=1-r)return b.timer=v(e)||1;var c=0,d=sy=b.getScrollTop();if(b.dst.ay){var d=b.bzscroll?b.dst.py+b.bzscroll.getNow()*b.dst.ay:b.newscrolly,g=d-sy;if(0>g&&db.newscrolly)d= 92 | b.newscrolly;b.setScrollTop(d);d==b.newscrolly&&(c=1)}else c=1;var f=sx=b.getScrollLeft();if(b.dst.ax){f=b.bzscroll?b.dst.px+b.bzscroll.getNow()*b.dst.ax:b.newscrollx;g=f-sx;if(0>g&&fb.newscrollx)f=b.newscrollx;b.setScrollLeft(f);f==b.newscrollx&&(c+=1)}else c+=1;2==c?(b.timer=0,b.cursorfreezed=!1,b.bzscroll=!1,b.scrollrunning=!1,0>d?d=0:d>b.page.maxh&&(d=b.page.maxh),0>f?f=0:f>b.page.maxw&&(f=b.page.maxw),f!=b.newscrollx||d!=b.newscrolly?b.doScrollPos(f,d):b.onscrollend&&b.onscrollend.call(b, 93 | {type:"scrollend",current:{x:sx,y:sy},end:{x:b.newscrollx,y:b.newscrolly}})):b.timer=v(e)||1}f="undefined"==typeof f||!1===f?b.getScrollTop(!0):f;if(b.timer&&b.newscrolly==f&&b.newscrollx==c)return!0;b.timer&&w(b.timer);b.timer=0;var h=b.getScrollTop(),l=b.getScrollLeft();(0>(b.newscrolly-h)*(f-h)||0>(b.newscrollx-l)*(c-l))&&b.cancelScroll();b.newscrolly=f;b.newscrollx=c;if(!b.bouncescroll||!b.rail.visibility)0>b.newscrolly?b.newscrolly=0:b.newscrolly>b.page.maxh&&(b.newscrolly=b.page.maxh);if(!b.bouncescroll|| 94 | !b.railh.visibility)0>b.newscrollx?b.newscrollx=0:b.newscrollx>b.page.maxw&&(b.newscrollx=b.page.maxw);b.dst={};b.dst.x=c-l;b.dst.y=f-h;b.dst.px=l;b.dst.py=h;var k=Math.round(Math.sqrt(Math.pow(b.dst.x,2)+Math.pow(b.dst.y,2)));b.dst.ax=b.dst.x/k;b.dst.ay=b.dst.y/k;var n=0,q=k;0==b.dst.x?(n=h,q=f,b.dst.ay=1,b.dst.py=0):0==b.dst.y&&(n=l,q=c,b.dst.ax=1,b.dst.px=0);k=b.getTransitionSpeed(k);g&&1>=g&&(k*=g);b.bzscroll=0=b.page.maxh||l==b.page.maxw&&c>=b.page.maxw)&&b.checkContentSize();var r=1;b.cancelAnimationFrame=!1;b.timer=1;b.onscrollstart&&!b.scrollrunning&&b.onscrollstart.call(b,{type:"scrollstart",current:{x:l,y:h},request:{x:c,y:f},end:{x:b.newscrollx,y:b.newscrolly},speed:k});e();(h==b.page.maxh&&f>=h||l==b.page.maxw&&c>=l)&&b.checkContentSize();b.noticeCursor()}},this.cancelScroll=function(){b.timer&&w(b.timer);b.timer=0;b.bzscroll=!1;b.scrollrunning=!1;return b}):(this.doScrollLeft=function(c, 96 | f){var g=b.getScrollTop();b.doScrollPos(c,g,f)},this.doScrollTop=function(c,f){var g=b.getScrollLeft();b.doScrollPos(g,c,f)},this.doScrollPos=function(c,f,g){var e=c>b.page.maxw?b.page.maxw:c;0>e&&(e=0);var h=f>b.page.maxh?b.page.maxh:f;0>h&&(h=0);b.synched("scroll",function(){b.setScrollTop(h);b.setScrollLeft(e)})},this.cancelScroll=function(){});this.doScrollBy=function(c,f){var g=0,g=f?Math.floor((b.scroll.y-c)*b.scrollratio.y):(b.timer?b.newscrolly:b.getScrollTop(!0))-c;if(b.bouncescroll){var e= 97 | Math.round(b.view.h/2);g<-e?g=-e:g>b.page.maxh+e&&(g=b.page.maxh+e)}b.cursorfreezed=!1;py=b.getScrollTop(!0);if(0>g&&0>=py)return b.noticeCursor();if(g>b.page.maxh&&py>=b.page.maxh)return b.checkContentSize(),b.noticeCursor();b.doScrollTop(g)};this.doScrollLeftBy=function(c,f){var g=0,g=f?Math.floor((b.scroll.x-c)*b.scrollratio.x):(b.timer?b.newscrollx:b.getScrollLeft(!0))-c;if(b.bouncescroll){var e=Math.round(b.view.w/2);g<-e?g=-e:g>b.page.maxw+e&&(g=b.page.maxw+e)}b.cursorfreezed=!1;px=b.getScrollLeft(!0); 98 | if(0>g&&0>=px||g>b.page.maxw&&px>=b.page.maxw)return b.noticeCursor();b.doScrollLeft(g)};this.doScrollTo=function(c,f){f&&Math.round(c*b.scrollratio.y);b.cursorfreezed=!1;b.doScrollTop(c)};this.checkContentSize=function(){var c=b.getContentSize();(c.h!=b.page.h||c.w!=b.page.w)&&b.resize(!1,c)};b.onscroll=function(c){b.rail.drag||b.cursorfreezed||b.synched("scroll",function(){b.scroll.y=Math.round(b.getScrollTop()*(1/b.scrollratio.y));b.railh&&(b.scroll.x=Math.round(b.getScrollLeft()*(1/b.scrollratio.x))); 99 | b.noticeCursor()})};b.bind(b.docscroll,"scroll",b.onscroll);this.doZoomIn=function(c){if(!b.zoomactive){b.zoomactive=!0;b.zoomrestore={style:{}};var h="position top left zIndex backgroundColor marginTop marginBottom marginLeft marginRight".split(" "),g=b.win[0].style,l;for(l in h){var k=h[l];b.zoomrestore.style[k]="undefined"!=typeof g[k]?g[k]:""}b.zoomrestore.style.width=b.win.css("width");b.zoomrestore.style.height=b.win.css("height");b.zoomrestore.padding={w:b.win.outerWidth()-b.win.width(),h:b.win.outerHeight()- 100 | b.win.height()};f.isios4&&(b.zoomrestore.scrollTop=e(window).scrollTop(),e(window).scrollTop(0));b.win.css({position:f.isios4?"absolute":"fixed",top:0,left:0,"z-index":x+100,margin:"0px"});h=b.win.css("backgroundColor");(""==h||/transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(h))&&b.win.css("backgroundColor","#fff");b.rail.css({"z-index":x+101});b.zoom.css({"z-index":x+102});b.zoom.css("backgroundPosition","0px -18px");b.resizeZoom();b.onzoomin&&b.onzoomin.call(b);return b.cancelEvent(c)}};this.doZoomOut= 101 | function(c){if(b.zoomactive)return b.zoomactive=!1,b.win.css("margin",""),b.win.css(b.zoomrestore.style),f.isios4&&e(window).scrollTop(b.zoomrestore.scrollTop),b.rail.css({"z-index":b.zindex}),b.zoom.css({"z-index":b.zindex}),b.zoomrestore=!1,b.zoom.css("backgroundPosition","0px 0px"),b.onResize(),b.onzoomout&&b.onzoomout.call(b),b.cancelEvent(c)};this.doZoom=function(c){return b.zoomactive?b.doZoomOut(c):b.doZoomIn(c)};this.resizeZoom=function(){if(b.zoomactive){var c=b.getScrollTop();b.win.css({width:e(window).width()- 102 | b.zoomrestore.padding.w+"px",height:e(window).height()-b.zoomrestore.padding.h+"px"});b.onResize();b.setScrollTop(Math.min(b.page.maxh,c))}};this.init();e.nicescroll.push(this)},H=function(e){var c=this;this.nc=e;this.steptime=this.lasttime=this.speedy=this.speedx=this.lasty=this.lastx=0;this.snapy=this.snapx=!1;this.demuly=this.demulx=0;this.lastscrolly=this.lastscrollx=-1;this.timer=this.chky=this.chkx=0;this.time=function(){return+new Date};this.reset=function(e,l){c.stop();var k=c.time();c.steptime= 103 | 0;c.lasttime=k;c.speedx=0;c.speedy=0;c.lastx=e;c.lasty=l;c.lastscrollx=-1;c.lastscrolly=-1};this.update=function(e,l){var k=c.time();c.steptime=k-c.lasttime;c.lasttime=k;var k=l-c.lasty,t=e-c.lastx,b=c.nc.getScrollTop(),q=c.nc.getScrollLeft(),b=b+k,q=q+t;c.snapx=0>q||q>c.nc.page.maxw;c.snapy=0>b||b>c.nc.page.maxh;c.speedx=t;c.speedy=k;c.lastx=e;c.lasty=l};this.stop=function(){c.nc.unsynched("domomentum2d");c.timer&&clearTimeout(c.timer);c.timer=0;c.lastscrollx=-1;c.lastscrolly=-1};this.doSnapy=function(e, 104 | l){var k=!1;0>l?(l=0,k=!0):l>c.nc.page.maxh&&(l=c.nc.page.maxh,k=!0);0>e?(e=0,k=!0):e>c.nc.page.maxw&&(e=c.nc.page.maxw,k=!0);k&&c.nc.doScrollPos(e,l,c.nc.opt.snapbackspeed)};this.doMomentum=function(e){var l=c.time(),k=e?l+e:c.lasttime;e=c.nc.getScrollLeft();var t=c.nc.getScrollTop(),b=c.nc.page.maxh,q=c.nc.page.maxw;c.speedx=0=l-k;if(0>t||t>b||0>e||e>q)k=!1;e=c.speedx&&k?c.speedx:!1;if(c.speedy&&k&&c.speedy||e){var f=Math.max(16, 105 | c.steptime);50r||r>q))e=0.1;if(c.speedy&&(u=Math.floor(c.lastscrolly-c.speedy*(1-c.demulxy)),c.lastscrolly=u,0>u||u>b))e=0.1;c.demulxy=Math.min(1,c.demulxy+e);c.nc.synched("domomentum2d", 106 | function(){c.speedx&&(c.nc.getScrollLeft()!=c.chkx&&c.stop(),c.chkx=r,c.nc.setScrollLeft(r));c.speedy&&(c.nc.getScrollTop()!=c.chky&&c.stop(),c.chky=u,c.nc.setScrollTop(u));c.timer||(c.nc.hideCursor(),c.doSnapy(r,u))});1>c.demulxy?c.timer=setTimeout(d,f):(c.stop(),c.nc.hideCursor(),c.doSnapy(r,u))};d()}else c.doSnapy(c.nc.getScrollLeft(),c.nc.getScrollTop())}},A=e.fn.scrollTop;e.cssHooks.pageYOffset={get:function(k,c,h){return(c=e.data(k,"__nicescroll")||!1)&&c.ishwscroll?c.getScrollTop():A.call(k)}, 107 | set:function(k,c){var h=e.data(k,"__nicescroll")||!1;h&&h.ishwscroll?h.setScrollTop(parseInt(c)):A.call(k,c);return this}};e.fn.scrollTop=function(k){if("undefined"==typeof k){var c=this[0]?e.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollTop():A.call(this)}return this.each(function(){var c=e.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollTop(parseInt(k)):A.call(e(this),k)})};var B=e.fn.scrollLeft;e.cssHooks.pageXOffset={get:function(k,c,h){return(c=e.data(k,"__nicescroll")|| 108 | !1)&&c.ishwscroll?c.getScrollLeft():B.call(k)},set:function(k,c){var h=e.data(k,"__nicescroll")||!1;h&&h.ishwscroll?h.setScrollLeft(parseInt(c)):B.call(k,c);return this}};e.fn.scrollLeft=function(k){if("undefined"==typeof k){var c=this[0]?e.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollLeft():B.call(this)}return this.each(function(){var c=e.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollLeft(parseInt(k)):B.call(e(this),k)})};var C=function(k){var c=this;this.length= 109 | 0;this.name="nicescrollarray";this.each=function(e){for(var h=0;h