├── demo ├── cars.db ├── assets │ ├── img │ │ ├── s-1.jpg │ │ ├── s-2.jpg │ │ ├── s-3.jpg │ │ ├── bg-main.jpg │ │ ├── black10.png │ │ ├── black60.png │ │ ├── fs-picker-icon.png │ │ └── fs-selecter-arrow.png │ ├── fonts │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.woff │ │ ├── fontawesome-webfont.eot?v=4.0.3 │ │ ├── fontawesome-webfont.ttf?v=4.0.3 │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ └── glyphicons-halflings-regular.woff │ ├── js │ │ ├── theme.js │ │ ├── dynamo.min.js │ │ ├── sco.ajax.js │ │ ├── sco.message.js │ │ ├── sco.countdown.js │ │ ├── sco.confirm.js │ │ ├── sco.collapse.js │ │ ├── sco.modal.js │ │ ├── jquery.fs.picker.js │ │ ├── jquery.fs.scroller.js │ │ ├── jquery.fs.selecter.js │ │ └── jquery.refineslide.js │ └── css │ │ ├── jquery.fs.scroller.css │ │ ├── jquery.fs.picker.css │ │ ├── refineslide.css │ │ ├── jquery.fs.selecter.css │ │ ├── scojs.css │ │ ├── refineslide-theme-dark.css │ │ ├── theme.css │ │ └── font-awesome.css ├── images │ ├── no_image.jpg │ ├── audi_a4_2003_blue.jpg │ ├── audi_a8_2014_white.jpg │ ├── audi_q7_2007_silver.jpg │ ├── bmw_325i_2002_white.jpg │ ├── bmw_m3_1998_silver.jpg │ ├── bmw_z4_2003_silver.jpg │ ├── mini_cooper_2010_red.jpg │ ├── mini_clubman_2010_black.jpg │ └── maserati_spyder_2012_silver.jpg ├── js │ ├── demo.js │ ├── jquery.deserialize.js │ └── jquery.facets.js ├── cars.sql └── index.php ├── README.md ├── Changes ├── LICENSE ├── facets.jquery.json ├── jquery.deserialize.js └── jquery.facets.js /demo/cars.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/cars.db -------------------------------------------------------------------------------- /demo/assets/img/s-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/img/s-1.jpg -------------------------------------------------------------------------------- /demo/assets/img/s-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/img/s-2.jpg -------------------------------------------------------------------------------- /demo/assets/img/s-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/img/s-3.jpg -------------------------------------------------------------------------------- /demo/images/no_image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/images/no_image.jpg -------------------------------------------------------------------------------- /demo/assets/img/bg-main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/img/bg-main.jpg -------------------------------------------------------------------------------- /demo/assets/img/black10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/img/black10.png -------------------------------------------------------------------------------- /demo/assets/img/black60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/img/black60.png -------------------------------------------------------------------------------- /demo/images/audi_a4_2003_blue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/images/audi_a4_2003_blue.jpg -------------------------------------------------------------------------------- /demo/assets/img/fs-picker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/img/fs-picker-icon.png -------------------------------------------------------------------------------- /demo/images/audi_a8_2014_white.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/images/audi_a8_2014_white.jpg -------------------------------------------------------------------------------- /demo/images/audi_q7_2007_silver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/images/audi_q7_2007_silver.jpg -------------------------------------------------------------------------------- /demo/images/bmw_325i_2002_white.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/images/bmw_325i_2002_white.jpg -------------------------------------------------------------------------------- /demo/images/bmw_m3_1998_silver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/images/bmw_m3_1998_silver.jpg -------------------------------------------------------------------------------- /demo/images/bmw_z4_2003_silver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/images/bmw_z4_2003_silver.jpg -------------------------------------------------------------------------------- /demo/assets/img/fs-selecter-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/img/fs-selecter-arrow.png -------------------------------------------------------------------------------- /demo/images/mini_cooper_2010_red.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/images/mini_cooper_2010_red.jpg -------------------------------------------------------------------------------- /demo/images/mini_clubman_2010_black.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/images/mini_clubman_2010_black.jpg -------------------------------------------------------------------------------- /demo/assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /demo/assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /demo/images/maserati_spyder_2012_silver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/images/maserati_spyder_2012_silver.jpg -------------------------------------------------------------------------------- /demo/assets/fonts/fontawesome-webfont.eot?v=4.0.3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/fonts/fontawesome-webfont.eot?v=4.0.3 -------------------------------------------------------------------------------- /demo/assets/fonts/fontawesome-webfont.ttf?v=4.0.3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/fonts/fontawesome-webfont.ttf?v=4.0.3 -------------------------------------------------------------------------------- /demo/assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /demo/assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /demo/assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/srchulo/jQuery-Facets/HEAD/demo/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | jQuery-Facets 2 | ============= 3 | 4 | A jQuery plugin that facilitates faceted search. 5 | 6 | All information about this plugin including documentation can be found 7 | [here](http://srchulo.com/jquery_plugins/jquery_facets.html "jQuery Facets") 8 | -------------------------------------------------------------------------------- /Changes: -------------------------------------------------------------------------------- 1 | 0.0.8 2 | 3 | Added get/set method 4 | 5 | 0.0.7 6 | 7 | Added shouldSubmit 8 | 9 | 0.0.4 10 | 11 | Added generateData functionality. 12 | 13 | 0.0.3 14 | 15 | Manifest issue 16 | 17 | 0.0.2 18 | 19 | Fixed issue with hashOptions. Also, fixed it so that empty values are not sent in ajax request 20 | 21 | 0.0.1 22 | 23 | Released to the world! -------------------------------------------------------------------------------- /demo/assets/js/theme.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $(".scrollbar").scroller(); 6 | 7 | 8 | 9 | 10 | // Alert Message 11 | 12 | 13 | $('#message_trigger_ok').on('click', function(e) { 14 | e.preventDefault(); 15 | $.scojs_message(' Well done! You successfully read this important alert message.', $.scojs_message.TYPE_OK); 16 | }); 17 | $('#message_trigger_err').on('click', function(e) { 18 | e.preventDefault(); 19 | $.scojs_message(' Oh snap! Change a few things up and try submitting again.', $.scojs_message.TYPE_ERROR); 20 | }); 21 | 22 | 23 | 24 | 25 | // Tooltips 26 | 27 | $('.tooltip-demo').tooltip({ 28 | selector: "[data-toggle=tooltip]", 29 | container: "body" 30 | }) 31 | 32 | $('.tooltip-test').tooltip() 33 | $('.popover-test').popover() 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /demo/assets/js/dynamo.min.js: -------------------------------------------------------------------------------- 1 | (function(a){a.fn.dynamo=function(){return this.each(function(b,c){c=a(c),delay=parseInt(c.data("delay"))||3e3,speed=parseInt(c.data("speed"))||350,pause=c.data("pause")||!1,lines=c.data("lines").split(c.data("delimiter")||","),c.html(a("").text(c.text())),max=c.find("span:eq(0)").width();for(k in lines)span=a("").text(lines[k]),c.append(span),max=Math.max(max,span.width());c.find("span").each(function(b,e){s=a(e).remove(),d=a("
").text(s.text()),d.width(max),c.append(d)}),height=c.find(">:first-child").height(),c.width(max).height(height).css({display:"inline-block",position:"relative",overflow:"hidden","vertical-align":"bottom","text-align":"left"}),c.data("center")&&c.css("text-align","center"),transition=function(){c.dynamo_trigger()},pause||setInterval(transition,delay)})},a.fn.dynamo_trigger=function(){return this.each(function(b,c){speed=parseInt(a(c).data("speed"))||350,a(c).find("div:first").slideUp(speed,function(){a(c).append(a(this).show())})})},a(".dynamo").dynamo()})(jQuery); -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2013 Adam Hopkins, Inc. http://srchulo.com 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /facets.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "facets", 3 | "title": "jQuery Facets", 4 | "description": "jQuery Facets makes client-side faceted search simple.", 5 | "keywords": [ 6 | "facets", 7 | "faceted", 8 | "search", 9 | "navigation", 10 | "navigated", 11 | "browsing" 12 | ], 13 | "version": "0.0.9", 14 | "author": { 15 | "name": "Adam Hopkins", 16 | "email": "srchulo@srchulo.com", 17 | "url": "http://srchulo.com" 18 | }, 19 | "maintainers": [ 20 | { 21 | "name": "Adam Hopkins", 22 | "email": "srchulo@srchulo.com", 23 | "url": "http://srchulo.com" 24 | } 25 | ], 26 | "licenses": [ 27 | { 28 | "type": "MIT", 29 | "url": "https://github.com/srchulo/jQuery-Facets/blob/master/LICENSE" 30 | } 31 | ], 32 | "bugs": "https://github.com/srchulo/jQuery-Facets/issues", 33 | "homepage": "http://srchulo.com/jquery_plugins/jquery_facets.html", 34 | "docs": "http://srchulo.com/jquery_plugins/jquery_facets.html", 35 | "download": "https://github.com/srchulo/jQuery-Facets/archive/master.zip", 36 | "demo": "http://demo.srchulo.com/jquery/jquery_facets/", 37 | "dependencies": { 38 | "jquery": ">=1.5", 39 | "deserialize": ">=1.2.1" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /demo/js/demo.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | $("form#facets").facets({ 3 | URLParams : [ { 4 | name: "ajax", 5 | value: "true" 6 | }, 7 | ], 8 | preAJAX : function () { 9 | //validate inputs here! 10 | var minPrice = $("#minPrice").val(); 11 | var maxPrice = $("#maxPrice").val(); 12 | if((minPrice != "" && minPrice != undefined && !/^\d+$/.test(minPrice)) || (maxPrice != "" && maxPrice != undefined && !/^\d+$/.test(maxPrice))) { 13 | alert("Minimum and Maximum price must be numbers."); 14 | return false; 15 | } 16 | else if(minPrice != undefined && maxPrice != undefined && /^\d+$/.test(minPrice) && /^\d+$/.test(maxPrice) && parseInt(minPrice) > parseInt(maxPrice)) { 17 | alert("Maximum price must be larger than minimum price."); 18 | return false; 19 | } 20 | 21 | var minYear = $("#minYear").val(); 22 | var maxYear = $("#maxYear").val(); 23 | if((minYear != "" && minYear != undefined && !/^\d{4}$/.test(minYear)) || (maxYear != "" && maxYear != undefined && !/^\d{4}$/.test(maxYear))) { 24 | alert("Minimum and Maximum year must contain 4 numbers."); 25 | return false; 26 | } 27 | else if(minYear != undefined && maxYear != undefined && /^\d+$/.test(minYear) && /^\d+$/.test(maxYear) && parseInt(minYear) > parseInt(maxYear)) { 28 | alert("Maximum year must be larger than minimum year."); 29 | return false; 30 | } 31 | 32 | return true; 33 | } 34 | }); 35 | }); 36 | -------------------------------------------------------------------------------- /demo/assets/js/sco.ajax.js: -------------------------------------------------------------------------------- 1 | /* ========================================================== 2 | * sco.ajax.js 3 | * http://github.com/terebentina/sco.js 4 | * ========================================================== 5 | * Copyright 2013 Dan Caragea. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | /*jshint laxcomma:true, sub:true, browser:true, jquery:true, eqeqeq:false */ 21 | /*global Spinner:true */ 22 | 23 | ;(function($, undefined) { 24 | "use strict"; 25 | 26 | var pluginName = 'scojs_ajax'; 27 | 28 | $(document).on('click.' + pluginName, '[data-trigger="ajax"]', function() { 29 | var $this = $(this) 30 | ,data = $this.data() 31 | ,$target 32 | ,spinner 33 | ; 34 | if (typeof data['target'] != 'undefined') { 35 | $target = $(data['target']); 36 | if (typeof Spinner == 'function') { 37 | spinner = new Spinner({color: '#3d9bce'}).spin($target[0]); 38 | } 39 | $target.load($this.attr('href'), function() { 40 | if (spinner) { 41 | spinner.stop(); 42 | } 43 | }); 44 | return false; 45 | } 46 | }); 47 | })(jQuery); 48 | -------------------------------------------------------------------------------- /demo/cars.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS `cars`; 2 | 3 | CREATE TABLE `cars` ( 4 | `id` int(11) , 5 | `make` varchar(255) DEFAULT NULL, 6 | `model` varchar(255) DEFAULT NULL, 7 | `year` int(4) DEFAULT NULL, 8 | `condition` varchar(255) DEFAULT NULL, 9 | `price` int(11) DEFAULT NULL, 10 | `color` varchar(255) DEFAULT NULL, 11 | `image` varchar(255) DEFAULT NULL, 12 | PRIMARY KEY (`id`) 13 | ); 14 | 15 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (1,'BMW','M3',1998,'used',6000,'silver','bmw_m3_1998_silver.jpg'); 16 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (2,'Mini','Cooper',2010,'new',20000,'red','mini_cooper_2010_red.jpg'); 17 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (3,'Audi','A4',2003,'like_new',7000,'blue','audi_a4_2003_blue.jpg'); 18 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (4,'Audi','Q7',2007,'new',10000,'silver','audi_q7_2007_silver.jpg'); 19 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (5,'BMW','325i',2002,'like_new',5500,'white','bmw_325i_2002_white.jpg'); 20 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (6,'Mini','Clubman',2010,'really_used',15000,'black','mini_clubman_2010_black.jpg'); 21 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (7,'Cadillac','El Dorado',1997,'really_used',2000,'green',NULL); 22 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (8,'Maserati','Spyder',2012,'new',50000,'silver','maserati_spyder_2012_silver.jpg'); 23 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (9,'Chevrolet','Avalanche',2004,'used',3000,'black',NULL); 24 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (10,'BMW','Z4',2003,'used',9000,'silver','bmw_z4_2003_silver.jpg'); 25 | INSERT INTO `cars` (`id`, `make`, `model`, `year`, `condition`, `price`, `color`, `image`) VALUES (11,'Audi','A8',2014,'new',45000,'white','audi_a8_2014_white.jpg'); 26 | -------------------------------------------------------------------------------- /demo/assets/js/sco.message.js: -------------------------------------------------------------------------------- 1 | /* ========================================================== 2 | * sco.message.js 3 | * http://github.com/terebentina/sco.js 4 | * ========================================================== 5 | * Copyright 2013 Dan Caragea. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | /*jshint laxcomma:true, sub:true, browser:true, jquery:true, eqeqeq: false */ 21 | 22 | ;(function($, undefined) { 23 | "use strict"; 24 | 25 | var pluginName = 'scojs_message'; 26 | 27 | $[pluginName] = function(message, type) { 28 | clearTimeout($[pluginName].timeout); 29 | var $selector = $('#' + $[pluginName].options.id); 30 | if (!$selector.length) { 31 | $selector = $('
', {id: $[pluginName].options.id}).appendTo($[pluginName].options.appendTo); 32 | } 33 | $selector.html(message); 34 | if (type === undefined || type == $[pluginName].TYPE_ERROR) { 35 | $selector.removeClass($[pluginName].options.okClass).addClass($[pluginName].options.errClass); 36 | } else if (type == $[pluginName].TYPE_OK) { 37 | $selector.removeClass($[pluginName].options.errClass).addClass($[pluginName].options.okClass); 38 | } 39 | $selector.slideDown('fast', function() { 40 | $[pluginName].timeout = setTimeout(function() { $selector.slideUp('fast'); }, $[pluginName].options.delay); 41 | }); 42 | }; 43 | 44 | 45 | $.extend($[pluginName], { 46 | options: { 47 | id: 'page_message' 48 | ,okClass: 'page_mess_ok' 49 | ,errClass: 'page_mess_error' 50 | ,delay: 4000 51 | ,appendTo: 'body' // where should the modal be appended to (default to document.body). Added for unit tests, not really needed in real life. 52 | }, 53 | 54 | TYPE_ERROR: 1, 55 | TYPE_OK: 2 56 | }); 57 | })(jQuery); 58 | -------------------------------------------------------------------------------- /demo/assets/css/jquery.fs.scroller.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Scroller Plugin [Formstone Library] 3 | * @author Ben Plum 4 | * @version 0.6.4 5 | * 6 | * Copyright © 2013 Ben Plum 7 | * Released under the MIT License 8 | */ 9 | 10 | .scroller { overflow: hidden; overflow-x: hidden; overflow-y: hidden; position: relative; } 11 | .scroller-content { height: 100%; overflow: auto; overflow-x: hidden; overflow-y: auto; position: relative; z-index: 1; } 12 | .scroller-bar { background: #FBFBFB; border-left: 1px solid #EEEEEE; display: none; height: 100%; position: absolute; right: 0; top: 0; width: 20px; z-index: 2; } 13 | .scroller-track { background: #FBFBFB; height: 100%; overflow: hidden; position: relative; width: 100%; } 14 | .scroller-handle { background: #EEEEEE; border: 1px solid #D5D5D5; border-radius: 5px; cursor: pointer; height: 20px; overflow: hidden; position: absolute; right: 5px; top: 0; width: 10px; z-index: 2; 15 | -webkit-transition: right 0.1s linear, width 0.1s linear; 16 | -moz-transition: right 0.1s linear, width 0.1s linear; 17 | -ms-transition: right 0.1s linear, width 0.1s linear; 18 | -o-transition: right 0.1s linear, width 0.1s linear; 19 | transition: right 0.1s linear, width 0.1s linear; 20 | } 21 | 22 | /* Webkit Fix */ 23 | .scroller-content::-webkit-scrollbar, 24 | .scroller-content::-webkit-scrollbar-button, 25 | .scroller-content::-webkit-scrollbar-track, 26 | .scroller-content::-webkit-scrollbar-track-piece, 27 | .scroller-content::-webkit-scrollbar-thumb, 28 | .scroller-content::-webkit-scrollbar-corner, 29 | .scroller-content::-webkit-resizer { background: transparent; opacity: 0; } 30 | 31 | /* Active Scrollbar */ 32 | .scroller-active .scroller-content { padding: 20px; } 33 | .scroller-active .scroller-bar { display: block; } 34 | 35 | /* Setup Scrollbar - Should match 'active' styles for proper sizing */ 36 | .scroller-active .scroller-content { padding: 20px; } 37 | .scroller-active .scroller-bar { display: block; } 38 | 39 | /* Horizontal */ 40 | .scroller-horizontal .scroller-content { overflow: auto; overflow-x: auto; overflow-y: hidden; padding: 0 0 10px 0; } 41 | .scroller-horizontal .scroller-bar { border-left: none; border-top: 1px solid #EEEEEE; bottom: 0; height: 20px; top: auto; width: 100%; } 42 | .scroller-horizontal .scroller-handle { bottom: 5px; height: 10px; right: auto; top: auto; width: 20px; } -------------------------------------------------------------------------------- /demo/assets/js/sco.countdown.js: -------------------------------------------------------------------------------- 1 | /* ========================================================== 2 | * sco.countdown.js 3 | * http://github.com/terebentina/sco.js 4 | * ========================================================== 5 | * Copyright 2013 Dan Caragea. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | /*jshint laxcomma:true, sub:true, browser:true, jquery:true, devel:true */ 21 | 22 | ;(function($, undefined) { 23 | "use strict"; 24 | 25 | var pluginName = 'scojs_countdown'; 26 | 27 | function doit($elem, data, until) { 28 | var str = '' 29 | ,started = false 30 | ,left = {d: 0, h: 0, m: 0, s: 0} 31 | ,js_current = Math.round((new Date()).getTime() / 1000) 32 | ; 33 | 34 | left.s = until - js_current; 35 | 36 | if (left.s < 0) { 37 | return; 38 | } 39 | if (Math.floor(left.s / 86400) > 0) { 40 | left.d = Math.floor(left.s / 86400); 41 | left.s = left.s % 86400; 42 | str += left.d + data.strings.d; 43 | started = true; 44 | } 45 | if (Math.floor(left.s / 3600) > 0) { 46 | left.h = Math.floor(left.s / 3600); 47 | left.s = left.s % 3600; 48 | started = true; 49 | } 50 | if (started) { 51 | str += ' ' + left.h + data.strings.h; 52 | started = true; 53 | } 54 | if (Math.floor(left.s / 60) > 0) { 55 | left.m = Math.floor(left.s / 60); 56 | left.s = left.s % 60; 57 | started = true; 58 | } 59 | if (started) { 60 | str += ' ' + left.m + data.strings.m; 61 | started = true; 62 | } 63 | if (left.s > 0) { 64 | started = true; 65 | } 66 | if (started) { 67 | str += ' ' + left.s + data.strings.s; 68 | started = true; 69 | } 70 | 71 | $elem.html(str); 72 | setTimeout(function() {doit($elem, data, until);}, 500); 73 | } 74 | 75 | $.fn[pluginName] = function(options) { 76 | var $this = $(this) 77 | ,data = $this.data() 78 | ,js_current 79 | ; 80 | 81 | data = $.extend({}, $.fn[pluginName].defaults, options, data); 82 | 83 | if (!data.until) { 84 | return; 85 | } 86 | 87 | js_current = Math.round((new Date()).getTime() / 1000); 88 | if (!data.current) { 89 | data.current = js_current; 90 | } 91 | 92 | data.until -= (js_current - data.current); 93 | 94 | doit($this, data, data.until); 95 | }; 96 | 97 | $.fn[pluginName].defaults = { 98 | strings: {d: 'd', h: 'h', m: 'm', s: 's'} 99 | }; 100 | })(jQuery); 101 | -------------------------------------------------------------------------------- /demo/assets/css/jquery.fs.picker.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Picker Plugin [Formstone Library] 3 | * @author Ben Plum 4 | * @version 0.4.0 5 | * 6 | * Copyright © 2013 Ben Plum 7 | * Released under the MIT License 8 | */ 9 | 10 | .picker-element { left: -999999px; position: absolute; } 11 | .picker { cursor: pointer; margin: 0 0 10px 0; overflow: hidden; } 12 | .picker .picker-label { color: #888; display: block; float: left; font-size: 14px; float: left; line-height: 16px; 13 | -webkit-user-select: none; 14 | -moz-user-select: none; 15 | -ms-user-select: none; 16 | -o-user-select: none; 17 | user-select: none; 18 | } 19 | .picker .picker-handle { border: 1px solid #ccc; display: block; float: left; height: 16px; margin: 0 5px 0 0; width: 16px; } 20 | 21 | @media screen and (min-width: 740px) { 22 | .picker:hover .picker-label { color: #555; } 23 | .picker:hover .picker-handle { border-color: #aaa; } 24 | 25 | .picker.picker-radio:hover .picker-flag { background: #ddd; } 26 | } 27 | 28 | .picker.focus .picker-label { color: #555; } 29 | .picker.focus .picker-handle { border-color: #aaa; } 30 | 31 | /* Radio Input */ 32 | .picker.picker-radio .picker-handle { border-radius: 8px; } 33 | .picker.picker-radio .picker-flag { background: #fff; display: block; border-radius: 4px; height: 8px; margin: 3px; width: 8px; } 34 | 35 | .picker.picker-radio.focus .picker-flag { background: #ddd; } 36 | .picker.picker-radio.checked .picker-flag { background: #999; } 37 | 38 | /* Checkbox Input */ 39 | .picker.picker-checkbox .picker-handle { border-radius: 3px; } 40 | .picker.picker-checkbox .picker-flag { background: #fff; border-radius: 2px; display: block; height: 100%; margin: 0; width: 100%; } 41 | /* 'Checked' */ 42 | .picker.picker-checkbox.checked .picker-flag { background: #fff url('../img/fs-picker-icon.png') no-repeat center; } 43 | 44 | /* Toggle Input */ 45 | .picker.picker-toggle { padding: 20px 0 0; position: relative; } 46 | .picker.picker-toggle .picker-toggle-label { color: #999; font-size: 12px; position: absolute; text-transform: uppercase; top: 0; } 47 | .picker.picker-toggle .picker-toggle-label.on { left: 0; } 48 | .picker.picker-toggle .picker-toggle-label.off { color: #333; right: 0; } 49 | .picker.picker-toggle .picker-label { display: none; } 50 | .picker.picker-toggle .picker-handle { border-radius: 3px; position: relative; width: 100%; } 51 | .picker.picker-toggle .picker-flag { background: #666; border-radius: 2px; display: block; height: 100%; left: 50%; margin: 0; position: absolute; top: 0; width: 50%; 52 | -webkit-transition: left 0.1s linear; 53 | -moz-transition: left 0.1s linear; 54 | -ms-transition: left 0.1s linear; 55 | -o-transition: left 0.1s linear; 56 | transition: left 0.1s linear; 57 | } 58 | .picker.picker-toggle.checked .picker-toggle-label.on { color: #333; } 59 | .picker.picker-toggle.checked .picker-toggle-label.off { color: #999; } 60 | .picker.picker-toggle.checked .picker-flag { background: #666; left: 0; } 61 | 62 | /* 'Disabled' State */ 63 | .picker.disabled .picker-label { color: #ccc; cursor: default; } 64 | .picker.disabled .picker-handle { border-color: #eee; cursor: default; } 65 | .picker.picker-radio.disabled .picker-flag { background: #fff; } 66 | .picker.picker-radio.disabled.checked .picker-flag { background: #eee; } 67 | .picker.picker-checkbox.disabled .picker-flag::after { color: #eee; content: ''; } 68 | .picker.picker-checkbox.disabled.checked .picker-flag::after { color: #eee; content: '\2714'; } -------------------------------------------------------------------------------- /demo/assets/css/refineslide.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | #images {padding-left: 0px; margin-bottom: 0px;} 4 | 5 | 6 | 7 | 8 | 9 | .rs-wrap:after, 10 | .rs-slider:after, 11 | .rs-thumb-wrap:after, 12 | .rs-arrows:after, 13 | .rs-caption:after { 14 | content: "."; 15 | display: block; 16 | height: 0; 17 | clear: both; 18 | line-height: 0; 19 | visibility: hidden; 20 | } 21 | 22 | /* ===[ Slider ]=== */ 23 | 24 | .rs-wrap { 25 | position: relative; 26 | max-width: 100%; 27 | } 28 | 29 | .rs-slide-bg { *zoom: 1 } 30 | 31 | .rs-slider > li > a { display: block } 32 | 33 | .rs-slider > li { 34 | list-style: none; 35 | filter: alpha(opacity=0); 36 | opacity: 0; 37 | width: 100%; 38 | height: 100%; 39 | margin: 0 -100% 0 0; 40 | padding: 0; 41 | float: left; 42 | position: relative; 43 | } 44 | 45 | .rs-slider > li > a { 46 | padding: 0; 47 | background: none; 48 | -webkit-border-radius: 0; 49 | -moz-border-radius: 0; 50 | border-radius: 0; 51 | } 52 | 53 | .rs-slider > li img { 54 | display: block; 55 | max-width: 100%; 56 | max-height: 100%; 57 | -ms-interpolation-mode: bicubic; 58 | } 59 | 60 | /* ===[ Thumbnails ]=== */ 61 | 62 | .rs-thumb-wrap { *zoom: 1 } 63 | 64 | .rs-thumb-wrap > a { 65 | display: block; 66 | float: left; 67 | position: relative; 68 | -moz-box-sizing: border-box; 69 | -webkit-box-sizing: border-box; 70 | box-sizing: border-box; 71 | -webkit-backface-visibility: hidden; /* Hardware accelerate to prevent jumps on transition */ 72 | } 73 | 74 | .rs-thumb-wrap > a > img { 75 | max-width: 100%; 76 | max-height: 100%; 77 | display: block; 78 | -ms-interpolation-mode: bicubic; 79 | } 80 | 81 | .rs-thumb-wrap > a:first-child { margin-left: 0!important } 82 | 83 | /* ===[ Arrows ]=== */ 84 | 85 | .rs-arrows .rs-next, 86 | .rs-arrows .rs-prev { z-index: 1; } 87 | 88 | .rs-arrows:hover .rs-next, 89 | .rs-arrows:hover .rs-prev { z-index: 2; } 90 | 91 | /* ===[ Captions ]=== */ 92 | 93 | .rs-caption { 94 | position: absolute; 95 | max-height: 100%; 96 | overflow: auto; 97 | -moz-box-sizing: border-box; 98 | -webkit-box-sizing: border-box; 99 | box-sizing: border-box; 100 | bottom: 0; 101 | left: 0; 102 | } 103 | 104 | .rs-caption.rs-top-left { 105 | top: 0; 106 | bottom: auto; 107 | } 108 | 109 | .rs-caption.rs-top-right { 110 | top: 0; 111 | right: 0; 112 | left: auto; 113 | bottom: auto; 114 | } 115 | 116 | .rs-caption.rs-bottom-left { 117 | bottom: 0; 118 | left: 0; 119 | } 120 | 121 | .rs-caption.rs-bottom-right { 122 | right: 0; 123 | left: auto; 124 | border-bottom: none; 125 | border-right: none; 126 | } 127 | 128 | .rs-caption.rs-top { 129 | top: 0; 130 | bottom: auto; 131 | width: 100%!important; 132 | } 133 | 134 | .rs-caption.rs-bottom { width: 100%!important } 135 | 136 | .rs-caption.rs-left { 137 | top: 0; 138 | height: 100%; 139 | } 140 | 141 | .rs-caption.rs-right { 142 | top: 0; 143 | left: auto; 144 | right: 0; 145 | height: 100%; 146 | } 147 | 148 | /* ===[ Grid ]=== */ 149 | 150 | .rs-grid { 151 | position: absolute; 152 | overflow: hidden; 153 | width: 100%; 154 | height: 100%; 155 | display: none; 156 | } 157 | 158 | .rs-gridlet { 159 | position: absolute; 160 | opacity: 1; 161 | } 162 | 163 | /* Optional - remove captions at smaller screen widths 164 | @media screen and (max-width: 480px) { 165 | .rs-caption { opacity: 0!important; } 166 | } 167 | */ 168 | 169 | -------------------------------------------------------------------------------- /demo/assets/js/sco.confirm.js: -------------------------------------------------------------------------------- 1 | /* ========================================================== 2 | * sco.confirm.js 3 | * http://github.com/terebentina/sco.js 4 | * ========================================================== 5 | * Copyright 2013 Dan Caragea. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | /*jshint laxcomma:true, sub:true, browser:true, jquery:true, devel:true */ 21 | 22 | ;(function($, undefined) { 23 | "use strict"; 24 | 25 | var pluginName = 'scojs_confirm'; 26 | 27 | function Confirm(options) { 28 | this.options = $.extend({}, $.fn[pluginName].defaults, options); 29 | 30 | var $modal = $(this.options.target); 31 | if (!$modal.length) { 32 | $modal = $('