├── .gitignore ├── _config.yml ├── assets ├── images │ └── blog │ │ └── blog1.jpg ├── js │ ├── main.js │ └── typeahead.bundle.min.js ├── css │ ├── main.css │ └── pure-min-0.5.0.css ├── pickadate │ ├── classic.css │ ├── classic.date.css │ ├── picker.js │ └── picker.date.js └── data │ └── agencies.js ├── CONTRIBUTING.md ├── _layouts ├── default.html └── contained.html ├── _includes ├── request │ ├── fees.html │ ├── basic.html │ └── script.html ├── nav.html └── head.html ├── README.md ├── LICENSE.md ├── request ├── index.html ├── ostp.html └── gsa.html ├── index.html └── learn.md /.gitignore: -------------------------------------------------------------------------------- 1 | todo.txt 2 | *.pyc 3 | .DS_Store 4 | _site 5 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | markdown: kramdown 2 | 3 | exclude: [] 4 | -------------------------------------------------------------------------------- /assets/images/blog/blog1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/18F/2015-foia-design/master/assets/images/blog/blog1.jpg -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Public domain 2 | 3 | The=is project is in the public domain within the United States, and 4 | copyright and related rights in the work worldwide are waived through 5 | the [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/). 6 | 7 | All contributions to this project will be released under the CC0 8 | dedication. By submitting a pull request, you are agreeing to comply 9 | with this waiver of copyright interest. 10 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include head.html %} 5 | 6 | 7 | 8 | {% include nav.html %} 9 | 10 |
11 |
12 |
13 |

14 | 15 | alpha.foia.gov 16 | 17 |

18 |
19 |
20 | 21 | {{ content }} 22 |
23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /_layouts/contained.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include head.html %} 5 | 6 | 7 | 8 | {% include nav.html %} 9 | 10 |
11 |
12 |
13 |

14 | 15 | alpha.foia.gov 16 | 17 |

18 |
19 |
20 | 21 |
22 |
23 | {{ content }} 24 |
25 |
26 | 27 |
28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /_includes/request/fees.html: -------------------------------------------------------------------------------- 1 |
2 | Fees 3 | I'll pay up to 4 | $ 5 | in request processing fees. 6 |

7 | If it's higher than $0, stop and inform me before continuing. 8 |
9 | 10 |
11 |
12 | 13 | 16 |
17 | 18 | 19 |
20 | -------------------------------------------------------------------------------- /_includes/nav.html: -------------------------------------------------------------------------------- 1 | 28 | -------------------------------------------------------------------------------- /_includes/request/basic.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 |
6 | 7 |
8 | Describe the records you are requesting 9 | 10 |
11 | 12 |
13 | 14 |
15 | 16 | 17 | 18 |
19 | -------------------------------------------------------------------------------- /assets/js/main.js: -------------------------------------------------------------------------------- 1 | // global variables for the app 2 | 3 | Env = { 4 | core: "http://ec2-54-210-43-35.compute-1.amazonaws.com:5000", 5 | // core: "http://localhost:8000", 6 | search: "http://ec2-54-210-43-35.compute-1.amazonaws.com:8080" 7 | } 8 | 9 | Utils = { 10 | substringMatcher: function(strs) { 11 | return function findMatches(q, cb) { 12 | var matches, substrRegex; 13 | 14 | // an array that will be populated with substring matches 15 | matches = []; 16 | 17 | // regex used to determine if a string contains the substring `q` 18 | substrRegex = new RegExp(q, 'i'); 19 | 20 | // iterate through the pool of strings and for any string that 21 | // contains the substring `q`, add it to the `matches` array 22 | $.each(strs, function(i, str) { 23 | if (substrRegex.test(str)) { 24 | // the typeahead jQuery plugin expects suggestions to a 25 | // JavaScript object, refer to typeahead docs for more info 26 | matches.push({ value: str }); 27 | } 28 | }); 29 | 30 | cb(matches); 31 | }; 32 | } 33 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## foia-hub (Retired) 2 | 3 | *Note: This repo has been retired. FOIA design components will live in [18f/foia](http://github.com/18f/foia)). Issues will be in [18f/foia-hub](http://github.com/18f/foia-hub)* 4 | 5 | A user-facing FOIA hub. 6 | 7 | Right now this is in *very rough prototype* phase, as we get some extremely basic request and search forms in place. 8 | 9 | ### Running 10 | 11 | This is a [Jekyll](http://jekyllrb.com/) app, so `gem install jekyll` and then run: 12 | 13 | ``` 14 | jekyll serve 15 | ``` 16 | 17 | To run the app at `http://localhost:4000`. 18 | 19 | ## Public domain 20 | 21 | This project is in the worldwide [public domain](LICENSE.md). As stated in [CONTRIBUTING](CONTRIBUTING.md): 22 | 23 | > This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/). 24 | > 25 | > All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest. 26 | -------------------------------------------------------------------------------- /_includes/head.html: -------------------------------------------------------------------------------- 1 | alpha.FOIA.gov > Freedom of Information Act 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | As a work of the United States Government, this project is in the 2 | public domain within the United States. 3 | 4 | Additionally, we waive copyright and related rights in the work 5 | worldwide through the CC0 1.0 Universal public domain dedication. 6 | 7 | ## CC0 1.0 Universal Summary 8 | 9 | This is a human-readable summary of the 10 | [Legal Code (read the full text)](https://creativecommons.org/publicdomain/zero/1.0/legalcode). 11 | 12 | ### No Copyright 13 | 14 | The person who associated a work with this deed has dedicated the work to 15 | the public domain by waiving all of his or her rights to the work worldwide 16 | under copyright law, including all related and neighboring rights, to the 17 | extent allowed by law. 18 | 19 | You can copy, modify, distribute and perform the work, even for commercial 20 | purposes, all without asking permission. 21 | 22 | ### Other Information 23 | 24 | In no way are the patent or trademark rights of any person affected by CC0, 25 | nor are the rights that other persons may have in the work or in how the 26 | work is used, such as publicity or privacy rights. 27 | 28 | Unless expressly stated otherwise, the person who associated a work with 29 | this deed makes no warranties about the work, and disclaims liability for 30 | all uses of the work, to the fullest extent permitted by applicable law. 31 | When using or citing the work, you should not imply endorsement by the 32 | author or the affirmer. 33 | -------------------------------------------------------------------------------- /request/index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | permalink: /request/ 4 | --- 5 | 6 |
7 | 8 |
9 |

10 | What agency are you submitting a request to? 11 |

12 | 13 |

14 | The United States government is made up of many different federal agencies. To file a FOIA request, you need to choose the agency that has the information you're looking for, and request it directly from them. 15 |

16 | 17 |
18 |
19 | 20 |
21 |
22 |
23 | 24 |
25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | permalink: / 4 | --- 5 |
6 |
7 |

Welcome to the new Freedom of Information hub.

8 |
9 | 10 |
11 | 12 |
13 | 14 |
15 | 16 |

Blog

17 | 18 | 43 |
44 |
45 | -------------------------------------------------------------------------------- /_includes/request/script.html: -------------------------------------------------------------------------------- 1 | 90 | -------------------------------------------------------------------------------- /request/ostp.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | slug: office-of-science-and-technology-policy 4 | permalink: /request/office-of-science-and-technology-policy/ 5 | --- 6 | 7 |
8 | 9 |
10 |

Office of Science and Technology Policy

11 |
12 | 13 |
14 |

15 | The mission of the Office of Science and Technology Policy (OSTP) is threefold; first, to provide the President and his senior staff with accurate, relevant, and timely scientific and technical advice on all matters of consequence; second, to ensure that the policies of the Executive Branch are informed by sound science; and third, to ensure that the scientific and technical work of the Executive Branch is properly coordinated so as to provide the greatest benefit to society. 16 |

17 | 18 |
19 | 20 | 21 | 22 |
23 | 24 |
25 | 26 | 27 | 28 | 29 | {% include request/basic.html %} 30 | 31 | 32 | 33 | {% include request/fees.html %} 34 | 35 |
36 | There was an error submitting your request. Please fill out all the required fields above, and try again. 37 |
38 | 39 | 40 |
41 | 42 |
43 | 44 | 45 |
46 |

47 | You've successfully submitted your request! 48 |

49 | 50 |

51 | We've emailed a copy of your request to . 52 |

53 | 54 |

55 | Your request's tracking ID is . 56 |

57 | 58 |

59 | You should receive a status update from the by email within 20 working days. 60 |

61 | 62 |

63 | To reach the FOIA office of the directly, contact: 64 | 65 |

66 | Rachael Leonard
67 | (202) 456-6125
68 |
69 |

70 |
71 |
72 | 73 | {% include request/script.html %} 74 | -------------------------------------------------------------------------------- /assets/css/main.css: -------------------------------------------------------------------------------- 1 | body { padding-bottom: 20px; } 2 | html, button, input, select, textarea, 3 | .pure-g [class *= "pure-u"] { font-family: 'Open Sans', sans-serif; } 4 | h1,h2,h3,h4,h5,h6 { font-family: 'Raleway', sans-serif; } 5 | a { color: #18f; text-decoration: none;} 6 | p a:hover { text-decoration: underline; } 7 | .pure-menu a, .pure-menu .pure-menu-can-have-children>li:after { color: #333; } 8 | .pure-menu li a { padding: 5px 12px; } 9 | 10 | #logo { font-weight:200; color: #18f; } 11 | #logo em { color: #cc2211; font-style: normal;} 12 | 13 | input.search, input.agency { width: 100% } 14 | textarea.request { height: 9em; } 15 | textarea.fee-waiver-justification { height: 4em; } 16 | .pure-form input.upto[type=text] { width: 80px; display: inline;} 17 | span.fee-amount { font-weight: bold; } 18 | 19 | label.fee-waiver {display: inline;} 20 | 21 | .pure-menu a {border-bottom: 0.3em solid #fff;} 22 | .pure-menu .pure-menu-selected a { border-bottom: 0.3em solid #333;} 23 | .pure-menu li a:hover {background: none; color: #777; border-bottom: 0.3em solid #777;} 24 | .pure-menu li a:focus {background: #cc2211; color:#fff; } 25 | 26 | .content { 27 | margin-left: auto; 28 | margin-right: auto; 29 | padding-left: 1em; 30 | padding-right: 1em; 31 | max-width: 768px; 32 | } 33 | 34 | /* todo: error/success states still need styling */ 35 | 36 | /* error message next to submit button */ 37 | div.request.error { 38 | display: none; padding: 10px 0; 39 | font-weight: bold; color: #f00; 40 | } 41 | 42 | /* success message area, replaces request form upon success */ 43 | section.request.success { 44 | display: none; 45 | } 46 | 47 | #tracking-number {font-weight: bold;} 48 | #requester-email {font-weight: bold;} 49 | #fee-waiver-justification {display: none; margin: 10px 0;} 50 | 51 | 52 | /* agency autocomplete */ 53 | .twitter-typeahead {width: 100%;} 54 | .scrollable-dropdown-menu .tt-dropdown-menu { 55 | max-height: 300px; 56 | overflow-y: auto; 57 | width: 100%; 58 | margin-bottom: 100px; 59 | } 60 | 61 | 62 | 63 | .typeahead, 64 | .tt-query, 65 | .tt-hint { 66 | width: 396px; 67 | height: 30px; 68 | padding: 8px 12px; 69 | font-size: 24px; 70 | line-height: 30px; 71 | border: 2px solid #ccc; 72 | -webkit-border-radius: 8px; 73 | -moz-border-radius: 8px; 74 | border-radius: 8px; 75 | outline: none; 76 | } 77 | 78 | .typeahead { 79 | background-color: #fff; 80 | } 81 | 82 | .typeahead:focus { 83 | border: 2px solid #0097cf; 84 | } 85 | 86 | .tt-query { 87 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 88 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 89 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 90 | } 91 | 92 | .tt-hint { 93 | color: #999; 94 | } 95 | 96 | .tt-dropdown-menu { 97 | width: 422px; 98 | margin-top: 12px; 99 | padding: 8px 0; 100 | background-color: #fff; 101 | border: 1px solid #ccc; 102 | border: 1px solid rgba(0, 0, 0, 0.2); 103 | -webkit-border-radius: 8px; 104 | -moz-border-radius: 8px; 105 | border-radius: 8px; 106 | -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2); 107 | -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2); 108 | box-shadow: 0 5px 10px rgba(0,0,0,.2); 109 | } 110 | 111 | .tt-suggestion { 112 | padding: 8px 20px; 113 | font-size: 18px; 114 | line-height: 24px; 115 | } 116 | 117 | .tt-suggestion.tt-cursor { 118 | color: #fff; 119 | background-color: #0097cf; 120 | } 121 | 122 | .tt-suggestion p { 123 | margin: 0; 124 | } -------------------------------------------------------------------------------- /assets/pickadate/classic.css: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | $BASE-PICKER 3 | ========================================================================== */ 4 | /** 5 | * Note: the root picker element should *NOT* be styled more than what’s here. 6 | */ 7 | .picker { 8 | font-size: 16px; 9 | text-align: left; 10 | line-height: 1.2; 11 | color: #000000; 12 | position: absolute; 13 | z-index: 10000; 14 | -webkit-user-select: none; 15 | -moz-user-select: none; 16 | -ms-user-select: none; 17 | user-select: none; 18 | } 19 | /** 20 | * The picker input element. 21 | */ 22 | .picker__input { 23 | cursor: default; 24 | } 25 | /** 26 | * When the picker is opened, the input element is “activated”. 27 | */ 28 | .picker__input.picker__input--active { 29 | border-color: #0089ec; 30 | } 31 | /** 32 | * The holder is the only “scrollable” top-level container element. 33 | */ 34 | .picker__holder { 35 | width: 100%; 36 | overflow-y: auto; 37 | -webkit-overflow-scrolling: touch; 38 | } 39 | 40 | /*! 41 | * Classic picker styling for pickadate.js 42 | * Demo: http://amsul.github.io/pickadate.js 43 | */ 44 | /** 45 | * Note: the root picker element should *NOT* be styled more than what’s here. 46 | */ 47 | .picker { 48 | width: 100%; 49 | } 50 | /** 51 | * The holder is the base of the picker. 52 | */ 53 | .picker__holder { 54 | position: absolute; 55 | background: #ffffff; 56 | border: 1px solid #aaaaaa; 57 | border-top-width: 0; 58 | border-bottom-width: 0; 59 | -webkit-border-radius: 0 0 5px 5px; 60 | -moz-border-radius: 0 0 5px 5px; 61 | border-radius: 0 0 5px 5px; 62 | -webkit-box-sizing: border-box; 63 | -moz-box-sizing: border-box; 64 | box-sizing: border-box; 65 | min-width: 176px; 66 | max-width: 466px; 67 | max-height: 0; 68 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 69 | filter: alpha(opacity=0); 70 | -moz-opacity: 0; 71 | opacity: 0; 72 | -webkit-transform: translateY(-1em) perspective(600px) rotateX(10deg); 73 | -moz-transform: translateY(-1em) perspective(600px) rotateX(10deg); 74 | transform: translateY(-1em) perspective(600px) rotateX(10deg); 75 | -webkit-transition: -webkit-transform 0.15s ease-out, opacity 0.15s ease-out, max-height 0s 0.15s, border-width 0s 0.15s; 76 | -moz-transition: -moz-transform 0.15s ease-out, opacity 0.15s ease-out, max-height 0s 0.15s, border-width 0s 0.15s; 77 | transition: transform 0.15s ease-out, opacity 0.15s ease-out, max-height 0s 0.15s, border-width 0s 0.15s; 78 | } 79 | /** 80 | * The frame and wrap work together to ensure that 81 | * clicks within the picker don’t reach the holder. 82 | */ 83 | .picker__frame { 84 | padding: 1px; 85 | } 86 | .picker__wrap { 87 | margin: -1px; 88 | } 89 | /** 90 | * When the picker opens... 91 | */ 92 | .picker--opened .picker__holder { 93 | max-height: 25em; 94 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; 95 | filter: alpha(opacity=100); 96 | -moz-opacity: 1; 97 | opacity: 1; 98 | border-top-width: 1px; 99 | border-bottom-width: 1px; 100 | -webkit-transform: translateY(0) perspective(600px) rotateX(0); 101 | -moz-transform: translateY(0) perspective(600px) rotateX(0); 102 | transform: translateY(0) perspective(600px) rotateX(0); 103 | -webkit-transition: -webkit-transform 0.15s ease-out, opacity 0.15s ease-out, max-height 0s, border-width 0s; 104 | -moz-transition: -moz-transform 0.15s ease-out, opacity 0.15s ease-out, max-height 0s, border-width 0s; 105 | transition: transform 0.15s ease-out, opacity 0.15s ease-out, max-height 0s, border-width 0s; 106 | -webkit-box-shadow: 0 6px 18px 1px rgba(0, 0, 0, 0.12); 107 | -moz-box-shadow: 0 6px 18px 1px rgba(0, 0, 0, 0.12); 108 | box-shadow: 0 6px 18px 1px rgba(0, 0, 0, 0.12); 109 | } 110 | -------------------------------------------------------------------------------- /request/gsa.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | slug: general-services-administration 4 | permalink: /request/general-services-administration/ 5 | --- 6 | 7 |
8 | 9 |
10 |

General Services Administration

11 |
12 | 13 |
14 |

15 | The General Services Administration (GSA) helps manage and support the basic functioning of federal agencies. The GSA supplies products and communications for U.S. government offices, provides transportation and office space to federal employees, and develops government-wide cost-minimizing policies, and other management tasks. 16 |

17 | 18 |

19 | Common FOIA requests from GSA include federal contracts, purchase card use, and government forms. 20 |

21 | 22 |
23 | 24 | 25 | 26 | 27 |
28 | 29 |
30 | 31 | 32 | 33 | 34 | {% include request/basic.html %} 35 | 36 |
37 | If your request relates to a specific GSA contract, enter the contract number. (optional) 38 | 39 |
40 | 41 |
42 | If your request relates to a specific GSA region, choose the region or choose your state. (optional) 43 | 44 | 59 | 60 | {% include request/fees.html %} 61 | 62 |
63 | There was an error submitting your request. Please fill out all the required fields above, and try again. 64 |
65 | 66 | 67 | 68 | 69 |
70 | 71 | 72 |
73 |

74 | You've successfully submitted your request! 75 |

76 | 77 |

78 | We've emailed a copy of your request to . 79 |

80 | 81 |

82 | Your request's tracking ID is . 83 |

84 | 85 |

86 | You should receive a status update from the by email within 20 working days. 87 |

88 | 89 |

90 | To reach the FOIA office of the directly, contact: 91 | 92 |

93 | Audrey Corbett Brooks
94 | (202) 205-5912
95 | gsa.foia@gsa.gov 96 |
97 |

98 |
99 |
100 | 101 | {% include request/script.html %} 102 | -------------------------------------------------------------------------------- /learn.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: contained 3 | permalink: /learn/ 4 | --- 5 | 6 | # What is FOIA? 7 | 8 | Since 1966, the Freedom of Information Act (FOIA) has granted the public the right to request access to any agency records. Under FOIA, agencies are required to disclose any information requested unless it falls under a specific set of [exemptions](http://www.foia.gov/faq.html#exemptions) or [exclusions](http://www.foia.gov/faq.html#exclusions). 9 | 10 | The public's right to request records has served as the backbone for information disclosure in the United States. Records released under FOIA have led to the publication of many important news stories and greater public awareness around government activities. 11 | 12 | **Why would I make a FOIA request?** 13 | 14 | While the Federal Government makes a lot of information [available](data.gov) in [many](search.usa.gov) [places](http://foia.state.gov/Search/Search.aspx), you may still seek information that has not already been publicly released. FOIA makes it possible to access records that are not yet publicly available. 15 | 16 | **What can I ask for?** 17 | 18 | You can file a FOIA request for any "agency record." This is a broad term that covers things like books, papers, maps, photographs, emails, machine-readable materials, and other documentary materials. You can also specify whether you would like to receive these records in electronic or paper formats as well.
 19 | 20 | **Is there a special form I have to use to make a FOIA request?** 21 | 22 | There is no specific form that must be used to make a request. All you need is to do is write a description of the information you are seeking and comply with any agency-specific requirements. Those requirements are set out in agencies' FOIA regulations. 23 | 24 | Your written description must be specific enough that agency FOIA professionals can understand what you are seeking and properly conduct a search. Information such as time periods, specific names, topics, or key words related to the information you are seeking will help inform the agency. 25 | 26 | **How do I make a FOIA request?** 27 | 28 | Requests must be submitted in writing, either electronically or in paper format, and should include a reasonable description of the information you are requesting and the format you prefer. 29 | 30 | The FOIA does not require agencies to do research for you, analyze data, answer written questions, or create records in response to your request. That means you may need to do some research before filing a request. An agency's own website is a good place to start. 31 | 32 | **What happens after I make my FOIA request?** 33 | 34 | A lot happens behind the scenes after an agency receives your FOIA request. Agencies each have their own specific way of processing a request. The first step is to determine which offices may have responsive records and search for those records. Once an office has located records and provided them back to the FOIA shop, the FOIA team may consult subject matter experts, lawyers, or other agency officials to review them for release. This step may also include redacting any non-public information. 35 | 36 | Once the agency has completed this process, any public records will be released to you. 37 | 38 | **How long does it take to fulfill my request?** 39 | 40 | Response time varies between agencies and also depends on the complexity of the request. The standard time limit established by FOIA is 20 business days, but some requests are more complex and will require more time. 41 | 42 | Agencies may also request an extension in "unusual" or "exceptional" circumstances and may pause the request clock to [clarify the request](http://www.justice.gov/oip/foiapost/2008foiapost29.htm). If an agency gets an extension, it will notify you. During this time, the agency will provide you with an opportunity to modify the scope of the request to help improve the response time. 43 | 44 | Another option is to agree to a different timetable for processing the request. You can work with the agency's FOIA Public Liaison or other FOIA contacts to discuss this option. You should always feel free to contact the agency to check on the status of your request. Agencies are required to provide an estimated response date upon request. 45 | 46 | **What happens if I'm not satisfied with the response I received?** 47 | 48 | If you disagree with agency's decision on your request, you can file an appeal by writing to the agency. Agencies review appeals independently and inform you whether your appeal is granted or denied. FOIA also provides for a 20 business day time frame for appeal responses, but, similarly, response times vary based on an agency's workload and the complexity of your appeal. 49 | 50 | Sometimes an appeal isn't the best route. Before filing an appeal, you might want to try contacting the agency that handled the request either through your FOIA contact or the FOIA Public Liaison who is there to help you throughout the FOIA process and help resolve any disputes. Contact for every agency's FOIA Public Liaison is listed on [www.foia.gov](http://www.foia.gov/report-makerequest.html). 51 | 52 | If the appeal process is complete and you are not yet satisfied, you can also seek mediation services from the FOIA Ombudsman's office, the [Office of Government Information Services](https://ogis.archives.gov/) at the National Archives and Records Administration. 53 | -------------------------------------------------------------------------------- /assets/pickadate/classic.date.css: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | $BASE-DATE-PICKER 3 | ========================================================================== */ 4 | /** 5 | * The picker box. 6 | */ 7 | .picker__box { 8 | padding: 0 1em; 9 | } 10 | /** 11 | * The header containing the month and year stuff. 12 | */ 13 | .picker__header { 14 | text-align: center; 15 | position: relative; 16 | margin-top: .75em; 17 | } 18 | /** 19 | * The month and year labels. 20 | */ 21 | .picker__month, 22 | .picker__year { 23 | font-weight: 500; 24 | display: inline-block; 25 | margin-left: .25em; 26 | margin-right: .25em; 27 | } 28 | .picker__year { 29 | color: #999999; 30 | font-size: .8em; 31 | font-style: italic; 32 | } 33 | /** 34 | * The month and year selectors. 35 | */ 36 | .picker__select--month, 37 | .picker__select--year { 38 | border: 1px solid #b7b7b7; 39 | height: 2em; 40 | padding: .5em; 41 | margin-left: .25em; 42 | margin-right: .25em; 43 | } 44 | @media (min-width: 24.5em) { 45 | .picker__select--month, 46 | .picker__select--year { 47 | margin-top: -0.5em; 48 | } 49 | } 50 | .picker__select--month { 51 | width: 35%; 52 | } 53 | .picker__select--year { 54 | width: 22.5%; 55 | } 56 | .picker__select--month:focus, 57 | .picker__select--year:focus { 58 | border-color: #0089ec; 59 | } 60 | /** 61 | * The month navigation buttons. 62 | */ 63 | .picker__nav--prev, 64 | .picker__nav--next { 65 | position: absolute; 66 | padding: .5em 1.25em; 67 | width: 1em; 68 | height: 1em; 69 | box-sizing: content-box; 70 | top: -0.25em; 71 | } 72 | @media (min-width: 24.5em) { 73 | .picker__nav--prev, 74 | .picker__nav--next { 75 | top: -0.33em; 76 | } 77 | } 78 | .picker__nav--prev { 79 | left: -1em; 80 | padding-right: 1.25em; 81 | } 82 | @media (min-width: 24.5em) { 83 | .picker__nav--prev { 84 | padding-right: 1.5em; 85 | } 86 | } 87 | .picker__nav--next { 88 | right: -1em; 89 | padding-left: 1.25em; 90 | } 91 | @media (min-width: 24.5em) { 92 | .picker__nav--next { 93 | padding-left: 1.5em; 94 | } 95 | } 96 | .picker__nav--prev:before, 97 | .picker__nav--next:before { 98 | content: " "; 99 | border-top: .5em solid transparent; 100 | border-bottom: .5em solid transparent; 101 | border-right: 0.75em solid #000000; 102 | width: 0; 103 | height: 0; 104 | display: block; 105 | margin: 0 auto; 106 | } 107 | .picker__nav--next:before { 108 | border-right: 0; 109 | border-left: 0.75em solid #000000; 110 | } 111 | .picker__nav--prev:hover, 112 | .picker__nav--next:hover { 113 | cursor: pointer; 114 | color: #000000; 115 | background: #b1dcfb; 116 | } 117 | .picker__nav--disabled, 118 | .picker__nav--disabled:hover, 119 | .picker__nav--disabled:before, 120 | .picker__nav--disabled:before:hover { 121 | cursor: default; 122 | background: none; 123 | border-right-color: #f5f5f5; 124 | border-left-color: #f5f5f5; 125 | } 126 | /** 127 | * The calendar table of dates 128 | */ 129 | .picker__table { 130 | text-align: center; 131 | border-collapse: collapse; 132 | border-spacing: 0; 133 | table-layout: fixed; 134 | font-size: inherit; 135 | width: 100%; 136 | margin-top: .75em; 137 | margin-bottom: .5em; 138 | } 139 | @media (min-height: 33.875em) { 140 | .picker__table { 141 | margin-bottom: .75em; 142 | } 143 | } 144 | .picker__table td { 145 | margin: 0; 146 | padding: 0; 147 | } 148 | /** 149 | * The weekday labels 150 | */ 151 | .picker__weekday { 152 | width: 14.285714286%; 153 | font-size: .75em; 154 | padding-bottom: .25em; 155 | color: #999999; 156 | font-weight: 500; 157 | /* Increase the spacing a tad */ 158 | } 159 | @media (min-height: 33.875em) { 160 | .picker__weekday { 161 | padding-bottom: .5em; 162 | } 163 | } 164 | /** 165 | * The days on the calendar 166 | */ 167 | .picker__day { 168 | padding: .3125em 0; 169 | font-weight: 200; 170 | border: 1px solid transparent; 171 | } 172 | .picker__day--today { 173 | position: relative; 174 | } 175 | .picker__day--today:before { 176 | content: " "; 177 | position: absolute; 178 | top: 2px; 179 | right: 2px; 180 | width: 0; 181 | height: 0; 182 | border-top: 0.5em solid #0059bc; 183 | border-left: .5em solid transparent; 184 | } 185 | .picker__day--disabled:before { 186 | border-top-color: #aaaaaa; 187 | } 188 | .picker__day--outfocus { 189 | color: #dddddd; 190 | } 191 | .picker__day--infocus:hover, 192 | .picker__day--outfocus:hover { 193 | cursor: pointer; 194 | color: #000000; 195 | background: #b1dcfb; 196 | } 197 | .picker__day--highlighted { 198 | border-color: #0089ec; 199 | } 200 | .picker__day--highlighted:hover, 201 | .picker--focused .picker__day--highlighted { 202 | cursor: pointer; 203 | color: #000000; 204 | background: #b1dcfb; 205 | } 206 | .picker__day--selected, 207 | .picker__day--selected:hover, 208 | .picker--focused .picker__day--selected { 209 | background: #0089ec; 210 | color: #ffffff; 211 | } 212 | .picker__day--disabled, 213 | .picker__day--disabled:hover, 214 | .picker--focused .picker__day--disabled { 215 | background: #f5f5f5; 216 | border-color: #f5f5f5; 217 | color: #dddddd; 218 | cursor: default; 219 | } 220 | .picker__day--highlighted.picker__day--disabled, 221 | .picker__day--highlighted.picker__day--disabled:hover { 222 | background: #bbbbbb; 223 | } 224 | /** 225 | * The footer containing the "today", "clear", and "close" buttons. 226 | */ 227 | .picker__footer { 228 | text-align: center; 229 | } 230 | .picker__button--today, 231 | .picker__button--clear, 232 | .picker__button--close { 233 | border: 1px solid #ffffff; 234 | background: #ffffff; 235 | font-size: .8em; 236 | padding: .66em 0; 237 | font-weight: bold; 238 | width: 33%; 239 | display: inline-block; 240 | vertical-align: bottom; 241 | } 242 | .picker__button--today:hover, 243 | .picker__button--clear:hover, 244 | .picker__button--close:hover { 245 | cursor: pointer; 246 | color: #000000; 247 | background: #b1dcfb; 248 | border-bottom-color: #b1dcfb; 249 | } 250 | .picker__button--today:focus, 251 | .picker__button--clear:focus, 252 | .picker__button--close:focus { 253 | background: #b1dcfb; 254 | border-color: #0089ec; 255 | outline: none; 256 | } 257 | .picker__button--today:before, 258 | .picker__button--clear:before, 259 | .picker__button--close:before { 260 | position: relative; 261 | display: inline-block; 262 | height: 0; 263 | } 264 | .picker__button--today:before, 265 | .picker__button--clear:before { 266 | content: " "; 267 | margin-right: .45em; 268 | } 269 | .picker__button--today:before { 270 | top: -0.05em; 271 | width: 0; 272 | border-top: 0.66em solid #0059bc; 273 | border-left: .66em solid transparent; 274 | } 275 | .picker__button--clear:before { 276 | top: -0.25em; 277 | width: .66em; 278 | border-top: 3px solid #ee2200; 279 | } 280 | .picker__button--close:before { 281 | content: "\D7"; 282 | top: -0.1em; 283 | vertical-align: top; 284 | font-size: 1.1em; 285 | margin-right: .35em; 286 | color: #777777; 287 | } 288 | .picker__button--today[disabled], 289 | .picker__button--today[disabled]:hover { 290 | background: #f5f5f5; 291 | border-color: #f5f5f5; 292 | color: #dddddd; 293 | cursor: default; 294 | } 295 | .picker__button--today[disabled]:before { 296 | border-top-color: #aaaaaa; 297 | } 298 | 299 | /* ========================================================================== 300 | $CLASSIC-DATE-PICKER 301 | ========================================================================== */ 302 | -------------------------------------------------------------------------------- /assets/data/agencies.js: -------------------------------------------------------------------------------- 1 | Agencies = { 2 | "names": [ 3 | "Office of the Director of National Intelligence", 4 | "Institute of Museum and Library Services", 5 | "United States International Trade Commission", 6 | "Millennium Challenge Corporation", 7 | "Federal Mediation and Conciliation Service", 8 | "Federal Labor Relations Authority", 9 | "Chemical Safety and Hazard Investigation Board", 10 | "Office of National Drug Control Policy", 11 | "United States International Boundary and Water Commission", 12 | "Federal Energy Regulatory Commission", 13 | "Federal Reserve System", 14 | "American Battle Monuments Commission", 15 | "Armed Forces Retirement Home", 16 | "National Indian Gaming Commission", 17 | "National Transportation Safety Board", 18 | "Postal Regulatory Commission", 19 | "Social Security Administration", 20 | "U.S. Transportation Command", 21 | "Consumer Product Safety Commission", 22 | "Department of Veterans Affairs", 23 | "Selective Service System", 24 | "National Endowment for the Humanities", 25 | "Farm Credit System Insurance Corporation", 26 | "U.S. Agency for International Development", 27 | "Principal Agency FOIA Officer", 28 | "Legal Services Corporation", 29 | "Treasury Inspector General for Tax Administration", 30 | "Federal Communications Commission", 31 | "Committee for Purchase from People Who Are Blind or Severely Disabled", 32 | "United States African Development Foundation", 33 | "Council on Environmental Quality", 34 | "AMTRAK (National Railroad Passenger Corporation)", 35 | "Federal Trade Commission", 36 | "Merit Systems Protection Board", 37 | "Department of Education", 38 | "Commission on Civil Rights", 39 | "Federal Mine Safety and Health Review Commission", 40 | "Office of the Special Trustee", 41 | "Court Services and Offender Supervision Agency", 42 | "Department of Justice", 43 | "Special Inspector General for Afghanistan Reconstruction", 44 | "National Energy Technology Laboratory", 45 | "Office of Personnel Management", 46 | "National Endowment for the Arts", 47 | "Federal Deposit Insurance Corporation", 48 | "General Services Administration", 49 | "Consumer Financial Protection Bureau", 50 | "United States Trade and Development Agency", 51 | "Defense Nuclear Facilities Safety Board", 52 | "United States Copyright Office", 53 | "Office of Special Counsel", 54 | "Office of Government Ethics", 55 | "Farm Credit Administration", 56 | "Tennessee Valley Authority", 57 | "National Archives and Records Administration", 58 | "Federal Maritime Commission", 59 | "Occupational Safety and Health Review Commission", 60 | "National Labor Relations Board", 61 | "Office of the Inspector General", 62 | "Corporation for National and Community Service", 63 | "Environmental Protection Agency", 64 | "National Science Foundation", 65 | "Department of Commerce", 66 | "Federal Retirement Thrift Investment Board", 67 | "Federal Financial Institutions Examination Council", 68 | "Department of Housing and Urban Development", 69 | "Department of Labor", 70 | "Pension Benefit Guaranty Corporation", 71 | "Department of Health and Human Services", 72 | "Nuclear Regulatory Commission", 73 | "Federal Open Market Committee", 74 | "Securities and Exchange Commission", 75 | "Department of Agriculture", 76 | "Central Intelligence Agency", 77 | "Commodity Futures Trading Commission", 78 | "Council of the Inspectors General on Integrity and Efficiency", 79 | "Department of Transportation", 80 | "Federal Housing Finance Agency", 81 | "Surface Transportation Board", 82 | "Office of Inspector General", 83 | "Inter-American Foundation", 84 | "Export-Import Bank of the U.S.", 85 | "Office of Science and Technology Policy", 86 | "Administrative Conference of the United States", 87 | "Department of Homeland Security", 88 | "Office of Management and Budget", 89 | "Broadcasting Board of Governors", 90 | "Office of Navajo and Hopi Indian Relocation", 91 | "Federal Election Commission", 92 | "Office of the United States Trade Representative", 93 | "Recovery Accountablity and Transparency Board", 94 | "Equal Employment Opportunity Commission", 95 | "National Mediation Board", 96 | "Overseas Private Investment Corporation", 97 | "National Capital Planning Commission", 98 | "Small Business Administration" 99 | ], 100 | "slugs": [ 101 | "office-of-the-director-of-national-intelligence", 102 | "institute-of-museum-and-library-services", 103 | "united-states-international-trade-commission", 104 | "millennium-challenge-corporation", 105 | "federal-mediation-and-conciliation-service", 106 | "federal-labor-relations-authority", 107 | "chemical-safety-and-hazard-investigation-board", 108 | "office-of-national-drug-control-policy", 109 | "united-states-international-boundary-and-water-com", 110 | "federal-energy-regulatory-commission", 111 | "federal-reserve-system", 112 | "american-battle-monuments-commission", 113 | "armed-forces-retirement-home", 114 | "national-indian-gaming-commission", 115 | "national-transportation-safety-board", 116 | "postal-regulatory-commission", 117 | "social-security-administration", 118 | "us-transportation-command", 119 | "consumer-product-safety-commission", 120 | "department-of-veterans-affairs", 121 | "selective-service-system", 122 | "national-endowment-for-the-humanities", 123 | "farm-credit-system-insurance-corporation", 124 | "us-agency-for-international-development", 125 | "principal-agency-foia-officer", 126 | "legal-services-corporation", 127 | "treasury-inspector-general-for-tax-administration", 128 | "federal-communications-commission", 129 | "committee-for-purchase-from-people-who-are-blind-o", 130 | "united-states-african-development-foundation", 131 | "council-on-environmental-quality", 132 | "amtrak-national-railroad-passenger-corporation", 133 | "federal-trade-commission", 134 | "merit-systems-protection-board", 135 | "department-of-education", 136 | "commission-on-civil-rights", 137 | "federal-mine-safety-and-health-review-commission", 138 | "office-of-the-special-trustee", 139 | "court-services-and-offender-supervision-agency", 140 | "department-of-justice", 141 | "special-inspector-general-for-afghanistan-reconstr", 142 | "national-energy-technology-laboratory", 143 | "office-of-personnel-management", 144 | "national-endowment-for-the-arts", 145 | "federal-deposit-insurance-corporation", 146 | "general-services-administration", 147 | "consumer-financial-protection-bureau", 148 | "united-states-trade-and-development-agency", 149 | "defense-nuclear-facilities-safety-board", 150 | "united-states-copyright-office", 151 | "office-of-special-counsel", 152 | "office-of-government-ethics", 153 | "farm-credit-administration", 154 | "tennessee-valley-authority", 155 | "national-archives-and-records-administration", 156 | "federal-maritime-commission", 157 | "occupational-safety-and-health-review-commission", 158 | "national-labor-relations-board", 159 | "office-of-the-inspector-general", 160 | "corporation-for-national-and-community-service", 161 | "environmental-protection-agency", 162 | "national-science-foundation", 163 | "department-of-commerce", 164 | "federal-retirement-thrift-investment-board", 165 | "federal-financial-institutions-examination-council", 166 | "department-of-housing-and-urban-development", 167 | "department-of-labor", 168 | "pension-benefit-guaranty-corporation", 169 | "department-of-health-and-human-services", 170 | "nuclear-regulatory-commission", 171 | "federal-open-market-committee", 172 | "securities-and-exchange-commission", 173 | "department-of-agriculture", 174 | "central-intelligence-agency", 175 | "commodity-futures-trading-commission", 176 | "council-of-the-inspectors-general-on-integrity-and", 177 | "department-of-transportation", 178 | "federal-housing-finance-agency", 179 | "surface-transportation-board", 180 | "office-of-inspector-general", 181 | "inter-american-foundation", 182 | "export-import-bank-of-the-us", 183 | "office-of-science-and-technology-policy", 184 | "administrative-conference-of-the-united-states", 185 | "department-of-homeland-security", 186 | "office-of-management-and-budget", 187 | "broadcasting-board-of-governors", 188 | "office-of-navajo-and-hopi-indian-relocation", 189 | "federal-election-commission", 190 | "office-of-the-united-states-trade-representative", 191 | "recovery-accountablity-and-transparency-board", 192 | "equal-employment-opportunity-commission", 193 | "national-mediation-board", 194 | "overseas-private-investment-corporation", 195 | "national-capital-planning-commission", 196 | "small-business-administration" 197 | ], 198 | "by_name": { 199 | "Office of the Director of National Intelligence": "office-of-the-director-of-national-intelligence", 200 | "Institute of Museum and Library Services": "institute-of-museum-and-library-services", 201 | "United States International Trade Commission": "united-states-international-trade-commission", 202 | "Millennium Challenge Corporation": "millennium-challenge-corporation", 203 | "Federal Mediation and Conciliation Service": "federal-mediation-and-conciliation-service", 204 | "Federal Labor Relations Authority": "federal-labor-relations-authority", 205 | "Chemical Safety and Hazard Investigation Board": "chemical-safety-and-hazard-investigation-board", 206 | "Office of National Drug Control Policy": "office-of-national-drug-control-policy", 207 | "United States International Boundary and Water Commission": "united-states-international-boundary-and-water-com", 208 | "Federal Energy Regulatory Commission": "federal-energy-regulatory-commission", 209 | "Federal Reserve System": "federal-reserve-system", 210 | "American Battle Monuments Commission": "american-battle-monuments-commission", 211 | "Armed Forces Retirement Home": "armed-forces-retirement-home", 212 | "National Indian Gaming Commission": "national-indian-gaming-commission", 213 | "National Transportation Safety Board": "national-transportation-safety-board", 214 | "Postal Regulatory Commission": "postal-regulatory-commission", 215 | "Social Security Administration": "social-security-administration", 216 | "U.S. Transportation Command": "us-transportation-command", 217 | "Consumer Product Safety Commission": "consumer-product-safety-commission", 218 | "Department of Veterans Affairs": "department-of-veterans-affairs", 219 | "Selective Service System": "selective-service-system", 220 | "National Endowment for the Humanities": "national-endowment-for-the-humanities", 221 | "Farm Credit System Insurance Corporation": "farm-credit-system-insurance-corporation", 222 | "U.S. Agency for International Development": "us-agency-for-international-development", 223 | "Principal Agency FOIA Officer": "principal-agency-foia-officer", 224 | "Legal Services Corporation": "legal-services-corporation", 225 | "Treasury Inspector General for Tax Administration": "treasury-inspector-general-for-tax-administration", 226 | "Federal Communications Commission": "federal-communications-commission", 227 | "Committee for Purchase from People Who Are Blind or Severely Disabled": "committee-for-purchase-from-people-who-are-blind-o", 228 | "United States African Development Foundation": "united-states-african-development-foundation", 229 | "Council on Environmental Quality": "council-on-environmental-quality", 230 | "AMTRAK (National Railroad Passenger Corporation)": "amtrak-national-railroad-passenger-corporation", 231 | "Federal Trade Commission": "federal-trade-commission", 232 | "Merit Systems Protection Board": "merit-systems-protection-board", 233 | "Department of Education": "department-of-education", 234 | "Commission on Civil Rights": "commission-on-civil-rights", 235 | "Federal Mine Safety and Health Review Commission": "federal-mine-safety-and-health-review-commission", 236 | "Office of the Special Trustee": "office-of-the-special-trustee", 237 | "Court Services and Offender Supervision Agency": "court-services-and-offender-supervision-agency", 238 | "Department of Justice": "department-of-justice", 239 | "Special Inspector General for Afghanistan Reconstruction": "special-inspector-general-for-afghanistan-reconstr", 240 | "National Energy Technology Laboratory": "national-energy-technology-laboratory", 241 | "Office of Personnel Management": "office-of-personnel-management", 242 | "National Endowment for the Arts": "national-endowment-for-the-arts", 243 | "Federal Deposit Insurance Corporation": "federal-deposit-insurance-corporation", 244 | "General Services Administration": "general-services-administration", 245 | "Consumer Financial Protection Bureau": "consumer-financial-protection-bureau", 246 | "United States Trade and Development Agency": "united-states-trade-and-development-agency", 247 | "Defense Nuclear Facilities Safety Board": "defense-nuclear-facilities-safety-board", 248 | "United States Copyright Office": "united-states-copyright-office", 249 | "Office of Special Counsel": "office-of-special-counsel", 250 | "Office of Government Ethics": "office-of-government-ethics", 251 | "Farm Credit Administration": "farm-credit-administration", 252 | "Tennessee Valley Authority": "tennessee-valley-authority", 253 | "National Archives and Records Administration": "national-archives-and-records-administration", 254 | "Federal Maritime Commission": "federal-maritime-commission", 255 | "Occupational Safety and Health Review Commission": "occupational-safety-and-health-review-commission", 256 | "National Labor Relations Board": "national-labor-relations-board", 257 | "Office of the Inspector General": "office-of-the-inspector-general", 258 | "Corporation for National and Community Service": "corporation-for-national-and-community-service", 259 | "Environmental Protection Agency": "environmental-protection-agency", 260 | "National Science Foundation": "national-science-foundation", 261 | "Department of Commerce": "department-of-commerce", 262 | "Federal Retirement Thrift Investment Board": "federal-retirement-thrift-investment-board", 263 | "Federal Financial Institutions Examination Council": "federal-financial-institutions-examination-council", 264 | "Department of Housing and Urban Development": "department-of-housing-and-urban-development", 265 | "Department of Labor": "department-of-labor", 266 | "Pension Benefit Guaranty Corporation": "pension-benefit-guaranty-corporation", 267 | "Department of Health and Human Services": "department-of-health-and-human-services", 268 | "Nuclear Regulatory Commission": "nuclear-regulatory-commission", 269 | "Federal Open Market Committee": "federal-open-market-committee", 270 | "Securities and Exchange Commission": "securities-and-exchange-commission", 271 | "Department of Agriculture": "department-of-agriculture", 272 | "Central Intelligence Agency": "central-intelligence-agency", 273 | "Commodity Futures Trading Commission": "commodity-futures-trading-commission", 274 | "Council of the Inspectors General on Integrity and Efficiency": "council-of-the-inspectors-general-on-integrity-and", 275 | "Department of Transportation": "department-of-transportation", 276 | "Federal Housing Finance Agency": "federal-housing-finance-agency", 277 | "Surface Transportation Board": "surface-transportation-board", 278 | "Office of Inspector General": "office-of-inspector-general", 279 | "Inter-American Foundation": "inter-american-foundation", 280 | "Export-Import Bank of the U.S.": "export-import-bank-of-the-us", 281 | "Office of Science and Technology Policy": "office-of-science-and-technology-policy", 282 | "Administrative Conference of the United States": "administrative-conference-of-the-united-states", 283 | "Department of Homeland Security": "department-of-homeland-security", 284 | "Office of Management and Budget": "office-of-management-and-budget", 285 | "Broadcasting Board of Governors": "broadcasting-board-of-governors", 286 | "Office of Navajo and Hopi Indian Relocation": "office-of-navajo-and-hopi-indian-relocation", 287 | "Federal Election Commission": "federal-election-commission", 288 | "Office of the United States Trade Representative": "office-of-the-united-states-trade-representative", 289 | "Recovery Accountablity and Transparency Board": "recovery-accountablity-and-transparency-board", 290 | "Equal Employment Opportunity Commission": "equal-employment-opportunity-commission", 291 | "National Mediation Board": "national-mediation-board", 292 | "Overseas Private Investment Corporation": "overseas-private-investment-corporation", 293 | "National Capital Planning Commission": "national-capital-planning-commission", 294 | "Small Business Administration": "small-business-administration" 295 | } 296 | } -------------------------------------------------------------------------------- /assets/css/pure-min-0.5.0.css: -------------------------------------------------------------------------------- 1 | /*! 2 | Pure v0.5.0 3 | Copyright 2014 Yahoo! Inc. All rights reserved. 4 | Licensed under the BSD License. 5 | https://github.com/yui/pure/blob/master/LICENSE.md 6 | */ 7 | /*! 8 | normalize.css v1.1.3 | MIT License | git.io/normalize 9 | Copyright (c) Nicolas Gallagher and Jonathan Neal 10 | */ 11 | /*! normalize.css v1.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}[hidden]{display:none!important}.pure-img{max-width:100%;height:auto;display:block}.pure-g{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-flex;-webkit-flex-flow:row wrap;display:-ms-flexbox;-ms-flex-flow:row wrap}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class *="pure-u"]{font-family:sans-serif}.pure-u-1,.pure-u-1-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-5-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-2-24,.pure-u-3-24,.pure-u-4-24,.pure-u-5-24,.pure-u-6-24,.pure-u-7-24,.pure-u-8-24,.pure-u-9-24,.pure-u-10-24,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1-24{width:4.1667%;*width:4.1357%}.pure-u-1-12,.pure-u-2-24{width:8.3333%;*width:8.3023%}.pure-u-1-8,.pure-u-3-24{width:12.5%;*width:12.469%}.pure-u-1-6,.pure-u-4-24{width:16.6667%;*width:16.6357%}.pure-u-1-5{width:20%;*width:19.969%}.pure-u-5-24{width:20.8333%;*width:20.8023%}.pure-u-1-4,.pure-u-6-24{width:25%;*width:24.969%}.pure-u-7-24{width:29.1667%;*width:29.1357%}.pure-u-1-3,.pure-u-8-24{width:33.3333%;*width:33.3023%}.pure-u-3-8,.pure-u-9-24{width:37.5%;*width:37.469%}.pure-u-2-5{width:40%;*width:39.969%}.pure-u-5-12,.pure-u-10-24{width:41.6667%;*width:41.6357%}.pure-u-11-24{width:45.8333%;*width:45.8023%}.pure-u-1-2,.pure-u-12-24{width:50%;*width:49.969%}.pure-u-13-24{width:54.1667%;*width:54.1357%}.pure-u-7-12,.pure-u-14-24{width:58.3333%;*width:58.3023%}.pure-u-3-5{width:60%;*width:59.969%}.pure-u-5-8,.pure-u-15-24{width:62.5%;*width:62.469%}.pure-u-2-3,.pure-u-16-24{width:66.6667%;*width:66.6357%}.pure-u-17-24{width:70.8333%;*width:70.8023%}.pure-u-3-4,.pure-u-18-24{width:75%;*width:74.969%}.pure-u-19-24{width:79.1667%;*width:79.1357%}.pure-u-4-5{width:80%;*width:79.969%}.pure-u-5-6,.pure-u-20-24{width:83.3333%;*width:83.3023%}.pure-u-7-8,.pure-u-21-24{width:87.5%;*width:87.469%}.pure-u-11-12,.pure-u-22-24{width:91.6667%;*width:91.6357%}.pure-u-23-24{width:95.8333%;*width:95.8023%}.pure-u-1,.pure-u-1-1,.pure-u-5-5,.pure-u-24-24{width:100%}.pure-button{display:inline-block;*display:inline;zoom:1;line-height:normal;white-space:nowrap;vertical-align:baseline;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button{font-family:inherit;font-size:100%;*font-size:90%;*overflow:visible;padding:.5em 1em;color:#444;color:rgba(0,0,0,.8);*color:#444;border:1px solid #999;border:0 rgba(0,0,0,0);background-color:#E6E6E6;text-decoration:none;border-radius:2px}.pure-button-hover,.pure-button:hover,.pure-button:focus{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000', GradientType=0);background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),color-stop(40%,rgba(0,0,0,.05)),to(rgba(0,0,0,.1)));background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:-moz-linear-gradient(top,rgba(0,0,0,.05) 0,rgba(0,0,0,.1));background-image:-o-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset}.pure-button[disabled],.pure-button-disabled,.pure-button-disabled:hover,.pure-button-disabled:focus,.pure-button-disabled:active{border:0;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);filter:alpha(opacity=40);-khtml-opacity:.4;-moz-opacity:.4;opacity:.4;cursor:not-allowed;box-shadow:none}.pure-button-hidden{display:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pure-form input:not([type]){padding:.5em .6em;display:inline-block;border:1px solid #ccc;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pure-form input[type=color]{padding:.2em .5em}.pure-form input[type=text]:focus,.pure-form input[type=password]:focus,.pure-form input[type=email]:focus,.pure-form input[type=url]:focus,.pure-form input[type=date]:focus,.pure-form input[type=month]:focus,.pure-form input[type=time]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=week]:focus,.pure-form input[type=number]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=color]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input:not([type]):focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus,.pure-form input[type=checkbox]:focus{outline:thin dotted #333;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=text][disabled],.pure-form input[type=password][disabled],.pure-form input[type=email][disabled],.pure-form input[type=url][disabled],.pure-form input[type=date][disabled],.pure-form input[type=month][disabled],.pure-form input[type=time][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=week][disabled],.pure-form input[type=number][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=color][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input:not([type])[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form textarea:focus:invalid,.pure-form select:focus:invalid{color:#b94a48;border-color:#ee5f5b}.pure-form input:focus:invalid:focus,.pure-form textarea:focus:invalid:focus,.pure-form select:focus:invalid:focus{border-color:#e9322d}.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus,.pure-form input[type=checkbox]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=text],.pure-form-stacked input[type=password],.pure-form-stacked input[type=email],.pure-form-stacked input[type=url],.pure-form-stacked input[type=date],.pure-form-stacked input[type=month],.pure-form-stacked input[type=time],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=week],.pure-form-stacked input[type=number],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=color],.pure-form-stacked select,.pure-form-stacked label,.pure-form-stacked textarea{display:block;margin:.25em 0}.pure-form-stacked input:not([type]){display:block;margin:.25em 0}.pure-form-aligned input,.pure-form-aligned textarea,.pure-form-aligned select,.pure-form-aligned .pure-help-inline,.pure-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.pure-form-aligned textarea{vertical-align:top}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 10em}.pure-form input.pure-input-rounded,.pure-form .pure-input-rounded{border-radius:2em;padding:.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input{display:block;padding:10px;margin:0;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus{z-index:2}.pure-form .pure-group input:first-child{top:1px;border-radius:4px 4px 0 0}.pure-form .pure-group input:last-child{top:-2px;border-radius:0 0 4px 4px}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form .pure-help-inline,.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:.875em}.pure-form-message{display:block;color:#666;font-size:.875em}@media only screen and (max-width :480px){.pure-form button[type=submit]{margin:.7em 0 0}.pure-form input:not([type]),.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form label{margin-bottom:.3em;display:block}.pure-group input:not([type]),.pure-group input[type=text],.pure-group input[type=password],.pure-group input[type=email],.pure-group input[type=url],.pure-group input[type=date],.pure-group input[type=month],.pure-group input[type=time],.pure-group input[type=datetime],.pure-group input[type=datetime-local],.pure-group input[type=week],.pure-group input[type=number],.pure-group input[type=search],.pure-group input[type=tel],.pure-group input[type=color]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0}.pure-form .pure-help-inline,.pure-form-message-inline,.pure-form-message{display:block;font-size:.75em;padding:.2em 0 .8em}}.pure-menu ul{position:absolute;visibility:hidden}.pure-menu.pure-menu-open{visibility:visible;z-index:2;width:100%}.pure-menu ul{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.pure-menu>ul{position:relative}.pure-menu-open>ul{left:0;top:0;visibility:visible}.pure-menu-open>ul:focus{outline:0}.pure-menu li{position:relative}.pure-menu a,.pure-menu .pure-menu-heading{display:block;color:inherit;line-height:1.5em;padding:5px 20px;text-decoration:none;white-space:nowrap}.pure-menu.pure-menu-horizontal>.pure-menu-heading{display:inline-block;*display:inline;zoom:1;margin:0;vertical-align:middle}.pure-menu.pure-menu-horizontal>ul{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu li a{padding:5px 20px}.pure-menu-can-have-children>.pure-menu-label:after{content:'\25B8';float:right;font-family:'Lucida Grande','Lucida Sans Unicode','DejaVu Sans',sans-serif;margin-right:-20px;margin-top:-1px}.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px 2px;overflow:hidden}.pure-menu-hidden{display:none}.pure-menu-fixed{position:fixed;top:0;left:0;width:100%}.pure-menu-horizontal li{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-horizontal li li{display:block}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{content:"\25BE"}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-horizontal li.pure-menu-separator{height:50%;width:1px;margin:0 7px}.pure-menu-horizontal li li.pure-menu-separator{height:1px;width:auto;margin:7px 2px}.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{background:#fff;border:1px solid #b7b7b7}.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{border:0}.pure-menu a{border:1px solid transparent;border-left:0;border-right:0}.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{color:#777}.pure-menu .pure-menu-can-have-children>li:hover:after{color:#fff}.pure-menu .pure-menu-open{background:#dedede}.pure-menu li a:hover,.pure-menu li a:focus{background:#eee}.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{background:#fff;color:#bfbfbf}.pure-menu .pure-menu-disabled>a{background-image:none;border-color:transparent;cursor:default}.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{color:#bfbfbf}.pure-menu .pure-menu-heading{color:#565d64;text-transform:uppercase;font-size:90%;margin-top:.5em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dfdfdf}.pure-menu .pure-menu-selected a{color:#000}.pure-menu.pure-menu-open.pure-menu-fixed{border:0;border-bottom:1px solid #b7b7b7}.pure-paginator{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;list-style:none;margin:0;padding:0}.opera-only :-o-prefocus,.pure-paginator{word-spacing:-.43em}.pure-paginator li{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-paginator .pure-button{border-radius:0;padding:.8em 1.4em;vertical-align:top;height:1.1em}.pure-paginator .pure-button:focus,.pure-paginator .pure-button:active{outline-style:none}.pure-paginator .prev,.pure-paginator .next{color:#C0C1C3;text-shadow:0 -1px 0 rgba(0,0,0,.45)}.pure-paginator .prev{border-radius:2px 0 0 2px}.pure-paginator .next{border-radius:0 2px 2px 0}@media (max-width:480px){.pure-menu-horizontal{width:100%}.pure-menu-children li{display:block;border-bottom:1px solid #000}}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:.5em 1em}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0} -------------------------------------------------------------------------------- /assets/js/typeahead.bundle.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * typeahead.js 0.10.5 3 | * https://github.com/twitter/typeahead.js 4 | * Copyright 2013-2014 Twitter, Inc. and other contributors; Licensed MIT 5 | */ 6 | 7 | !function(a){var b=function(){"use strict";return{isMsie:function(){return/(msie|trident)/i.test(navigator.userAgent)?navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]:!1},isBlankString:function(a){return!a||/^\s*$/.test(a)},escapeRegExChars:function(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(a){return"string"==typeof a},isNumber:function(a){return"number"==typeof a},isArray:a.isArray,isFunction:a.isFunction,isObject:a.isPlainObject,isUndefined:function(a){return"undefined"==typeof a},toStr:function(a){return b.isUndefined(a)||null===a?"":a+""},bind:a.proxy,each:function(b,c){function d(a,b){return c(b,a)}a.each(b,d)},map:a.map,filter:a.grep,every:function(b,c){var d=!0;return b?(a.each(b,function(a,e){return(d=c.call(null,e,a,b))?void 0:!1}),!!d):d},some:function(b,c){var d=!1;return b?(a.each(b,function(a,e){return(d=c.call(null,e,a,b))?!1:void 0}),!!d):d},mixin:a.extend,getUniqueId:function(){var a=0;return function(){return a++}}(),templatify:function(b){function c(){return String(b)}return a.isFunction(b)?b:c},defer:function(a){setTimeout(a,0)},debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},throttle:function(a,b){var c,d,e,f,g,h;return g=0,h=function(){g=new Date,e=null,f=a.apply(c,d)},function(){var i=new Date,j=b-(i-g);return c=this,d=arguments,0>=j?(clearTimeout(e),e=null,g=i,f=a.apply(c,d)):e||(e=setTimeout(h,j)),f}},noop:function(){}}}(),c="0.10.5",d=function(){"use strict";function a(a){return a=b.toStr(a),a?a.split(/\s+/):[]}function c(a){return a=b.toStr(a),a?a.split(/\W+/):[]}function d(a){return function(){var c=[].slice.call(arguments,0);return function(d){var e=[];return b.each(c,function(c){e=e.concat(a(b.toStr(d[c])))}),e}}}return{nonword:c,whitespace:a,obj:{nonword:d(c),whitespace:d(a)}}}(),e=function(){"use strict";function c(c){this.maxSize=b.isNumber(c)?c:100,this.reset(),this.maxSize<=0&&(this.set=this.get=a.noop)}function d(){this.head=this.tail=null}function e(a,b){this.key=a,this.val=b,this.prev=this.next=null}return b.mixin(c.prototype,{set:function(a,b){var c,d=this.list.tail;this.size>=this.maxSize&&(this.list.remove(d),delete this.hash[d.key]),(c=this.hash[a])?(c.val=b,this.list.moveToFront(c)):(c=new e(a,b),this.list.add(c),this.hash[a]=c,this.size++)},get:function(a){var b=this.hash[a];return b?(this.list.moveToFront(b),b.val):void 0},reset:function(){this.size=0,this.hash={},this.list=new d}}),b.mixin(d.prototype,{add:function(a){this.head&&(a.next=this.head,this.head.prev=a),this.head=a,this.tail=this.tail||a},remove:function(a){a.prev?a.prev.next=a.next:this.head=a.next,a.next?a.next.prev=a.prev:this.tail=a.prev},moveToFront:function(a){this.remove(a),this.add(a)}}),c}(),f=function(){"use strict";function a(a){this.prefix=["__",a,"__"].join(""),this.ttlKey="__ttl__",this.keyMatcher=new RegExp("^"+b.escapeRegExChars(this.prefix))}function c(){return(new Date).getTime()}function d(a){return JSON.stringify(b.isUndefined(a)?null:a)}function e(a){return JSON.parse(a)}var f,g;try{f=window.localStorage,f.setItem("~~~","!"),f.removeItem("~~~")}catch(h){f=null}return g=f&&window.JSON?{_prefix:function(a){return this.prefix+a},_ttlKey:function(a){return this._prefix(a)+this.ttlKey},get:function(a){return this.isExpired(a)&&this.remove(a),e(f.getItem(this._prefix(a)))},set:function(a,e,g){return b.isNumber(g)?f.setItem(this._ttlKey(a),d(c()+g)):f.removeItem(this._ttlKey(a)),f.setItem(this._prefix(a),d(e))},remove:function(a){return f.removeItem(this._ttlKey(a)),f.removeItem(this._prefix(a)),this},clear:function(){var a,b,c=[],d=f.length;for(a=0;d>a;a++)(b=f.key(a)).match(this.keyMatcher)&&c.push(b.replace(this.keyMatcher,""));for(a=c.length;a--;)this.remove(c[a]);return this},isExpired:function(a){var d=e(f.getItem(this._ttlKey(a)));return b.isNumber(d)&&c()>d?!0:!1}}:{get:b.noop,set:b.noop,remove:b.noop,clear:b.noop,isExpired:b.noop},b.mixin(a.prototype,g),a}(),g=function(){"use strict";function c(b){b=b||{},this.cancelled=!1,this.lastUrl=null,this._send=b.transport?d(b.transport):a.ajax,this._get=b.rateLimiter?b.rateLimiter(this._get):this._get,this._cache=b.cache===!1?new e(0):i}function d(c){return function(d,e){function f(a){b.defer(function(){h.resolve(a)})}function g(a){b.defer(function(){h.reject(a)})}var h=a.Deferred();return c(d,e,f,g),h}}var f=0,g={},h=6,i=new e(10);return c.setMaxPendingRequests=function(a){h=a},c.resetCache=function(){i.reset()},b.mixin(c.prototype,{_get:function(a,b,c){function d(b){c&&c(null,b),k._cache.set(a,b)}function e(){c&&c(!0)}function i(){f--,delete g[a],k.onDeckRequestArgs&&(k._get.apply(k,k.onDeckRequestArgs),k.onDeckRequestArgs=null)}var j,k=this;this.cancelled||a!==this.lastUrl||((j=g[a])?j.done(d).fail(e):h>f?(f++,g[a]=this._send(a,b).done(d).fail(e).always(i)):this.onDeckRequestArgs=[].slice.call(arguments,0))},get:function(a,c,d){var e;return b.isFunction(c)&&(d=c,c={}),this.cancelled=!1,this.lastUrl=a,(e=this._cache.get(a))?b.defer(function(){d&&d(null,e)}):this._get(a,c,d),!!e},cancel:function(){this.cancelled=!0}}),c}(),h=function(){"use strict";function c(b){b=b||{},b.datumTokenizer&&b.queryTokenizer||a.error("datumTokenizer and queryTokenizer are both required"),this.datumTokenizer=b.datumTokenizer,this.queryTokenizer=b.queryTokenizer,this.reset()}function d(a){return a=b.filter(a,function(a){return!!a}),a=b.map(a,function(a){return a.toLowerCase()})}function e(){return{ids:[],children:{}}}function f(a){for(var b={},c=[],d=0,e=a.length;e>d;d++)b[a[d]]||(b[a[d]]=!0,c.push(a[d]));return c}function g(a,b){function c(a,b){return a-b}var d=0,e=0,f=[];a=a.sort(c),b=b.sort(c);for(var g=a.length,h=b.length;g>d&&h>e;)a[d]b[e]?e++:(f.push(a[d]),d++,e++);return f}return b.mixin(c.prototype,{bootstrap:function(a){this.datums=a.datums,this.trie=a.trie},add:function(a){var c=this;a=b.isArray(a)?a:[a],b.each(a,function(a){var f,g;f=c.datums.push(a)-1,g=d(c.datumTokenizer(a)),b.each(g,function(a){var b,d,g;for(b=c.trie,d=a.split("");g=d.shift();)b=b.children[g]||(b.children[g]=e()),b.ids.push(f)})})},get:function(a){var c,e,h=this;return c=d(this.queryTokenizer(a)),b.each(c,function(a){var b,c,d,f;if(e&&0===e.length)return!1;for(b=h.trie,c=a.split("");b&&(d=c.shift());)b=b.children[d];return b&&0===c.length?(f=b.ids.slice(0),void(e=e?g(e,f):f)):(e=[],!1)}),e?b.map(f(e),function(a){return h.datums[a]}):[]},reset:function(){this.datums=[],this.trie=e()},serialize:function(){return{datums:this.datums,trie:this.trie}}}),c}(),i=function(){"use strict";function d(a){return a.local||null}function e(d){var e,f;return f={url:null,thumbprint:"",ttl:864e5,filter:null,ajax:{}},(e=d.prefetch||null)&&(e=b.isString(e)?{url:e}:e,e=b.mixin(f,e),e.thumbprint=c+e.thumbprint,e.ajax.type=e.ajax.type||"GET",e.ajax.dataType=e.ajax.dataType||"json",!e.url&&a.error("prefetch requires url to be set")),e}function f(c){function d(a){return function(c){return b.debounce(c,a)}}function e(a){return function(c){return b.throttle(c,a)}}var f,g;return g={url:null,cache:!0,wildcard:"%QUERY",replace:null,rateLimitBy:"debounce",rateLimitWait:300,send:null,filter:null,ajax:{}},(f=c.remote||null)&&(f=b.isString(f)?{url:f}:f,f=b.mixin(g,f),f.rateLimiter=/^throttle$/i.test(f.rateLimitBy)?e(f.rateLimitWait):d(f.rateLimitWait),f.ajax.type=f.ajax.type||"GET",f.ajax.dataType=f.ajax.dataType||"json",delete f.rateLimitBy,delete f.rateLimitWait,!f.url&&a.error("remote requires url to be set")),f}return{local:d,prefetch:e,remote:f}}();!function(c){"use strict";function e(b){b&&(b.local||b.prefetch||b.remote)||a.error("one of local, prefetch, or remote is required"),this.limit=b.limit||5,this.sorter=j(b.sorter),this.dupDetector=b.dupDetector||k,this.local=i.local(b),this.prefetch=i.prefetch(b),this.remote=i.remote(b),this.cacheKey=this.prefetch?this.prefetch.cacheKey||this.prefetch.url:null,this.index=new h({datumTokenizer:b.datumTokenizer,queryTokenizer:b.queryTokenizer}),this.storage=this.cacheKey?new f(this.cacheKey):null}function j(a){function c(b){return b.sort(a)}function d(a){return a}return b.isFunction(a)?c:d}function k(){return!1}var l,m;return l=c.Bloodhound,m={data:"data",protocol:"protocol",thumbprint:"thumbprint"},c.Bloodhound=e,e.noConflict=function(){return c.Bloodhound=l,e},e.tokenizers=d,b.mixin(e.prototype,{_loadPrefetch:function(b){function c(a){f.clear(),f.add(b.filter?b.filter(a):a),f._saveToStorage(f.index.serialize(),b.thumbprint,b.ttl)}var d,e,f=this;return(d=this._readFromStorage(b.thumbprint))?(this.index.bootstrap(d),e=a.Deferred().resolve()):e=a.ajax(b.url,b.ajax).done(c),e},_getFromRemote:function(a,b){function c(a,c){b(a?[]:f.remote.filter?f.remote.filter(c):c)}var d,e,f=this;if(this.transport)return a=a||"",e=encodeURIComponent(a),d=this.remote.replace?this.remote.replace(this.remote.url,a):this.remote.url.replace(this.remote.wildcard,e),this.transport.get(d,this.remote.ajax,c)},_cancelLastRemoteRequest:function(){this.transport&&this.transport.cancel()},_saveToStorage:function(a,b,c){this.storage&&(this.storage.set(m.data,a,c),this.storage.set(m.protocol,location.protocol,c),this.storage.set(m.thumbprint,b,c))},_readFromStorage:function(a){var b,c={};return this.storage&&(c.data=this.storage.get(m.data),c.protocol=this.storage.get(m.protocol),c.thumbprint=this.storage.get(m.thumbprint)),b=c.thumbprint!==a||c.protocol!==location.protocol,c.data&&!b?c.data:null},_initialize:function(){function c(){e.add(b.isFunction(f)?f():f)}var d,e=this,f=this.local;return d=this.prefetch?this._loadPrefetch(this.prefetch):a.Deferred().resolve(),f&&d.done(c),this.transport=this.remote?new g(this.remote):null,this.initPromise=d.promise()},initialize:function(a){return!this.initPromise||a?this._initialize():this.initPromise},add:function(a){this.index.add(a)},get:function(a,c){function d(a){var d=f.slice(0);b.each(a,function(a){var c;return c=b.some(d,function(b){return e.dupDetector(a,b)}),!c&&d.push(a),d.length0||!this.transport)&&c&&c(f)},clear:function(){this.index.reset()},clearPrefetchCache:function(){this.storage&&this.storage.clear()},clearRemoteCache:function(){this.transport&&g.resetCache()},ttAdapter:function(){return b.bind(this.get,this)}}),e}(this);var j=function(){return{wrapper:'',dropdown:'',dataset:'
',suggestions:'',suggestion:'
'}}(),k=function(){"use strict";var a={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:" 0"}};return b.isMsie()&&b.mixin(a.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),b.isMsie()&&b.isMsie()<=7&&b.mixin(a.input,{marginTop:"-1px"}),a}(),l=function(){"use strict";function c(b){b&&b.el||a.error("EventBus initialized without el"),this.$el=a(b.el)}var d="typeahead:";return b.mixin(c.prototype,{trigger:function(a){var b=[].slice.call(arguments,1);this.$el.trigger(d+a,b)}}),c}(),m=function(){"use strict";function a(a,b,c,d){var e;if(!c)return this;for(b=b.split(i),c=d?h(c,d):c,this._callbacks=this._callbacks||{};e=b.shift();)this._callbacks[e]=this._callbacks[e]||{sync:[],async:[]},this._callbacks[e][a].push(c);return this}function b(b,c,d){return a.call(this,"async",b,c,d)}function c(b,c,d){return a.call(this,"sync",b,c,d)}function d(a){var b;if(!this._callbacks)return this;for(a=a.split(i);b=a.shift();)delete this._callbacks[b];return this}function e(a){var b,c,d,e,g;if(!this._callbacks)return this;for(a=a.split(i),d=[].slice.call(arguments,1);(b=a.shift())&&(c=this._callbacks[b]);)e=f(c.sync,this,[b].concat(d)),g=f(c.async,this,[b].concat(d)),e()&&j(g);return this}function f(a,b,c){function d(){for(var d,e=0,f=a.length;!d&&f>e;e+=1)d=a[e].apply(b,c)===!1;return!d}return d}function g(){var a;return a=window.setImmediate?function(a){setImmediate(function(){a()})}:function(a){setTimeout(function(){a()},0)}}function h(a,b){return a.bind?a.bind(b):function(){a.apply(b,[].slice.call(arguments,0))}}var i=/\s+/,j=g();return{onSync:c,onAsync:b,off:d,trigger:e}}(),n=function(a){"use strict";function c(a,c,d){for(var e,f=[],g=0,h=a.length;h>g;g++)f.push(b.escapeRegExChars(a[g]));return e=d?"\\b("+f.join("|")+")\\b":"("+f.join("|")+")",c?new RegExp(e):new RegExp(e,"i")}var d={node:null,pattern:null,tagName:"strong",className:null,wordsOnly:!1,caseSensitive:!1};return function(e){function f(b){var c,d,f;return(c=h.exec(b.data))&&(f=a.createElement(e.tagName),e.className&&(f.className=e.className),d=b.splitText(c.index),d.splitText(c[0].length),f.appendChild(d.cloneNode(!0)),b.parentNode.replaceChild(f,d)),!!c}function g(a,b){for(var c,d=3,e=0;e