diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 09c2a9328..000000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.psd -node_modules - -config.codekit diff --git a/CNAME b/CNAME deleted file mode 100644 index 4da249a3a..000000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -old.battleforthenet.com diff --git a/Gruntfile.js b/Gruntfile.js deleted file mode 100755 index 7cf143b69..000000000 --- a/Gruntfile.js +++ /dev/null @@ -1,47 +0,0 @@ -module.exports = function(grunt) { - grunt.initConfig({ - uglify : { - js: { - files: { - 'widget.min.js' : [ 'widget.js' ], - 'iframe/js/min/modal.min.js' : [ 'iframe/js/modal.js' ], - 'iframe/js/min/banner.min.js' : [ 'iframe/js/banner.js' ], - 'iframe/js/min/common.min.js' : [ 'iframe/js/common.js' ] - } - } - }, - less: { - development: { - options: { - compress: true, - yuicompress: true, - optimization: 2 - }, - files: { - // target.css file: source.less file - "css/battleforthenet.css": "less/css/battleforthenet.less" - } - } - }, - watch: { - styles: { - files: [ - 'less/css/battleforthenet.less' - ], // which files to watch - tasks: [ - 'less' - ], - options: { - nospawn: true, - debounceDelay: 250 - } - } - } - }); - - grunt.loadNpmTasks('grunt-contrib-less'); - grunt.loadNpmTasks('grunt-contrib-watch'); - // grunt.loadNpmTasks('grunt-contrib-uglify'); - - grunt.registerTask('default', ['watch']); -}; \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100755 index c225954ab..000000000 --- a/README.md +++ /dev/null @@ -1,103 +0,0 @@ -Battle for the Net. -------------------- - -* **This is the source code for [battleforthenet.com][1]!** - -Don't let the FCC kill net neutrality! The Battle for the Net is a -collaboration between [Fight for the Future][4], [Demand Progress][5] and a -coalition of people and companies who care about keeping the Internet free. -If you have a web site, you can get involved by embedding our FCC Contact -Form. Or, if you have technical skills and time to volunteer, you can help us -win one of the biggest fights for Internet freedom EVER! - - -### Embed our FCC Contact Form - -We've created a form that lets people directly contact the FCC to comment on -their ["14-28 Protecting and Promoting the Open Internet"][2] proposal, -which could actually _destroy_ the Internet by allowing ISPs to extort money -from web sites and startups. - -If you want to embed our contact form, use the following code: (See it in -action at **[netneutrality.com][6]!**) - - - - -### Contributing to our code - -We are looking for skilled web developers to help us build the front page on -our [battleforthenet.com][1] site. You can see our code right in this Github -repo by switching to the _gh_pages_ branch, and you can see the work we need -done on our **[Battle for the Net Trello board][3]!** - -If you're interested in volunteering, contact or -check out https://fightforthefuture.github.io/volunteers for more information -about volunteering. - -### A note about Less for CSS - -Our styles are written in **[Less][7]**, a pre-processor language that gets -compiled to CSS. All of the styles for the site live in - - ./less/css/battleforthenet.less - - => WHICH COMPILES TO => - - ./css/battleforthenet.css - -So to do this, via the command line, you would use the `lessc` command with the -`-x` option (to minify). Example: - - lessc ./less/css/battleforthenet.less -x > ./css/battleforthenet.css - -There are also GUI utilities, such as [WinLess][8] that will monitor your less -files for changes and automatically compile to the location of your choice. -This is useful if you make a lot of style edits or don't want to manually -recompile after each one. - -Two more things to note about our Less implementation: - -1. Only the `less/css/battleforthenet.less` file needs to be edited. The other - .less files in the project are automatically included during compilation. - -2. The compiled, minified `css/battleforthenet.css` **WILL CONFLICT** each time - a git pull comes down with style changes from another commit. Don't worry. - Just compile what's in the latest `less/css/battleforthenet.less` file and - commit the resulting .css file to resolve the conflict. - -### Grunt: an easy way of compiling Less to CSS - -If you're having trouble compiling the Less code (seems to be an issue for -developers on OS X), consider using Grunt. This will always be the most reliable -way, but requires using terminal. Like the WinLess tool, Grunt can watch for -changes to the battleforthenet.less file and automatically minify and compile. - -**Installing Grunt** - -1. You must already have Node.js and npm installed. - [**See this post**][9] for OS X installation instructions. -2. Open a terminal and `cd` to your project directory -3. Enter `npm install` and wait. That's it! - -**Using Grunt** - -1. Open a terminal and `cd` to your project directory -2. Enter `grunt` -3. Grunt will watch for file changes to battleforthenet.less and auto-compile. - - - -[1]: https://www.battleforthenet.com -[2]: http://www.fcc.gov/comments -[3]: https://trello.com/b/sAJITt1g/battle-for-the-net -[4]: https://www.fightforthefuture.org -[5]: http://www.demandprogress.org -[6]: http://www.netneutrality.com -[7]: http://lesscss.org/ -[8]: http://winless.org/ -[9]: http://coolestguidesontheplanet.com/installing-node-js-osx-10-9-mavericks/ diff --git a/actions.js b/actions.js deleted file mode 100755 index 3926cf304..000000000 --- a/actions.js +++ /dev/null @@ -1,205 +0,0 @@ -OAP.jsonp({ - "org": { - "name": "Battle for the Net", - "description": "Fight for the Future is dedicated to protecting and expanding the Internet's transformative power in our lives by creating civic campaigns that are engaging for millions of people. Alongside internet users everywhere we beat back attempts to limit our basic rights and freedoms, and empower people to demand technology (and policy) that serves their interests. Activating the internet for the public good can only lead to a more vibrant and awesome world. More coming soon.", - "url": "https://www.battleforthenet.com", - "privacy_url": "https://www.battleforthenet.com/privacy" - }, - "campaigns": [ - { - "default_locale": "en-us", - "locales": { - "es-mx": { - "title": "Spanish version of campaign", - "notification": "Detener la fusión Comcast y Time Warner Cable.", - "description": "Comcast y TWC son los peores empresas en América. Ahora quieren ser aún más grande y subir los precios en los consumidores mediante la fusión. Detenerlos!", - "action_button_text": "Tomar Medidas", - "actions": { - "petitions": [ - { - "id": "comcast_petition", - "title": "Stop the merger -- SPANISH VERSION", - "letter": { - "text": "Here's the petition text that you'd see with Spanish Locale" - }, - "fields": [ - { - "name": "member[first_name]", - "placeholder": "Spanished Localized Value" - } - ] - } - ] - } - } - }, - "id": "comcast_merger", - "url": "https://www.battleforthenet.com/comcast", - "title": "Stop the Comcast / TWC Merger!", - "image_splash": "https://www.battleforthenet.com/images/notification.jpg", - "notification": "Help us stop the Comcast / TWC merger!", - "description": "Comcast and TWC are the worst companies in America. Now they want to become even bigger and raise prices on consumers by merging. Stop them!", - "date": "2014-10-10", - "sharing": { - "cta": "Help spread the word!", - "facebook": { - "url": "https://www.battleforthenet.com/comcast" - }, - "twitter": { - "text": "Stop the Comcast / TWC merger!", - "url": "https://www.battleforthenet.com/comcast" - } - }, - "actions": { - "petitions": [ - { - "id": "comcast_petition", - "action": "Sign Petition", - "title": "Stop the Comcast / TWC Merger", - "letter": { - "editable": true, - "text": "Dear Chairman Wheeler,\n\nThe proposed merger between Comcast and Time Warner Cable is a disaster and must not be approved. No single firm — and especially one that ranks as the most-hated company in America — should be handed this much power over the future of media and the Internet.\n\nThe combined company would be an Internet and cable TV juggernaut with unmatched power to crush competition and hike prices for consumers. In fact, Comcast has admitted that prices will only go up.\n\nComcast is already the nation's largest Internet provider. With this takeover, Comcast would control the wires reaching into nearly 6 out of every 10 American homes. Comcast has been caught before abusing its gatekeeper power and violating Net Neutrality. Such problems will only worsen if this once-unthinkable deal moves forward.\n\nThere’s no question this takeover would harm the public interest the FCC is supposed to protect. You have said yourself that America has too little broadband competition. I urge you to block the proposed merger of Comcast and Time Warner Cable.", - "field": "action_comment" - }, - "endpoint": "https://queue.fightforthefuture.org/action", - "method": "post", - "fields": [ - { - "name": "tag", - "type": "hidden", - "value": "comcastmonopoly" - }, - { - "name": "member[first_name]", - "type": "text", - "placeholder": "Your name", - "autofill": "first_name" - }, - { - "name": "member[email]", - "type": "text", - "placeholder": "Email", - "autofill": "email" - }, - { - "name": "member[street_address]", - "type": "text", - "placeholder": "Street Address", - "autofill": "street_address" - }, - { - "name": "member[postcode]", - "type": "text", - "placeholder": "Postal Code", - "autofill": "zip" - }, - { - "name": "submit", - "type": "submit", - "text": "Send to the FCC" - }, - { - "name": "opt_out", - "type": "checkbox", - "reverse_value": true, - "checked": true, - "text": "Fight for the Future may contact me with other campaigns" - }, - { - "name": "hp_enabled", - "type": "hidden", - "value": true - }, - { - "name": "guard", - "type": "hidden", - "value": "" - } - ], - "disclosure": "We'll deliver this letter to the FCC, your members of Congress and the White House. We'll never share your email with anyone else.", - "next": { - "id": "comcast_call", - "overrides": { - "subtitle": "Thanks! Now can you call?" - } - } - } - ], - "calls": [ - { - "id": "comcast_call", - "action": "Call Congress", - "subtitle": "Call Congress: Stop the Merger!", - "content": "Calls have 10 times the impact of emails. Calling is easy: we'll call your phone and tell you exactly what to say. We won't save your number or use it for anything else.", - "bottom_content": "Can't call? Share the campaign or donate $1 to help us get more callers!", - "endpoint": "https://call-congress.fightforthefuture.org/create", - "method": "get", - "fields": [ - { - "name": "campaignId", - "type": "hidden", - "value": "comcastmonopoly" - }, - { - "name": "userPhone", - "type": "text", - "placeholder": "Enter your phone number.", - "autofill": "phone_number" - }, - { - "name": "submit", - "type": "submit", - "text": "Get connected to the FCC" - } - ], - "show_sharing_links": false, - "next": { - "id": "comcast_share", - "overrides": { - "subtitle": "Awesome—we're calling your phone!", - "content": "When the FCC answers, say the FCC should block the Comcast-Time Warner Cable merger, because no company should have that much power over the Internet. Leave voicemail if necessary! Then press * and ask your representative to take a public position against the merger." - } - } - } - ], - "modals": [ - { - "id": "comcast_share", - "subtitle": "Thanks for taking action!", - "content": "To win, we need tons more people to do what you just did. Lead by example! Please share this campaign.", - "bottom_content": "Want to do more? Donate $1 to help us get more callers!", - "show_sharing_links": true - } - ] - } - }, - { - "default_locale": "en-us", - "locales": { - "es-mx": { - "title": "Batalla por el Internet!", - "notification": "Batalla por el Internet!", - "description": "La FCC está a punto de destruir la neutralidad de la red para siempre! Ayúdanos a detenerlos!", - "action_button_text": "Tomar Medidas" - } - }, - "id": "battleforthenet", - "url": "https://www.battleforthenet.com", - "title": "Battle for the Net!", - "image_splash": "https://www.battleforthenet.com/images/notification.jpg", - "date": "2014-09-10", - "notification": "Deadline: tell the FCC to defend net neutrality!", - "description": "The FCC is poised to destroy net neutrality forever! Help us stop them!", - "sharing": { - "cta": "Help spread the word!", - "facebook": { - "url": "https://www.battleforthenet.com" - }, - "twitter": { - "text": "Stop the FCC from destroying net neutrality!", - "url": "https://www.battleforthenet.com" - } - } - } - ] -}); diff --git a/auth/failure.html b/auth/failure.html deleted file mode 100755 index 0a2886df4..000000000 --- a/auth/failure.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - You may close this tab - - - -

Thanks, you may close this tab.

- - - - - \ No newline at end of file diff --git a/auth/success.html b/auth/success.html deleted file mode 100755 index 737dc24bb..000000000 --- a/auth/success.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - You may close this tab - - - -

Thanks, you may close this tab.

- - - - - \ No newline at end of file diff --git a/comcast/addon.html b/comcast/addon.html deleted file mode 100755 index 5f80528bd..000000000 --- a/comcast/addon.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - -
- Subscribe - - diff --git a/comcast/addon_test.html b/comcast/addon_test.html deleted file mode 100755 index 8f4dc6e9f..000000000 --- a/comcast/addon_test.html +++ /dev/null @@ -1,757 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Comcast could soon take over half of America’s Internet. - - - - - - - - - - - -
-
- -
- - -

- Stop the Comcast takeover. -

-

Comcast sucks. And if the FCC lets them take over Time Warner Cable, they'll suck even worse. Help us stop the merger before it's too late!

-
- - - Sign petition! -
- - - -
-

- It’s almost this bad. Already. -

-

- Watch this video. If this is how you feel about Comcast right now, just remember one thing: after the Time Warner Cable takeover, it will only get worse. -

-
- -
-
- Take Action! - - -
- - -
-

- The only game in town. -

-

- If this merger goes through, a staggering number of Americans will have only *one* choice for high speed Internet access. You guessed it: Comcast. -

- -
- -
-

Want to learn more?

-

- • Free Press Petition to Deny Comcast-Time Warner Cable Merger • -

-
-
- -
- -
-
- - - -
-
-
-

Our Letter to the FCC

-
-
-
- - The Honorable Tom Wheeler
- Chairman
- Federal Communications Commission
- 445 12th Street, NW
- Washington, DC 20554

-
-
-

- Dear Chairman Wheeler, -

-

- The proposed merger between Comcast and Time Warner Cable is a disaster and must not be approved. No single firm -- and especially one that ranks as the most-hated company in America -- should be handed this much power over the future of media and the Internet. -

-

- The combined company would be an Internet and cable TV juggernaut with unmatched power to crush competition and hike prices for consumers. In fact, Comcast has admitted that prices will only go up. -

-

- Comcast is already the nation’s largest Internet provider. With this takeover, Comcast would control the wires reaching into nearly 6 out of every 10 American homes. Comcast has been caught before abusing its gatekeeper power and violating Net Neutrality. Such problems will only worsen if this once-unthinkable deal moves forward. -

-

- There’s no question this takeover would harm the public interest the FCC is supposed to protect. You have said yourself that America has too little broadband competition. I urge you to block the proposed merger of Comcast and Time Warner Cable. -

-
- -
-
- - -
- -
-
-
- -
-

Who’s against the takeover

-

- Petitions to Deny the Merger - -

-
    -
  • Arizona Consumers Council
  • -
  • Arizona PIRG
  • -
  • California Black Media
  • -
  • CALPIRG
  • -
  • Center for California Homeowner Association Law
  • -
  • Chicago Consumers Coalition
  • -
  • Choice Cable TV
  • -
  • City of Portland, OR
  • -
  • Cogent Communications Group
  • -
  • Columbia Consumer Education Council
  • -
  • Common Cause
  • -
  • Comptel
  • -
  • CONNPIRG
  • -
  • Consumer Action
  • -
  • Consumer Federation of America
  • -
  • Consumer Federation of the Southeast
  • -
  • Consumers Empowered
  • -
  • Consumers Union
  • -
  • DISH network Corp
  • -
  • Florida Consumer Action Network
  • -
  • Free Press
  • -
  • Frontier Communications Corporation
  • -
  • Future of Music Coalition
  • -
  • Grande Communications Networks, LLC
  • -
  • Greenlining Institute
  • -
  • Illinois PIRG
  • -
  • ITTA
  • -
  • Lincolnville Networks, Inc.
  • -
-
-
-
    -
  • Los Angeles County, CA
  • -
  • Massachusetts Consumers’ Coalition
  • -
  • Massachusetts Consumers’ Council
  • -
  • MASSPIRG
  • -
  • Montgomery County, MD
  • -
  • National Consumer Law Center
  • -
  • Netflix
  • -
  • North Carolina Consumers Council
  • -
  • NTCA
  • -
  • Open Technology Institute at the New America Foundation
  • -
  • Oregon Consumer League
  • -
  • Oxford Telephone Company
  • -
  • Oxford West Telephone Company
  • -
  • Public Knowledge
  • -
  • Ramsey-Washington Counties (MN) Suburban Cable Communications Commission
  • -
  • RCN Telecom Services, LCC
  • -
  • Sinclair Broadcast Group
  • -
  • Texas Consumer Association
  • -
  • The Sports Fans Coalition
  • -
  • Tidewater Telecom Inc
  • -
  • TVC-US
  • -
  • U.S. PIRG
  • -
  • Unitel, Inc.
  • -
  • Virginia Citizens Consumer Council
  • -
  • WeatherNation TV, Inc.
  • -
  • Wisconsin Consumers League
  • -
  • WISPIRG
  • -
  • Writers Guild of America, West, Inc.
  • -
  • Zoom Telephonics
  • -
-
- -

- - -
-
-
-
- - - - -
- -
-
- -
-

FAQs

-

- I cut the cord a long time ago and only subscribe to streaming services. How will this impact me? -

-

- Online video and innovation will suffer most. -

-

- Comcast doesn’t want you getting your Scandal fix from Netflix or Amazon Prime so it’ll do everything it can to keep you as a subscriber even if you watch all your TV online. That’s what happens when your Internet company is also your cable company. -

-
-

- Comcast and Time Warner Cable don’t compete anyway, so how does this deal impact consumers? -

-

- This is all about competition and market power. -

-

- The merger will bring us one giant company that controls marquee television and movie content, as well as the primary vehicles — a major television broadcast network, a major cable system operator and a major broadband Internet access provider — for distributing that content. -

-
-

- Doesn’t Comcast have to abide by the FCC’s old Net Neutrality rules? -

-

- Comcast’s commitment to Net Neutrality expires in 2018. -

-

- Comcast has to obey the FCC’s Open Internet Order, but only as a condition of their previous merger with NBC. These protections come with a clear expiration date in 2018. -

-

- And it’s important to remember that the only reason Comcast is under these conditions is because it was caught illegally blocking lawful file-sharing applications. This is the same company that degraded Netflix service for its own customers as a bargaining chip. And Comcast executives have been quite clear about their desire to divide the Internet into fast and slow lanes. -

-

- Comcast has long exploited loopholes in FCC rules to favor its own services and harm competitors. And the FCC’s old Open Internet Order doesn’t apply to interconnection, the point at which Internet content companies hand off traffic to Comcast for deliver on its network. -

-

- In the end, the company’s empty promises aren’t any consolation given how the merger will erode our online rights over the long term. -

-
-

- Would combining these companies be beneficial for customers? -

-

- Doubtful. Comcast and Time Warner Cable are both routinely at the very bottom of customer-satisfaction lists. They are ranked as the worst companies in America. -

-

- If these companies can’t serve their existing communities well, how will expanding help? If anything Comcast will have even less incentive to provide good, reliable service because it knows its subscribers have nowhere else to turn. -

-

- And Comcast already has too much control over content. Because a bigger, badder Comcast would control both content and distribution on a grander scale, it would have both the incentive and the power to limit access to competing content on the distribution platforms it owns. It could also try to outright deny its competitors access to its content. -

-
-

- I don’t subscribe to Comcast or Time Warner Cable... does this deal affect me? -

-

- This new giant company would have so much power over programming and such a chokehold on innovation that no new channels or services are going to get off the ground without permission from Comcast. -

-

- And whether you’re a cable subscriber or not, you’ll end up paying more because the costs of doing business with Comcast will be passed on to you. -

-

- But this deal isn’t just about dollars. It’s about democracy. -

-

- Comcast already wields a great deal of power in Washington: The company spent more than $18 million on lobbying in 2013 alone. The merger would give Comcast an even better shot of ensuring that future communications policies favor its bottom line. -

- - - -
-
-
-
- - - - - - - - - -
- -
-

- Don't let it happen. -

-

- We have an opportunity to stop this thing, right now. The deadline for comments to the FCC is October 8th. Make your voice heard! -

- Take Action! - - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/comcast/index.html b/comcast/index.html deleted file mode 100755 index e65f37558..000000000 --- a/comcast/index.html +++ /dev/null @@ -1,791 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Comcast could soon take over half of America’s Internet. - - - - - - - - - -
-
- -
- - -

- Stop the Comcast takeover. -

-
- - -
- - -
- - - -
-

- It’s almost this bad. Already. -

-

- Watch this video. If this is how you feel about Comcast right now, just remember one thing: after the Time Warner Cable takeover, it will only get worse. -

-
- -
-
- Take Action! - - -
- - -
-

- The only game in town. -

-

- If this merger goes through, a staggering number of Americans will have only *one* choice for high speed Internet access. You guessed it: Comcast. -

- -
- -
-

Want to learn more?

-

- • Free Press Petition to Deny Comcast-Time Warner Cable Merger • -

-
-
- -
- -
-
- - - -
-
-
-

Our Letter to the FCC

-
-
-
- - The Honorable Tom Wheeler
- Chairman
- Federal Communications Commission
- 445 12th Street, NW
- Washington, DC 20554

-
-
-

- Dear Chairman Wheeler, -

-

- The proposed merger between Comcast and Time Warner Cable is a disaster and must not be approved. No single firm -- and especially one that ranks as the most-hated company in America -- should be handed this much power over the future of media and the Internet. -

-

- The combined company would be an Internet and cable TV juggernaut with unmatched power to crush competition and hike prices for consumers. In fact, Comcast has admitted that prices will only go up. -

-

- Comcast is already the nation’s largest Internet provider. With this takeover, Comcast would control the wires reaching into nearly 6 out of every 10 American homes. Comcast has been caught before abusing its gatekeeper power and violating Net Neutrality. Such problems will only worsen if this once-unthinkable deal moves forward. -

-

- There’s no question this takeover would harm the public interest the FCC is supposed to protect. You have said yourself that America has too little broadband competition. I urge you to block the proposed merger of Comcast and Time Warner Cable. -

-
- -
-
- - -
- -
-
-
- -
-

Who’s against the takeover

-

- Petitions to Deny the Merger - -

-
    -
  • Arizona Consumers Council
  • -
  • Arizona PIRG
  • -
  • California Black Media
  • -
  • CALPIRG
  • -
  • Center for California Homeowner Association Law
  • -
  • Chicago Consumers Coalition
  • -
  • Choice Cable TV
  • -
  • City of Portland, OR
  • -
  • Cogent Communications Group
  • -
  • Columbia Consumer Education Council
  • -
  • Common Cause
  • -
  • Comptel
  • -
  • CONNPIRG
  • -
  • Consumer Action
  • -
  • Consumer Federation of America
  • -
  • Consumer Federation of the Southeast
  • -
  • Consumers Empowered
  • -
  • Consumers Union
  • -
  • DISH network Corp
  • -
  • Florida Consumer Action Network
  • -
  • Free Press
  • -
  • Frontier Communications Corporation
  • -
  • Future of Music Coalition
  • -
  • Grande Communications Networks, LLC
  • -
  • Greenlining Institute
  • -
  • Illinois PIRG
  • -
  • ITTA
  • -
  • Lincolnville Networks, Inc.
  • -
-
-
-
    -
  • Los Angeles County, CA
  • -
  • Massachusetts Consumers’ Coalition
  • -
  • Massachusetts Consumers’ Council
  • -
  • MASSPIRG
  • -
  • Montgomery County, MD
  • -
  • National Consumer Law Center
  • -
  • Netflix
  • -
  • North Carolina Consumers Council
  • -
  • NTCA
  • -
  • Open Technology Institute at the New America Foundation
  • -
  • Oregon Consumer League
  • -
  • Oxford Telephone Company
  • -
  • Oxford West Telephone Company
  • -
  • Public Knowledge
  • -
  • Ramsey-Washington Counties (MN) Suburban Cable Communications Commission
  • -
  • RCN Telecom Services, LCC
  • -
  • Sinclair Broadcast Group
  • -
  • Texas Consumer Association
  • -
  • The Sports Fans Coalition
  • -
  • Tidewater Telecom Inc
  • -
  • TVC-US
  • -
  • U.S. PIRG
  • -
  • Unitel, Inc.
  • -
  • Virginia Citizens Consumer Council
  • -
  • WeatherNation TV, Inc.
  • -
  • Wisconsin Consumers League
  • -
  • WISPIRG
  • -
  • Writers Guild of America, West, Inc.
  • -
  • Zoom Telephonics
  • -
-
- -

- - -
-
-
-
- - - - -
- -
-
- -
-

FAQs

-

- I cut the cord a long time ago and only subscribe to streaming services. How will this impact me? -

-

- Online video and innovation will suffer most. -

-

- Comcast doesn’t want you getting your Scandal fix from Netflix or Amazon Prime so it’ll do everything it can to keep you as a subscriber even if you watch all your TV online. That’s what happens when your Internet company is also your cable company. -

-
-

- Comcast and Time Warner Cable don’t compete anyway, so how does this deal impact consumers? -

-

- This is all about competition and market power. -

-

- The merger will bring us one giant company that controls marquee television and movie content, as well as the primary vehicles — a major television broadcast network, a major cable system operator and a major broadband Internet access provider — for distributing that content. -

-
-

- Doesn’t Comcast have to abide by the FCC’s old Net Neutrality rules? -

-

- Comcast’s commitment to Net Neutrality expires in 2018. -

-

- Comcast has to obey the FCC’s Open Internet Order, but only as a condition of their previous merger with NBC. These protections come with a clear expiration date in 2018. -

-

- And it’s important to remember that the only reason Comcast is under these conditions is because it was caught illegally blocking lawful file-sharing applications. This is the same company that degraded Netflix service for its own customers as a bargaining chip. And Comcast executives have been quite clear about their desire to divide the Internet into fast and slow lanes. -

-

- Comcast has long exploited loopholes in FCC rules to favor its own services and harm competitors. And the FCC’s old Open Internet Order doesn’t apply to interconnection, the point at which Internet content companies hand off traffic to Comcast for deliver on its network. -

-

- In the end, the company’s empty promises aren’t any consolation given how the merger will erode our online rights over the long term. -

-
-

- Would combining these companies be beneficial for customers? -

-

- Doubtful. Comcast and Time Warner Cable are both routinely at the very bottom of customer-satisfaction lists. They are ranked as the worst companies in America. -

-

- If these companies can’t serve their existing communities well, how will expanding help? If anything Comcast will have even less incentive to provide good, reliable service because it knows its subscribers have nowhere else to turn. -

-

- And Comcast already has too much control over content. Because a bigger, badder Comcast would control both content and distribution on a grander scale, it would have both the incentive and the power to limit access to competing content on the distribution platforms it owns. It could also try to outright deny its competitors access to its content. -

-
-

- I don’t subscribe to Comcast or Time Warner Cable... does this deal affect me? -

-

- This new giant company would have so much power over programming and such a chokehold on innovation that no new channels or services are going to get off the ground without permission from Comcast. -

-

- And whether you’re a cable subscriber or not, you’ll end up paying more because the costs of doing business with Comcast will be passed on to you. -

-

- But this deal isn’t just about dollars. It’s about democracy. -

-

- Comcast already wields a great deal of power in Washington: The company spent more than $18 million on lobbying in 2013 alone. The merger would give Comcast an even better shot of ensuring that future communications policies favor its bottom line. -

- - - -
-
-
-
- - - - - - - - - -
- -
-

- Don't let it happen. -

-

- We have an opportunity to stop this thing, right now. The deadline for comments to the FCC is October 8th. Make your voice heard! -

- Take Action! - - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/css/battleforthenet.css b/css/battleforthenet.css deleted file mode 100755 index 8d856198e..000000000 --- a/css/battleforthenet.css +++ /dev/null @@ -1 +0,0 @@ -/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}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}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;width:100% \9;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.428571429;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666666666666%}.col-xs-10{width:83.33333333333334%}.col-xs-9{width:75%}.col-xs-8{width:66.66666666666666%}.col-xs-7{width:58.333333333333336%}.col-xs-6{width:50%}.col-xs-5{width:41.66666666666667%}.col-xs-4{width:33.33333333333333%}.col-xs-3{width:25%}.col-xs-2{width:16.666666666666664%}.col-xs-1{width:8.333333333333332%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666666666666%}.col-xs-pull-10{right:83.33333333333334%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666666666666%}.col-xs-pull-7{right:58.333333333333336%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666666666667%}.col-xs-pull-4{right:33.33333333333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.666666666666664%}.col-xs-pull-1{right:8.333333333333332%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666666666666%}.col-xs-push-10{left:83.33333333333334%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666666666666%}.col-xs-push-7{left:58.333333333333336%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666666666667%}.col-xs-push-4{left:33.33333333333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.666666666666664%}.col-xs-push-1{left:8.333333333333332%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666666666666%}.col-xs-offset-10{margin-left:83.33333333333334%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666666666666%}.col-xs-offset-7{margin-left:58.333333333333336%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666666666667%}.col-xs-offset-4{margin-left:33.33333333333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.666666666666664%}.col-xs-offset-1{margin-left:8.333333333333332%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.428571429 \0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm,.form-horizontal .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{position:absolute;z-index:-1;opacity:0;filter:alpha(opacity=0)}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar[aria-valuenow="1"],.progress-bar[aria-valuenow="2"]{min-width:30px}.progress-bar[aria-valuenow="0"]{color:#777;min-width:30px;background-color:transparent;background-image:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eee;color:#777}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}.sharing-buttons{margin:0;padding:0}body>.sharing-buttons{left:0;bottom:0;position:fixed;z-index:99;width:100%;text-align:center;background:rgba(0,0,0,0);background:-moz-linear-gradient(top,rgba(0,0,0,0) 0,#000 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgba(0,0,0,0)),color-stop(100%,#000));background:-webkit-linear-gradient(top,rgba(0,0,0,0) 0,#000 100%);background:-o-linear-gradient(top,rgba(0,0,0,0) 0,#000 100%);background:-ms-linear-gradient(top,rgba(0,0,0,0) 0,#000 100%);background:linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#000000', GradientType=0)}@media only screen and (min-width:768px){body>.sharing-buttons{width:auto;text-align:auto;left:0;position:fixed;top:40%;bottom:auto;z-index:99;background:0 0}}.jumbotron>.sharing-buttons{margin-bottom:1em;margin-left:auto;margin-right:auto;width:175px}.sharing-buttons li{font-weight:700;font-size:.8em;list-style-type:none;margin:0;text-align:left;padding:0 5px;display:inline-block}@media only screen and (min-width:768px){.sharing-buttons li{display:block;padding:5px 5px 5px 0}}.sharing-buttons li a{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:3px;border-top-right-radius:3px;color:#fff;display:inline-block;height:100%;padding:5px;text-decoration:none;transition:opacity .3s;width:100%}@media only screen and (min-width:768px){.sharing-buttons li a{border-bottom-left-radius:0;border-top-left-radius:0;border-top-right-radius:3px;border-bottom-right-radius:3px}}.sharing-buttons li a img{width:16px;height:16px}.jumbotron>.sharing-buttons li a{border-bottom-left-radius:3px;border-top-left-radius:3px}.sharing-buttons li a.facebook{background:#3C5A96}.sharing-buttons li a.googleplus{background:#DB585A}.sharing-buttons li a.reddit{background:#FF4500}.sharing-buttons li a.pressthis{background:#1e8cbe}.sharing-buttons li a.tumblr{background:#32506E}.sharing-buttons li a.twitter{background:#59ADEB}.sharing-buttons li a:hover{opacity:.9}body>.sharing-buttons li a span{display:none!important}@media (min-width:1200px){body>.sharing-buttons li a span{display:inline!important}}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local('Roboto Light'),local('Roboto-Light'),url(../fonts/roboto-light-webfont.woff) format('woff')}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local('Roboto Bold'),local('Roboto-Bold'),url(../fonts/roboto-bold-webfont.woff) format('woff')}@font-face{font-family:'Proxima Nova';font-style:normal;font-weight:300;src:local('Proxima Nova Light'),local('Proxima-Nova-Light'),url(../fonts/proximanova-light-webfont.woff) format('woff')}@font-face{font-family:'Proxima Nova';font-style:normal;font-weight:400;src:local('Proxima Nova Regular'),local('Proxima-Nova-Regular'),url(../fonts/proximanova-regular-webfont.woff) format('woff')}@font-face{font-family:'Proxima Nova';font-style:normal;font-weight:700;src:local('Proxima Nova Bold'),local('Proxima-Nova-Bold'),url(../fonts/proximanova-bold-webfont.woff) format('woff')}.col-centered{float:none;margin:0 auto}body{background-attachment:fixed;background-color:#0d0c11;background-image:url(../images/background-v11.jpg);background-position:left top;background-repeat:no-repeat;color:#67727e;font-family:Roboto,sans-serif;overflow-y:auto;overflow-x:hidden}body#developer{background-image:url(../images/tools/border-crossing.jpg);background-size:auto 100%}body#comcast{background-image:url(../images/background-v3.jpg);background-size:100%}body#scoreboard{background-image:none}@media only screen and (min-width:768px){body{background-position:center top;background-size:auto 900px}}#loader{height:100px;width:100px;margin:10px auto 20px}h1{font-weight:700;text-align:center}a{color:#86332f;text-decoration:none}a:focus,a:hover{color:#c54a45;text-decoration:none}.jumbotron{margin:0 auto;max-width:950px;padding:30px 20px 0;text-shadow:0 1px 10px #000;position:relative;background:0 0;color:#fff;margin-bottom:0;text-align:center}@media only screen and (min-width:768px){.jumbotron{padding:60px 50px 0}}@media only screen and (min-width:768px){.jumbotron{padding:20px 50px 40p}}.jumbotron .signup-thanks{position:absolute;left:0;bottom:40px;font-size:20px;text-align:center;width:100%}.jumbotron.developer{max-width:100%;padding:100px 0 20px;position:relative;padding:30px 15px}@media only screen and (min-width:768px){.jumbotron.developer .row .col-centered{max-width:600px}.jumbotron.developer .signup{padding-bottom:50px}}.jumbotron.developer p{max-width:950px;margin:20px auto}.jumbotron.developer a{color:#fff;text-decoration:underline}.jumbotron.developer.short{padding-bottom:0}.jumbotron .input-group{margin-top:30px;margin-bottom:10px}@media only screen and (min-width:768px){.jumbotron{padding-top:165px}.jumbotron.developer{padding-top:110px}}.jumbotron h1{font-size:30px;font-family:'Proxima Nova',sans-serif;font-weight:300;margin:0}@media only screen and (min-width:768px){.jumbotron h1{font-size:50px}}@media only screen and (min-width:992px){.jumbotron h1{font-size:66px;margin-bottom:20px}}.jumbotron p{font-size:16px;padding-top:12px}.jumbotron p.slogan{text-transform:uppercase;margin-bottom:0}@media only screen and (min-width:992px){.jumbotron p{padding:0 20px;font-size:22px}}.jumbotron a.privacy{color:#fff;font-weight:700;text-decoration:underline}.jumbotron a.privacy:hover{text-decoration:underline;color:pink}.jumbotron .count{font-size:18px;padding:32px 0 24px}.jumbotron .count a{color:#fff;text-decoration:underline}@media screen and (min-width:768px){.jumbotron{padding-top:125px}.jumbotron .count{font-size:28px;margin:-32px 0 0}}@media screen and (min-width:992px){.jumbotron .count{font-size:28px;margin:-46px 0 0}}section.join-the-slowdown{font-family:'Proxima Nova',sans-serif;background-color:#516776;max-width:700px;margin:0 auto 60px;padding:0 30px;border-radius:5px;color:#fff;font-size:18px;font-weight:600;text-align:center}section.join-the-slowdown header{background-color:#516776;max-width:640px;margin:0 auto;border-radius:0;color:#fff;text-align:center;padding:7px 5px 5px}section.join-the-slowdown header a{font-size:19px;font-weight:600;margin:0;padding:0 10px 10px;color:#fff;text-decoration:underline}section.join-the-slowdown header .break{padding:10px 15px 5px 10px!important;font-size:12pt}section.join-the-slowdown .break .spinner-container,section.join-the-slowdown .break .spinner{position:relative;width:20px;height:20px;border-radius:100%}section.join-the-slowdown .spinner-container,section.join-the-slowdown .spinner{position:relative;width:25px;height:25px;border-radius:100%}section.join-the-slowdown .spinner-container{float:left;margin-left:10px}section.join-the-slowdown .break .spinner-container{margin-right:10px}section.join-the-slowdown .spinner{border:2px solid transparent;border-color:transparent #fff;-moz-animation:rotate-spinner 1.5s linear 0s infinite normal;-moz-transform-origin:50% 50%;-o-animation:rotate-spinner 1.5s linear 0s infinite normal;-o-transform-origin:50% 50%;-webkit-animation:rotate-spinner 1.5s linear 0s infinite normal;-webkit-transform-origin:50% 50%;animation:rotate-spinner 1.5s linear 0s infinite normal;transform-origin:50% 50%}section.join-the-slowdown #spinner-text{-moz-animation:spinner-text-opacity 3s linear 0s infinite normal;-o-animation:spinner-text-opacity 3s linear 0s infinite normal;-webkit-animation:spinner-text-opacity 3s linear 0s infinite normal;animation:spinner-text-opacity 3s linear 0s infinite normal;color:#fff;margin-top:0;opacity:0;font-family:'Proxima Nova',sans-serif;position:absolute;font-weight:700;font-size:15pt;text-align:center;top:0;width:25px}section.join-the-slowdown .break #spinner-text{width:20px;font-size:12pt}@keyframes rotate-spinner{0%{transform:rotate(0deg);-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);-o-transform:rotate(0deg);-moz-transform:rotate(0deg)}100%{transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);-moz-transform:rotate(360deg)}}@-moz-keyframes rotate-spinner{0%{transform:rotate(0deg);-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);-o-transform:rotate(0deg);-moz-transform:rotate(0deg)}100%{transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);-moz-transform:rotate(360deg)}}@-webkit-keyframes rotate-spinner{0%{transform:rotate(0deg);-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);-o-transform:rotate(0deg);-moz-transform:rotate(0deg)}100%{transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);-moz-transform:rotate(360deg)}}@-o-keyframes rotate-spinner{0%{transform:rotate(0deg);-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);-o-transform:rotate(0deg);-moz-transform:rotate(0deg)}100%{transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);-moz-transform:rotate(360deg)}}@keyframes rotate-spinner{0%{transform:rotate(0deg);-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);-o-transform:rotate(0deg);-moz-transform:rotate(0deg)}100%{transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);-moz-transform:rotate(360deg)}}@-moz-keyframes rotate-spinner{0%{transform:rotate(0deg);-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);-o-transform:rotate(0deg);-moz-transform:rotate(0deg)}100%{transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);-moz-transform:rotate(360deg)}}@-webkit-keyframes rotate-spinner{0%{transform:rotate(0deg);-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);-o-transform:rotate(0deg);-moz-transform:rotate(0deg)}100%{transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);-moz-transform:rotate(360deg)}}@-o-keyframes rotate-spinner{0%{transform:rotate(0deg);-ms-transform:rotate(0deg);-webkit-transform:rotate(0deg);-o-transform:rotate(0deg);-moz-transform:rotate(0deg)}100%{transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);-o-transform:rotate(360deg);-moz-transform:rotate(360deg)}}@keyframes spinner-text-opacity{0%{opacity:0}20%{opacity:0}50%{opacity:1}100%{opacity:0}}@-moz-keyframes spinner-text-opacity{0%{opacity:0}20%{opacity:0}50%{opacity:1}100%{opacity:0}}@-webkit-keyframes spinner-text-opacity{0%{opacity:0}20%{opacity:0}50%{opacity:1}100%{opacity:0}}@-o-keyframes spinner-text-opacity{0%{opacity:0}20%{opacity:0}50%{opacity:1}100%{opacity:0}}section.form{font-family:'Proxima Nova',sans-serif;margin:0 auto;max-width:560px;padding:10px 30px 0}section.form .shadow{box-shadow:0 5px 13px rgba(0,0,0,.7)}section.form header{background-color:#7573bc;border-radius:5px 5px 0 0;color:#fff;text-align:center}section.form header h2{font-size:24px;font-weight:700;margin:0;padding:10px 0 0}@media only screen and (min-width:480px){section.form header h2{font-size:32px}}@media only screen and (min-width:768px){section.form header h2{font-size:36px}}section.form header p{font-size:16px;margin:0;padding:0 12px 12px}@media only screen and (min-width:480px){section.form header p{font-size:18px}}@media only screen and (min-width:768px){section.form header p{font-size:22px}}section.form form{background-color:#fff;border-radius:0 0 5px 5px;border-top:1px solid #ededed}section.form form input,section.form form textarea{border:0;border-bottom:1px solid #d1d1e9;border-radius:0;box-shadow:none;color:#1c1c25;font-size:15px;font-weight:700;height:44px;padding:0 18px;transition:background-color .15s}section.form form input::-moz-placeholder,section.form form textarea::-moz-placeholder{color:#9797aa}section.form form input::-webkit-input-placeholder,section.form form textarea::-webkit-input-placeholder{color:#9797aa}section.form form input:focus,section.form form textarea:focus{background-color:#eef;border-bottom:1px solid #d1d1e9;box-shadow:none}section.form form textarea{border-bottom:0;color:#9797aa;font-size:14px;height:90px;overflow:hidden;padding:12px 15px 0;resize:none}@media only screen and (min-width:768px){section.form form textarea{height:132px}}section.form form .left{height:132px;width:100%}section.form form .left .flex{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}section.form form .left .flex input{border-bottom:0}section.form form .left .flex .input-address{border-right:1px solid #d8d8e9;-webkit-box-flex:1;-moz-box-flex:1;width:20%;-webkit-flex:1;-ms-flex:1;flex:1}section.form form .left .flex .input-zip{width:110px}@media only screen and (min-width:768px){section.form form .left{border-right:1px solid #d1d1e9;float:left;width:250px}}section.form form .right{border-top:1px solid #d1d1e9;cursor:pointer;position:relative}@media only screen and (min-width:768px){section.form form .right{border-top:0;float:left;width:250px}}section.form form .right .textarea-fade{background-image:url(../images/textarea-fade.png);background-position:center bottom;background-repeat:repeat-x;height:90px;position:absolute;width:100%}@media only screen and (min-width:768px){section.form form .right .textarea-fade{height:100%}}section.form form .right .edit{bottom:10px;color:#2dbb9b;font-size:10px;font-weight:700;left:15px;position:absolute;text-transform:uppercase}section.form form .right:hover .edit{text-decoration:underline}section.form form .call-to-action{clear:both}section.form form .call-to-action .background{background-color:#d0ede7;border-radius:0 0 5px 5px;border-top:1px solid #badad3;padding:10px}section.form form .call-to-action button{border:0;box-shadow:0 2px 1px rgba(36,95,82,.7);color:#fff;height:48px;background-color:#2dbb9b;background:-webkit-gradient(linear,left top,left bottom,from(#2dbb9b),to(#28a588));background:-webkit-linear-gradient(top,#2dbb9b,#28a588);background:-moz-linear-gradient(top,#2dbb9b,#28a588);background:-ms-linear-gradient(top,#2dbb9b,#28a588);background:-o-linear-gradient(top,#2dbb9b,#28a588);font-size:14px;font-weight:700;line-height:40px;text-transform:uppercase;width:100%}@media only screen and (min-width:480px){section.form form .call-to-action button{font-size:22px}}section.form form .call-to-action button:hover,section.form form .call-to-action button:focus{box-shadow:0 2px 4px rgba(36,95,82,.8);opacity:.92}section.form form .call-to-action .disclaimer{color:#1c1c25;font-size:11px;margin:8px 0 0;text-align:center}section.form form .call-to-action .disclaimer a{color:#2dbb9b;font-weight:700}section.form form .call-to-action .disclaimer a:hover{text-decoration:underline}section.form form .call-to-action .disclaimer.fp-copy{display:none}section.form form .call-to-action.fp .disclaimer{display:none}section.form form .call-to-action.fp .disclaimer.fp-copy{display:block}section.form form .bottom-strip{background:rgba(42,176,145,.8);text-align:center;font-weight:700;border-radius:0 0 5px 5px;padding:2px 0 0}section.form form .bottom-strip a{color:#fff}section.form form .bottom-strip a:hover{text-decoration:underline}.toggleContent{width:auto}.container-fluid{overflow:hidden;padding-left:0;padding-right:0}#first-fold{padding-bottom:15px}#first-fold iframe{display:block;margin:25px auto 0;width:100%;height:520px;overflow:hidden;overflow-y:hidden}#first-fold iframe.short{height:400px}@media only screen and (min-width:768px){#first-fold iframe{margin-top:0;width:750px;height:467px}}section.map{background-color:#313142}section.map iframe.map{display:block;margin:0 auto;min-width:320px;width:100%;height:400px}@media only screen and (min-width:768px){section.map iframe.map{width:100%;max-width:960px;height:500px;border:1px solid #fff}}header.navigation{background-color:rgba(0,0,0,.8);height:66px;font-family:"Proxima Nova",sans-serif;padding:0;text-align:center;text-transform:uppercase;display:none;overflow:hidden}header.navigation a.highlight-green{color:#2dbb9b!important}header.navigation a.back{display:block;padding:20px 0 20px 15px;font-size:18px;font-weight:700;text-align:left;color:#fff}header.navigation ul{margin:0;padding:0}header.navigation li{display:inline-block;list-style:none;font-weight:700}header.navigation li a{color:#94949d;display:inline-block;font-size:10px;padding:0 4px;line-height:66px;transition:color .3s,font-size .1s}header.navigation li a.selected{color:#2dbb9b;text-decoration:underline}header.navigation li a:hover{color:#2dbb9b}header.navigation li a.additional{display:none}@media only screen and (min-width:768px){header.navigation li a.additional{display:block}}@media only screen and (min-width:480px){header.navigation li a{font-size:14px;padding:0 12px}}@media only screen and (min-width:768px){header.navigation{position:fixed;display:block;width:100%;z-index:10}}.modal-backdrop{background-color:#1c1c25}.modal-backdrop.in{opacity:.95}.editModal .modal-dialog{margin:32px auto;max-width:300px}.editModal .modal-content{background-color:transparent;border:0;box-shadow:none}.editModal .modal-content .modal-header{border:0;border-radius:5px 5px 0 0;color:#fff}.editModal .modal-content .modal-header h4{font-weight:700}.editModal .modal-content .modal-header a{color:#fff;text-decoration:underline}.editModal .modal-content .modal-header a:hover{color:pink}.editModal .modal-content .modal-header .grey{color:#999;font-size:12px}.editModal .modal-content .modal-header .close{color:#fff;opacity:.7}@media only screen and (min-width:768px){.editModal .modal-content .modal-header .close{margin-left:330px;position:absolute}}@media only screen and (min-width:768px){.editModal .modal-content .modal-header{margin-left:-230px;position:absolute;text-align:right}}.editModal .modal-content .modal-body{background-color:#fff;border-radius:5px 5px 0 0}.editModal .modal-content .modal-body textarea{background-color:#fff;border:0;border-radius:5px;height:200px;padding:5px;resize:none;width:100%}.editModal .modal-content .modal-footer{background-color:#fff;border:0;border-radius:0 0 5px 5px;padding:0}.editModal .modal-content .modal-footer .btn{background-color:#2dbb9b;border:0;border-radius:5px;height:56px;font-size:16px;font-weight:700;text-transform:uppercase;width:100%}.editModal .modal-content .modal-footer .btn:hover,.editModal .modal-content .modal-footer .btn:focus{opacity:.9}.editModal .modal-content .modal-disclosure{display:none}.thanksModal .modal-dialog{margin:32px auto;padding:28px}.thanksModal .modal-content{background-color:transparent;border:0;box-shadow:none;font-family:'Proxima Nova',sans-serif}.thanksModal .modal-content .modal-header{background-color:#2cb798;border:0;border-radius:5px 5px 0 0;color:#fff;font-size:19px;text-align:center}.thanksModal .modal-content .modal-header h4{font-size:33px;font-weight:700}.thanksModal .modal-content .modal-header a{color:#fff;text-decoration:underline}.thanksModal .modal-content .modal-header a:hover{color:pink}.thanksModal .modal-content .modal-header .close{color:#fff;opacity:.7}@media only screen and (min-width:768px){.thanksModal .modal-content .modal-header .close{position:absolute;right:-25px}}.thanksModal .modal-content .modal-footer{background-color:#e4e4f2;border-top:1px solid #cbcbe2;border-radius:0 0 5px 5px;padding:20px 0;text-align:center}.thanksModal .modal-content .modal-footer .btn{border:0;border-radius:5px;font-size:14px;font-weight:700;line-height:50px;text-transform:uppercase;margin:0 7px 7px;padding:0 23px}.thanksModal .modal-content .modal-footer .btn:hover,.thanksModal .modal-content .modal-footer .btn:focus{opacity:.9}.thanksModal .modal-content .modal-footer .btn.facebook{background-color:#3754a9}.thanksModal .modal-content .modal-footer .btn.twitter{background-color:#2d98d6}.participantModal .modal-dialog{margin:32px auto;padding:28px}.participantModal .modal-content{background-color:transparent;border:0;box-shadow:none;font-family:'Proxima Nova',sans-serif}.participantModal .modal-content .modal-header{background-color:#2cb798;border-bottom:1px solid #ededed;border-radius:5px 5px 0 0;color:#fff;font-size:19px;text-align:center}.participantModal .modal-content .modal-header h4{font-size:33px;font-weight:700}.participantModal .modal-content .modal-header .close{color:#fff;opacity:.7}@media only screen and (min-width:768px){.participantModal .modal-content .modal-header .close{position:absolute;right:-25px}}.participantModal .modal-content .modal-body{background-color:#fff;padding:0 18px}.participantModal .modal-content .modal-body form label{line-height:42px;margin:0;width:42px}.participantModal .modal-content .modal-body form input{border:0;padding:0 6px;width:70%}@media only screen and (min-width:480px){.participantModal .modal-content .modal-body form input{width:80%}}@media only screen and (min-width:768px){.participantModal .modal-content .modal-body form input{width:450px}}.participantModal .modal-content .modal-footer{background-color:#e4e4f2;border-top:2px solid #cbcbe2;border-radius:0 0 5px 5px;padding:20px 0;text-align:center}.participantModal .modal-content .modal-footer .btn{border:0;border-radius:5px;font-size:11px;font-weight:700;line-height:40px;text-transform:uppercase;margin:0 7px 7px;padding:0 12px}.participantModal .modal-content .modal-footer .btn:hover,.participantModal .modal-content .modal-footer .btn:focus{opacity:.9}.participantModal .modal-content .modal-footer .btn.facebook{background-color:#3754a9}.participantModal .modal-content .modal-footer .btn.twitter{background-color:#2d98d6}.participantModal .modal-content .modal-footer .btn.upload{background-color:#27a490}section.what-we-did{color:#fff;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 0;text-align:center;background:#313142!important}@media only screen and (min-width:768px){section.what-we-did{padding:0}}section.what-we-did h2{font-size:28px;font-weight:300;margin:0 0 20px;color:#fff}@media only screen and (min-width:768px){section.what-we-did h2{font-size:50px;padding:60px 0 10px}}@media only screen and (min-width:768px){section.what-we-did h2 p{padding:10px 0}}section.what-we-did img{display:inline-block;margin:0 0 4px;width:auto;height:50px}@media only screen and (min-width:768px){section.what-we-did img{width:auto;height:auto}}section.what-we-did img.info{max-width:100%!important;height:auto;margin:0}section.what-we-did p{font-size:18px;margin:30px auto;max-width:768px}section.infographic{color:#fff;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 0;text-align:center;background:#313142!important}@media only screen and (min-width:768px){section.infographic{padding:0}}section.infographic h2{font-size:28px;font-weight:300;margin:0 0 20px;color:#fff}@media only screen and (min-width:768px){section.infographic h2{font-size:50px;padding:60px 0 10px}}@media only screen and (min-width:768px){section.infographic h2 p{padding:10px 0}}section.infographic img{display:inline-block;margin:0 0 4px;width:100%;height:50px}@media only screen and (min-width:768px){section.infographic img{width:auto;height:auto}}section.infographic img.info{width:100%!important;max-width:1200px;height:auto;margin-top:10px;margin:0}@media only screen and (min-width:1200px){section.infographic img.info{margin-bottom:30px}}@media only screen and (min-width:768px){section.infographic img.info{margin-top:30px}}section.infographic p{font-size:18px;margin:30px auto;max-width:768px}section.infographic .other-resources{max-width:640px;margin:0 auto;padding:45px 0 10px}section.infographic .other-resources h2{font-family:'Proxima Nova',sans-serif;font-size:30px;font-weight:300;max-width:300px;margin:0 auto;padding:15px 0;border-bottom:1px solid #4e4e66}section.infographic .other-resources a{color:#fff;font-size:16px;font-weight:300;border-bottom:1px solid #fff}section.infographic .other-resources a:hover{color:pink}section.team-cable,section.widget{background-color:#1c1c25;color:#c7bdd5;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px;text-align:center}section.team-cable.widget,section.widget.widget{display:none}@media only screen and (min-width:768px){section.team-cable.widget,section.widget.widget{display:block}}section.team-cable.widget.mobile-friendly,section.widget.widget.mobile-friendly{display:block}@media only screen and (min-width:768px){section.team-cable.widget.mobile-friendly,section.widget.widget.mobile-friendly{display:none}}@media only screen and (min-width:768px){section.team-cable,section.widget{padding:60px 20px}}section.team-cable h2,section.widget h2{font-size:28px;font-weight:300;margin:0 0 32px;color:#fff}@media only screen and (min-width:768px){section.team-cable h2,section.widget h2{font-size:50px}}section.team-cable img,section.widget img{display:inline-block;margin:0 0 4px;width:auto;height:50px}@media only screen and (min-width:768px){section.team-cable img,section.widget img{width:auto;height:auto}}section.team-cable p,section.widget p{font-size:18px;margin:36px auto 0;max-width:768px}section.its-on,section.push-notification,section.join-us,section.whos-in{background-color:#313142;color:#fff;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px;text-align:center}section.its-on.whos-in,section.push-notification.whos-in,section.join-us.whos-in,section.whos-in.whos-in{background:#1C1C25;border-top:6px solid #313142;display:block!important}section.its-on.whos-in .col-lg-6,section.push-notification.whos-in .col-lg-6,section.join-us.whos-in .col-lg-6,section.whos-in.whos-in .col-lg-6{padding:0 0 0 10%}section.its-on.whos-in ul,section.push-notification.whos-in ul,section.join-us.whos-in ul,section.whos-in.whos-in ul{text-align:left;list-style:disc}section.its-on.whos-in .row,section.push-notification.whos-in .row,section.join-us.whos-in .row,section.whos-in.whos-in .row{max-width:1000px;margin:10px auto}section.its-on.whos-in .row .columns,section.push-notification.whos-in .row .columns,section.join-us.whos-in .row .columns,section.whos-in.whos-in .row .columns{height:auto!important;display:block!important}section.its-on.whos-in .row .fp,section.push-notification.whos-in .row .fp,section.join-us.whos-in .row .fp,section.whos-in.whos-in .row .fp{width:500px;max-width:80%;margin:-20px 0 20px}section.its-on.whos-in .row .dp,section.push-notification.whos-in .row .dp,section.join-us.whos-in .row .dp,section.whos-in.whos-in .row .dp{width:500px;max-width:80%}section.its-on.whos-in .row .eis,section.push-notification.whos-in .row .eis,section.join-us.whos-in .row .eis,section.whos-in.whos-in .row .eis{width:500px;max-width:80%;margin:0}@media only screen and (min-width:992px){section.its-on.whos-in .row .eis,section.push-notification.whos-in .row .eis,section.join-us.whos-in .row .eis,section.whos-in.whos-in .row .eis{margin:-15px 0 15px}}section.its-on.join-us,section.push-notification.join-us,section.join-us.join-us,section.whos-in.join-us{padding-top:0}@media only screen and (min-width:768px){section.its-on,section.push-notification,section.join-us,section.whos-in{padding:60px 20px}}section.its-on h2,section.push-notification h2,section.join-us h2,section.whos-in h2{font-size:28px;font-weight:300;margin:0 0 32px}@media only screen and (min-width:768px){section.its-on h2,section.push-notification h2,section.join-us h2,section.whos-in h2{font-size:50px}}section.its-on img,section.push-notification img,section.join-us img,section.whos-in img{display:inline-block;margin:0 0 4px}section.its-on p,section.push-notification p,section.join-us p,section.whos-in p{font-size:18px;margin:36px auto 0;max-width:768px}section.its-on a,section.push-notification a,section.join-us a,section.whos-in a{color:#fff;font-weight:700;text-decoration:underline}section.its-on a:hover,section.push-notification a:hover,section.join-us a:hover,section.whos-in a:hover{color:pink;text-decoration:underline}section.its-on img.bottom,section.push-notification img.bottom,section.join-us img.bottom,section.whos-in img.bottom{max-width:100%;height:auto;margin-top:20px;margin-bottom:-20px}section.its-on .fftf,section.push-notification .fftf,section.join-us .fftf,section.whos-in .fftf{max-width:100%;display:block;margin:5px auto 40px}@media only screen and (min-width:768px){section.its-on .fftf,section.push-notification .fftf,section.join-us .fftf,section.whos-in .fftf{width:500px}}section.its-on .logos,section.push-notification .logos,section.join-us .logos,section.whos-in .logos{max-width:850px;margin:0 auto;height:auto}section.its-on .logos img,section.push-notification .logos img,section.join-us .logos img,section.whos-in .logos img{display:inline-block;margin:0 0 4px;width:auto;height:40px}@media only screen and (min-width:768px){section.its-on .logos img,section.push-notification .logos img,section.join-us .logos img,section.whos-in .logos img{width:auto;height:auto}}section.widget{color:#c7bdd5}section.widget a{color:#fff;font-weight:400;border-bottom:1px dotted rgba(255,255,255,.5)}section.widget a:hover{color:pink;border-bottom:1px dotted pink}section.widget a.btn{font-size:18px;margin:0;padding:7px 15px;color:#fff;text-decoration:none;font-weight:400;vertical-align:middle;text-transform:uppercase}@media only screen and (min-width:768px){section.widget a.btn{font-size:20px;padding:9px 20px}}section.widget a.btn img{vertical-align:middle;margin-top:-5px}section.widget h2{color:#fff}section.widget h3{margin-top:40px;font-size:20px;color:#fff}section.widget iframe.banner{margin-left:-10px;width:430px;height:104px}section.widget iframe.modalDemo{width:750px;height:467px}section.widget .codebox{margin:0 auto 15px;width:450px;padding:13px 5px 15px;background:rgba(0,0,0,.5);border-radius:10px;text-align:center}section.widget .codebox p{padding:5px 10px 10px;margin:0;font-size:15px}section.widget .codebox p a{font-weight:400}section.widget .codebox.round{border-radius:60px 10px 10px}section.widget .codebox.wide{width:760px}section.widget .codebox pre{margin:0 6px;text-align:left;color:#827495;background:#000;border-radius:10px;border:0}section.widget small{font-size:13px;opacity:.6}section.call-to-action{background-color:#fff;color:#000;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px;text-align:center}@media only screen and (min-width:768px){section.call-to-action{padding:60px 20px}}section.call-to-action.opaque{background:#fff}section.call-to-action a{text-decoration:underline;color:#505072}section.call-to-action a:hover{color:#1c1c25}section.call-to-action h2{font-size:28px;font-weight:300;margin:0 0 32px}@media only screen and (min-width:768px){section.call-to-action h2{font-size:50px}}section.call-to-action p{font-size:18px;margin:12px auto 0;max-width:800px;font-weight:500}@media only screen and (min-width:768px){section.call-to-action p{text-align:justify}}section.call-to-action ul{max-width:800px;text-align:left;margin:0 auto;font-size:18px;font-weight:500;padding:20px 0 20px 20px}@media only screen and (min-width:768px){section.call-to-action ul{padding-left:40px}}section.vigil,section.team-internet{background-color:#313142;color:#fff;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px;text-align:center}section.vigil.vigil,section.team-internet.vigil{padding-bottom:1px;padding-top:15px}section.vigil.vigil.below,section.team-internet.vigil.below{padding-top:1px;padding-bottom:40px}@media only screen and (min-width:768px){section.vigil,section.team-internet{padding:60px 20px}}section.vigil h2,section.team-internet h2{font-size:28px;font-weight:300;margin:0 0 32px}@media only screen and (min-width:768px){section.vigil h2,section.team-internet h2{margin:0 0 12px;font-size:50px}}section.vigil.vigil h2,section.team-internet.vigil h2{margin-bottom:30px}section.vigil p,section.team-internet p{font-size:18px;margin:12px auto 0;max-width:650px}section.vigil.vigil p,section.team-internet.vigil p{max-width:800px}section.vigil img,section.team-internet img{max-width:100%;height:auto}section.vigil a,section.team-internet a{color:#fff;text-decoration:underline;font-weight:700}section.vigil a.btn,section.team-internet a.btn{font-size:18px;margin:0;padding:7px 15px;color:#fff;text-decoration:none;font-weight:400;vertical-align:middle;text-transform:uppercase}@media only screen and (min-width:768px){section.vigil a.btn,section.team-internet a.btn{font-size:20px;padding:9px 20px}}section.vigil a.btn img,section.team-internet a.btn img{vertical-align:middle;margin-top:-5px}section.wall{background-color:#000;position:relative;height:480px}section.wall #wall-scroller{width:48px;height:48px;position:absolute;left:50%;top:0;margin-left:-24px;margin-top:0}section.wall #wall-scroller a{position:absolute;display:block;background-color:#000;opacity:0;cursor:default;-webkit-transition:all 1s ease-out,opacity 1s linear;-moz-transition:all 1s ease-out,opacity 1s linear;-o-transition:all 1s ease-out,opacity 1s linear;transition:all 1s ease-out,opacity 1s linear}section.wall #wall-scroller a.link{cursor:pointer}section.wall #wall-scroller a:hover,section.wall #wall-scroller a.hovered{-webkit-transition:all .1s ease-out,opacity 1s linear;-moz-transition:all .1s ease-out,opacity 1s linear;-o-transition:all .1s ease-out,opacity 1s linear;transition:all .1s ease-out,opacity 1s linear;-moz-transform:scale(1.2);-webkit-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2);-ms-transform:scale(1.2);box-shadow:0 0 50px #000;z-index:9001}section.wall #wall-scroller div.bubble{position:absolute;background:#fff;border-radius:10px;z-index:9002;transition:all .2s linear;opacity:0;pointer-events:none;box-shadow:5px 5px 50px #000;box-sizing:border-box;padding:15px;font-family:'Proxima Nova',sans-serif;font-weight:12px;line-height:17px;text-align:center;color:#000}section.wall #wall-scroller div.bubble strong{font-weight:600}section.wall #wall-scroller div.bubble span{margin-top:10px;display:block;font-weight:600;color:#17a783}section.wall #wall-scroller div.bubble span.link{text-decoration:underline}section.wall #wall-scroller div.arrow{position:absolute;width:0;height:0;margin-left:-15px;border-left:15px solid transparent;border-right:15px solid transparent;border-top:15px solid #fff;z-index:9002;transition:all .2s linear;opacity:0;pointer-events:none}section.wall-under{background-color:#313142;color:#fff;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 28px;text-align:center;display:none}@media only screen and (min-width:768px){section.wall-under{display:block}}section.wall-under .columns{position:relative;height:350px;overflow:hidden;display:none}@media (min-width:768px){section.wall-under{padding-bottom:60px}section.wall-under .columns{display:block}}section.wall-under .columns .show_all{display:none}section.wall-under .columns.obscured .show_all{position:absolute;display:block;left:0;bottom:0;width:100%;border:0 none transparent;z-index:2;font-size:16px}section.wall-under .columns.obscured .show_all a{font-weight:700;color:#fff;text-transform:uppercase;font-family:'Proxima Nova',sans-serif;text-decoration:underline}section.wall-under .columns.obscured .show_all a:hover{color:pink}section.wall-under .columns.obscured .gradient{position:absolute;bottom:0;left:0;width:100%;height:300px;pointer-events:none;z-index:1;border:0 none transparent;background:url(../images/gradient.png) bottom left repeat-x}section.wall-under .columns>div{padding:0}section.wall-under .columns>div.listing{min-height:350px;box-sizing:border-box;border-right:1px solid #4e4e66}section.wall-under .columns>div:last-child{border:0 none transparent}section.wall-under h5{font-family:'Proxima Nova',sans-serif;font-size:30px;font-weight:300;padding:0 0 15px;border-bottom:1px solid #4e4e66}section.wall-under ul{margin:20px 0 0;padding:0;list-style-type:none}section.wall-under li{padding:0 15px}section.wall-under li a,section.wall-under li span{display:inline-block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0;border-bottom:1px solid #4e4e66;color:#fff}section.wall-under li span{border-bottom:1px solid transparent}section.wall-under li a:hover{border-bottom:1px solid #fff}section.understand{background-color:#1c1c25;color:#c7bdd5;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px;text-align:center}@media only screen and (min-width:768px){section.understand{padding:60px 20px}}section.understand h2{font-size:28px;font-weight:300;margin:0 0 12px;color:#fff}@media only screen and (min-width:768px){section.understand h2{font-size:50px}}section.understand p{font-size:18px;margin:12px auto 0;max-width:650px}section.understand .video_wrapper{position:relative;padding-bottom:56.25%;padding-top:25px;height:0;margin:30px auto 0}@media only screen and (min-width:768px){section.understand .video_wrapper{padding-top:0;padding-bottom:0;height:399px;width:640px}}section.understand .video_wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;border-radius:5px;box-sizing:border-box}@media only screen and (min-width:768px){section.understand .video_wrapper iframe{border:10px solid #4c4c64}}section.understand .understand-take-action{font-size:32px;margin-top:30px}section.understand .other-resources{max-width:640px;margin:0 auto;padding:45px 0 10px}section.understand .other-resources h2{font-family:'Proxima Nova',sans-serif;font-size:30px;font-weight:300;max-width:600px;margin:0 auto;padding:15px 0;border-bottom:1px solid #4e4e66}section.understand .other-resources a{color:#fff;font-size:16px;font-weight:300;border-bottom:1px solid #fff}section.understand .other-resources a:hover{color:pink}section.faqs{background-color:#313142;color:#fff;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px;text-align:left}@media only screen and (min-width:768px){section.faqs{padding:60px 20px}}section.faqs .columns{position:relative;height:350px;overflow:hidden}@media (min-width:768px){section.faqs{padding-bottom:60px}section.faqs .columns{display:block}}section.faqs a{color:#fff;text-decoration:underline}section.faqs .columns .show_all{display:none}section.faqs .columns.obscured .show_all{position:absolute;display:block;text-align:center;left:0;bottom:0;width:100%;border:0 none transparent;z-index:2;font-size:16px}section.faqs .columns.obscured .show_all a{font-weight:700;color:#fff;text-transform:uppercase;font-family:'Proxima Nova',sans-serif;text-decoration:underline}section.faqs .columns.obscured .show_all a:hover{color:pink}section.faqs .columns.obscured .gradient{position:absolute;bottom:0;left:0;width:100%;height:300px;pointer-events:none;z-index:1;border:0 none transparent;background:url(../images/gradient.png) bottom left repeat-x}section.faqs .columns>div{padding:0}section.faqs .columns>div.listing{min-height:350px;box-sizing:border-box;border:0 none transparent}section.faqs h5,section.faqs h2{font-family:'Proxima Nova',sans-serif;font-size:25px;font-weight:300;border-bottom:1px solid #4e4e66;padding:0 0 15px;margin:30px 0 15px}section.faqs h5:first-child,section.faqs h2:first-child{margin-top:0}@media only screen and (min-width:768px){section.faqs h5,section.faqs h2{font-size:30px;padding:0 0 15px 15px}}@media only screen and (min-width:768px){section.faqs p{padding:0 15px}}#comcast section.faqs{background-color:#1c1c25!important}#comcast section.faqs h2{font-family:'Proxima Nova',sans-serif;font-size:50px!important;font-weight:300;border-bottom:0 transparent;padding:0 0 15px;margin:30px 0 15px;text-align:center}#comcast section.faqs h2:first-child{margin-top:0}@media only screen and (min-width:768px){#comcast section.faqs h2{font-size:30px;padding:0 0 15px 15px}}section.myths{background-color:#1c1c25;color:#fff;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px;text-align:left}@media only screen and (min-width:768px){section.myths{padding:60px 20px}}section.myths .columns{position:relative;height:350px;overflow:hidden}@media (min-width:768px){section.myths{padding-bottom:60px}section.myths .columns{display:block}}section.myths a{color:#fff;text-decoration:underline}section.myths .columns .show_all{display:none}section.myths .columns.obscured .show_all{position:absolute;display:block;text-align:center;left:0;bottom:0;width:100%;border:0 none transparent;z-index:2;font-size:16px}section.myths .columns.obscured .show_all a{font-weight:700;color:#fff;text-transform:uppercase;font-family:'Proxima Nova',sans-serif;text-decoration:underline}section.myths .columns.obscured .show_all a:hover{color:pink}section.myths .columns.obscured .gradient{position:absolute;bottom:0;left:0;width:100%;height:300px;pointer-events:none;z-index:1;border:0 none transparent;background:url(../images/gradient-dark.png) bottom left repeat-x}section.myths .columns>div{padding:0}section.myths .columns>div.listing{min-height:350px;box-sizing:border-box;border:0 none transparent}section.myths .columns>div.listing span{margin-top:10px;display:block;font-weight:600;color:#17a783}section.myths h5,section.myths h2{font-family:'Proxima Nova',sans-serif;font-size:25px;font-weight:300;border-bottom:1px solid #4e4e66;padding:0 0 15px;margin:30px 0 15px}section.myths h5:first-child,section.myths h2:first-child{margin-top:0}@media only screen and (min-width:768px){section.myths h5,section.myths h2{font-size:30px;padding:0 0 15px 15px}}@media only screen and (min-width:768px){section.myths p{padding:0 15px}}section.questions-answers{background-color:#313142;color:#fff;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px;text-align:left}@media only screen and (min-width:768px){section.questions-answers{padding:60px 20px}}section.questions-answers .columns{position:relative;height:350px;overflow:hidden}@media (min-width:768px){section.questions-answers{padding-bottom:60px}section.questions-answers .columns{display:block}}section.questions-answers a{color:#fff;text-decoration:underline}section.questions-answers .columns .show_all{display:none}section.questions-answers .columns.obscured .show_all{position:absolute;display:block;text-align:center;left:0;bottom:0;width:100%;border:0 none transparent;z-index:2;font-size:16px}section.questions-answers .columns.obscured .show_all a{font-weight:700;color:#fff;text-transform:uppercase;font-family:'Proxima Nova',sans-serif;text-decoration:underline}section.questions-answers .columns.obscured .show_all a:hover{color:pink}section.questions-answers .columns.obscured .gradient{position:absolute;bottom:0;left:0;width:100%;height:300px;pointer-events:none;z-index:1;border:0 none transparent;background:url(../images/gradient.png) bottom left repeat-x}section.questions-answers .columns>div{padding:0}section.questions-answers .columns>div.listing{min-height:350px;box-sizing:border-box;border:0 none transparent}section.questions-answers h5,section.questions-answers h2{font-family:'Proxima Nova',sans-serif;font-size:25px;font-weight:300;border-bottom:1px solid #4e4e66;padding:0 0 15px;margin:30px 0 15px}section.questions-answers h5:first-child,section.questions-answers h2:first-child{margin-top:0}@media only screen and (min-width:768px){section.questions-answers h5,section.questions-answers h2{font-size:30px;padding:0 0 15px 15px}}@media only screen and (min-width:768px){section.questions-answers p{padding:0 15px}}section.tshirt{background-color:#1c1c25;background-image:url(../images/tshirt-background.png);background-repeat:no-repeat;background-position:50% 105%;color:#c7bdd5;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px;text-align:center}@media only screen and (min-width:768px){section.tshirt{padding:60px 20px}}section.tshirt h2{font-size:28px;font-weight:300;margin:0 0 12px;color:#fff}@media only screen and (min-width:768px){section.tshirt h2{font-size:50px}}section.tshirt p{font-size:18px;margin:12px auto 20px;max-width:650px}section.tshirt .heightfix{display:block;height:345px}section.tshirt .tshirt-buy{width:117px;font-size:17px;font-weight:700;background-color:#0eb07d}section.political{background:#15151c url(../images/usmap.png) center 30px no-repeat;color:#c7bdd5;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 0;text-align:center}@media only screen and (min-width:768px){section.political{padding:60px 20px}}section.political h2{font-size:28px;font-weight:300;margin:10 0 32px;padding-top:10px;color:#fff}@media only screen and (min-width:768px){section.political h2{margin:0 0 12px;font-size:50px}}section.political p{font-size:18px;margin:12px auto 20px;max-width:650px;padding:0 20px}@media only screen and (min-width:768px){section.political p{padding:0}}section.political hr{background-color:#313141;border:0;height:1px;margin:0 auto;max-width:740px}section.political .key h3{border-left:solid 10px #fff;color:#fff;display:inline-block;font-size:18px;font-weight:700;line-height:29px;margin:24px 12px 0;padding-left:10px;text-transform:uppercase}section.political .key h3.cable{border-color:#ee4b4c}section.political .key h3.unknown{border-color:#343444}section.political .key h3.internet{border-color:#2dbb9b}section.political .cash{background-color:#292937;margin:35px auto 12px;padding:8px;height:48px;max-width:580px}section.political .cash .spending{float:left;height:31px;line-height:31px}section.political .cash .spending .money-sign{float:left;font-size:24px;font-weight:700;margin-left:7px}section.political .cash .spending .amount{float:left;font-size:16px;font-weight:700;margin-left:6px;text-decoration:underline}section.political .cash .spending.cable{background-color:#ee4b4c;width:70%}section.political .cash .spending.internet{background-color:#2dbb9b;width:30%}section.political select{font-size:30px;color:#000;padding:10px;cursor:pointer}section.political select:hover{background:#eee}section.political select option{color:#000}section.political .isotope{margin:0 auto;padding:28px 0 0}section.political .isotope.no-transitions .politician{transition-property:none!important}section.political .isotope .politician{color:#fff;height:190px;position:relative;width:150px;box-sizing:border-box}section.political .isotope .politician img{height:100%;width:100%}section.political .isotope .politician .details{bottom:6px;padding:0 24px;position:absolute;text-shadow:1px 1px 1px rgba(0,0,0,.7);width:100%}section.political .isotope .politician .details .name{font-size:15px;font-weight:700;margin-bottom:0}section.political .isotope .politician .details .organization{font-size:9px;font-weight:700;text-transform:uppercase}section.political .isotope .politician .twitter{background-color:rgba(0,0,0,.6);color:#fff;cursor:pointer;font-weight:700;height:100%;left:0;opacity:0;position:absolute;text-align:center;top:0;width:100%;-webkit-transition:opacity .3s;transition:opacity .3s}section.political .isotope .politician .twitter img{height:auto;width:auto;padding-top:160px;margin-top:40px;-webkit-transition:margin-top .3s;transition:margin-top .3s}section.political .isotope .politician .twitter:hover{opacity:1}section.political .isotope .politician .twitter:hover img{margin-top:0}section.political .isotope .politician.small{height:190px;width:150px}section.political .isotope .politician.small .details{bottom:6px}section.political .isotope .politician.small .details .name{border-bottom:0;font-size:15px;margin-bottom:0}section.political .isotope .politician.small .twitter img{padding-top:45px}@media only screen and (min-width:480px){section.political .isotope .politician{height:380px;width:300px}section.political .isotope .politician .details{bottom:15px}section.political .isotope .politician .details .name{border-bottom:1px solid rgba(46,46,46,.5);font-size:22px;margin-bottom:6px}}section.political .isotope .politician .color{background-color:rgba(231,75,76,.5);height:100%;position:absolute;width:100%}section.political .isotope .politician.active .color{box-shadow:inset 0 0 20px #000}section.political .isotope .politician.team-cable .color{background-color:rgba(234,37,37,.5)}section.political .isotope .politician.half-evil .color{background:-moz-linear-gradient(left,rgba(234,37,37,.5) 0,rgba(52,52,68,.5) 40%);background:-webkit-gradient(linear,left top,right top,color-stop(0%,rgba(234,37,37,.5)),color-stop(40%,rgba(52,52,68,.5)));background:-webkit-linear-gradient(left,rgba(234,37,37,.5) 0,rgba(52,52,68,.5) 40%);background:-o-linear-gradient(left,rgba(234,37,37,.5) 0,rgba(52,52,68,.5) 40%);background:-ms-linear-gradient(left,rgba(234,37,37,.5) 0,rgba(52,52,68,.5) 40%);background:linear-gradient(to right,rgba(234,37,37,.5) 0,rgba(52,52,68,.5) 40%)}section.political .isotope .politician.undecided .color{background-color:rgba(46,46,80,.5)}section.political .isotope .politician.team-internet .color{background-color:rgba(44,188,155,.5)}section.political .cash-note{font-size:13px}section.political .cash-note a{color:#2dbb9b;font-weight:700;text-decoration:underline}section.political a.btn{font-size:24px;margin:32px 0 0;padding:10px 22px}@media only screen and (min-width:768px){section.political a.btn{font-size:32px}}section.political a.btn.btn-all{background-color:#7573bc;color:#fff;margin-bottom:32px;font-size:22px;padding:3px 10px}section.political a.btn.btn-all:hover{background-color:#605fa2}section.change-avatar{background-color:#1c1c25;color:#c7bdd5;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px 10px;text-align:center}@media only screen and (min-width:768px){section.change-avatar{padding:60px 20px 10px}}section.change-avatar h2{font-size:28px;font-weight:300;margin:0 0 12px;color:#fff}@media only screen and (min-width:768px){section.change-avatar h2{font-size:50px}}section.change-avatar p{font-size:18px;margin:12px auto 0;max-width:650px}section.change-avatar div.avatar-wrapper{max-width:700px;margin:auto}section.change-avatar div.image{display:inline-block;box-sizing:border-box;margin:25px 6px 0;border-radius:5px;border:7px solid #2e2e3d;max-width:100%}section.change-avatar div.image img{width:100px;height:auto}@media only screen and (min-width:768px){section.change-avatar div.image img{width:140px;height:auto}}section.change-avatar hr{max-width:700px;margin:40px auto;border-color:#2c2c35}section.change-avatar .widget{text-align:left}section.change-avatar .widget a{color:#fff;font-weight:700;text-decoration:underline}section.change-avatar .widget a:hover{color:pink}section.change-avatar .widget .preview img{max-width:100%}section.change-avatar a.btn{font-size:24px;margin:32px 0 0;padding:10px 22px;text-decoration:none;font-weight:400}section.change-avatar a.btn:hover{color:#fff}@media only screen and (min-width:768px){section.change-avatar a.btn{font-size:32px}}section.share-images{background-color:#1c1c25;color:#c7bdd5;font-family:'Proxima Nova',sans-serif;font-weight:300;padding:40px 20px;text-align:center}@media only screen and (min-width:768px){section.share-images{padding:60px 20px}}section.share-images h2{font-size:28px;font-weight:300;margin:0 0 12px;color:#fff}@media only screen and (min-width:768px){section.share-images h2{font-size:50px}}section.share-images p{font-size:18px;margin:12px auto 0;max-width:650px}section.share-images div.image{display:inline-block;box-sizing:border-box;margin:25px 6px 0;border-radius:5px;border:7px solid #2e2e3d;max-width:100%}section.share-images div.image img{max-width:100%;height:auto}section.share-images hr{max-width:700px;margin:40px auto;border-color:#2c2c35}section.share-images .widget{text-align:left}section.share-images .widget a{color:#fff;font-weight:700;text-decoration:underline}section.share-images .widget a:hover{color:pink}section.share-images .widget .preview img{max-width:100%}section.share-images a.btn{font-size:24px;margin:32px 0 0;padding:10px 22px;text-decoration:none;font-weight:400}section.share-images a.btn:hover{color:#fff}@media only screen and (min-width:768px){section.share-images a.btn{font-size:32px}}footer{border-top:4px solid #3b3b58;background:#5d5d88;color:#c6c6e3;padding:40px 0;text-align:center;font-family:'Proxima Nova',sans-serif}footer .org_logo{padding:10px 0}footer .socials{padding:10px 0 20px}footer .socials img{margin:0 7px;width:24px;height:24px}footer .socials a{opacity:.5}footer .socials a:hover{opacity:1}footer .blurb{font-size:23px;font-weight:100;padding-bottom:10px}footer .blurb p{margin-bottom:0}footer .blurb a{color:#fff}footer .blurb a:hover{color:pink}footer .blurb small{font-size:14px}footer .blurb em{margin:0 10px 0 7px}footer hr{border-top:1px solid #666694;border-left:0 none transparent;border-right:0 none transparent;border-bottom:0 none transparent}footer hr.narrow{width:200px}#supporters{background:#fff}body.privacy{background-color:#101010;background-image:none}body.privacy img{margin:0 0 24px;max-width:500px;width:100%}body.privacy a{color:#fff;font-weight:700}body.privacy a:hover,body.privacy a:select{text-decoration:underline}body.privacy section.team-internet p{text-align:left}body.privacy section.team-internet.fight-for-the-future{background-color:#1c1c25}section.title{background-color:#7573bc;padding:36px 28px 52px;text-align:center}section.title a{color:#fff;font-weight:700}section.title a:hover{color:pink}section.title h2{color:#fff;font-size:28px}@media only screen and (min-width:768px){section.title h2{font-size:50px}}.oldie section.form form .left{height:176px}.oldie section.form form .left .flex .input-address{border-right:0;border-bottom:1px solid #d1d1e9;width:100%}.oldie section.form form .left .flex .input-zip{width:100%}.oldie section.form form textarea{border-bottom:0;color:#9797aa;font-size:14px;height:90px;overflow:hidden;padding:12px 15px 0;resize:none}@media only screen and (min-width:768px){.oldie section.form form textarea{height:176px}}.oldie section.form form input.placeholder,.oldie section.form form textarea.placeholder{color:#999}img.github{position:absolute;display:none;top:0;right:0;border:0;z-index:9001}@media only screen and (min-width:768px){img.github{display:block}}img.github.fixed{position:fixed}a.break{position:fixed;font-family:Proxima Nova;bottom:0;right:0;width:100%;padding:10px 15px 5px 10px;box-sizing:border-box;color:#fff;z-index:9003;background-color:#7573bc;-webkit-transition:all .3s linear;-moz-transition:all .3s linear;-o-transition:all .3s linear;transition:all .3s linear;font-weight:700;box-shadow:0 5px 20px #000}@media only screen and (min-width:768px){a.break{-webkit-border-top-left-radius:10px;-moz-border-radius-topleft:10px;border-top-left-radius:10px;display:inline-block;width:auto}}a.break:hover{background-color:#6361a2}body.embed{background:0 0}body.embed section.form{padding-top:15px}body.embed #first-fold{padding-bottom:20px}body.embed .editModal .modal-dialog{max-width:750%;width:85%}body.embed .editModal .modal-content .modal-header h4{display:none}body.embed .editModal .modal-content .modal-header p{display:none}body.embed .editModal .modal-content .modal-header .close{margin-top:-12px}body.embed .editModal .modal-content .modal-disclosure{display:block;margin-top:15px;color:#bbb;text-align:center}body#scoreboard{background-image:none}body#scoreboard .homepage-link{background-color:#7573bc;color:#fff;display:block;font-weight:700;padding:15px 20px;transition:color .3s,background-color .3s}body#scoreboard .homepage-link:hover{background-color:#605fa2;text-decoration:underline}body#scoreboard #contact-them{height:480px}@media only screen and (min-width:480px){body#scoreboard #contact-them{height:420px}}@media only screen and (min-width:768px){body#scoreboard #contact-them{height:420px}}@media only screen and (min-width:992px){body#scoreboard #contact-them{height:380px}}@-webkit-keyframes bladeFade{0%{opacity:1}100%{opacity:0}}@keyframes bladeFade{0%{opacity:1}100%{opacity:0}}.spinner{position:relative;display:block;width:100%;height:100%}.spinner .blade{position:absolute;left:0;top:50%;margin-top:-4%;height:8%;width:100%}.spinner .blade>div{width:25%;margin:0 0 0 auto;height:100%;background:#f80d1b;border-radius:1000px;opacity:1;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-name:bladeFade;animation-name:bladeFade;-webkit-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.spinner .blade.d02{-ms-transform:rotate(-30deg);-webkit-transform:rotate(-30deg);transform:rotate(-30deg)}.spinner .blade.d02>div{-webkit-animation-delay:-.16666666666666666s;animation-delay:-.16666666666666666s}.spinner .blade.d03{-ms-transform:rotate(-60deg);-webkit-transform:rotate(-60deg);transform:rotate(-60deg)}.spinner .blade.d03>div{-webkit-animation-delay:-.3333333333333333s;animation-delay:-.3333333333333333s}.spinner .blade.d04{-ms-transform:rotate(-90deg);-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.spinner .blade.d04>div{-webkit-animation-delay:-.5s;animation-delay:-.5s}.spinner .blade.d05{-ms-transform:rotate(-120deg);-webkit-transform:rotate(-120deg);transform:rotate(-120deg)}.spinner .blade.d05>div{-webkit-animation-delay:-.6666666666666666s;animation-delay:-.6666666666666666s}.spinner .blade.d06{-ms-transform:rotate(-150deg);-webkit-transform:rotate(-150deg);transform:rotate(-150deg)}.spinner .blade.d06>div{-webkit-animation-delay:-.8333333333333333s;animation-delay:-.8333333333333333s}.spinner .blade.d07{-ms-transform:rotate(-180deg);-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.spinner .blade.d07>div{-webkit-animation-delay:-1s;animation-delay:-1s}.spinner .blade.d08{-ms-transform:rotate(-210deg);-webkit-transform:rotate(-210deg);transform:rotate(-210deg)}.spinner .blade.d08>div{-webkit-animation-delay:-1.1666666666666665s;animation-delay:-1.1666666666666665s}.spinner .blade.d09{-ms-transform:rotate(-240deg);-webkit-transform:rotate(-240deg);transform:rotate(-240deg)}.spinner .blade.d09>div{-webkit-animation-delay:-1.3333333333333333s;animation-delay:-1.3333333333333333s}.spinner .blade.d10{-ms-transform:rotate(-270deg);-webkit-transform:rotate(-270deg);transform:rotate(-270deg)}.spinner .blade.d10>div{-webkit-animation-delay:-1.5s;animation-delay:-1.5s}.spinner .blade.d11{-ms-transform:rotate(-300deg);-webkit-transform:rotate(-300deg);transform:rotate(-300deg)}.spinner .blade.d11>div{-webkit-animation-delay:-1.6666666666666665s;animation-delay:-1.6666666666666665s}.spinner .blade.d12{-ms-transform:rotate(-330deg);-webkit-transform:rotate(-330deg);transform:rotate(-330deg)}.spinner .blade.d12>div{-webkit-animation-delay:-1.8333333333333333s;animation-delay:-1.8333333333333333s}#developer section.wall-under .columns{display:block}#developer section.wall-under .columns .gradient{background:url(../images/gradient-dark.png) bottom left repeat-x!important}#comcast section.wall-under{background-color:#313142}#comcast section.wall-under .columns{display:block}#comcast section.wall-under .columns .gradient{background:url(../images/gradient.png) bottom left repeat-x!important}body#letter{background-attachment:scroll;background-color:#211f33;background-image:url(../images/background-v8.png)}body#letter section.title{padding:5px}body#letter section.title h2{font-size:20px}body#letter section.wall-under{display:block;background-color:transparent!important;background:url(../images/hole.png) bottom no-repeat!important;background-size:100% 30px!important;padding:10px;margin:0 auto;max-width:900px!important}body#letter section.wall-under .container{max-width:900px}body#letter section.wall-under .columns{display:block;height:700px}body#letter section.wall-under .columns .gradient{background:url(../images/curve.png) bottom no-repeat!important;background-size:100% 22px!important}body#letter section.wall-under .columns .show_all{color:#7c5bd2}body#letter section.wall-under .columns .show_all a{color:#7c5bd2}body#letter section.wall-under .columns .letter-wrapper .the-letter{background:url(../images/letter.png) no-repeat!important;background-size:100%!important;color:#000}body#letter section.wall-under .columns .letter-wrapper .the-letter .headline{padding:60px 60px 10px}body#letter section.wall-under .columns .letter-wrapper .the-letter .headline h1{border-bottom:1px #aaa solid;font-weight:300;font-size:60px;padding:25px;margin:5% auto 0;max-width:500px}body#letter section.wall-under .columns .letter-wrapper .the-letter .letter-copy{padding:1% 10% 10%;background:url(../images/letter-repeat.png) repeat-y!important;background-size:100%!important;text-align:left;font-size:18px;color:#211f33;border-radius:0 0 15px 15px}section.signatories{display:block;background-color:transparent!important;padding:60px;margin:0 auto;max-width:900px!important;color:#fff;text-align:center}section.signatories h2{font-family:'Proxima Nova',sans-serif;font-size:66px;line-height:72px;margin-bottom:20px;text-align:center;text-shadow:#000 0 1px 10px}section.signatories h3{font-family:'Proxima Nova',sans-serif;font-size:20px;font-weight:500;margin:0 auto 15px;padding:15px 0;color:#5d5d88}section.signatories a{color:#fff;font-size:16px;font-weight:300;border-bottom:1px solid #fff}section.signatories a:hover{color:pink}section.signatories h3 a{color:#c6c6e3;font-family:'Proxima Nova',sans-serif;font-size:20px;font-weight:600;margin:0 10px;padding:0;border-bottom:1px solid #5d5d88}section.letter-under{display:block;background-color:#1c1c25!important;padding:0;margin:0}section.letter-under .container{max-width:900px}section.letter-under .columns{display:block;padding:20px 0}section.letter-under .columns .gradient{background:url(../images/curve.png) bottom no-repeat!important;background-size:100% 22px!important}section.letter-under .columns .show_all{color:#7c5bd2}section.letter-under .columns .show_all a{color:#7c5bd2}section.letter-under .columns .letter-wrapper{margin:10px}@media only screen and (min-width:768px){section.letter-under .columns .letter-wrapper{margin:50px 0}}section.letter-under .columns .letter-wrapper .the-letter{background:url(../images/letter.png) no-repeat!important;background-size:100%!important;color:#000;border-radius:0 0 15px 15px}section.letter-under .columns .letter-wrapper .the-letter .headline{padding:60px 60px 10px;text-align:center}section.letter-under .columns .letter-wrapper .the-letter .headline h2{text-align:center;border-bottom:1px #aaa solid;font-weight:300;font-size:40px;padding:25px;margin:5% auto 0;max-width:500px}section.letter-under .columns .letter-wrapper .the-letter .letter-copy{padding:1% 10% 10%;background:url(../images/letter-repeat.png) repeat-y!important;background-size:100%!important;text-align:left;font-size:18px;color:#211f33;border-radius:0 0 15px 15px}body#google-employees{background-image:none!important;background-color:#245dc1}body#google-employees p{margin:0 0 10px;font-size:20px;color:#424242;font-weight:400;line-height:32px;margin-bottom:15px}body#google-employees p strong{font-size:28px;font-weight:500!important;font-family:'Proxima Nova',sans-serif}body#google-employees a.btn{padding:12px 6%;border-radius:2px;font-weight:700;text-shadow:none!important;text-decoration:none;font-size:18px;font-family:'Proxima Nova',sans-serif}body#google-employees .container-fluid{background-image:url(../images/background-v9.jpg)!important;background-size:auto 100%!important;background-repeat:no-repeat;background-position:center top}body#google-employees .container-fluid section#main.jumbotron{padding:5% 11%;display:block}body#google-employees .container-fluid section#main.jumbotron .col-md-8{display:block}@media only screen and (min-width:992px){body#google-employees .container-fluid section#main.jumbotron .col-md-8{padding-right:10%}}body#google-employees .container-fluid section#main.jumbotron .col-md-8 h1{text-shadow:none;font-weight:400;font-size:45px;color:#fff}body#google-employees .container-fluid section#main.jumbotron .col-md-8 h2{text-shadow:none!important;color:#fff;font-size:24px;line-height:34px}body#google-employees .container-fluid section#main.jumbotron .col-md-8 a.btn{border-color:#2656ab}body#google-employees .container-fluid section#main.jumbotron .col-md-8 a.btn:hover{border-color:#2656ab}body#google-employees .container-fluid section#main.jumbotron .col-md-4{float:none;border-top:6px solid #245dc1;border-bottom:10px solid #bfbfbf;padding:0;margin:0 auto 60px;font-weight:400;box-shadow:0 0 3px rgba(0,0,0,.7)}@media only screen and (min-width:992px){body#google-employees .container-fluid section#main.jumbotron .col-md-4{float:right}}body#google-employees .container-fluid section#main.jumbotron .col-md-4 .sign-widget{width:100%;background:#f9f9f9;border-right:1px solid #d9d9d9;border-left:1px solid #d9d9d9;padding:10px 20px}body#google-employees .container-fluid section#main.jumbotron .col-md-4 .sign-widget h3{color:#424242;margin-top:0;line-height:32px;text-shadow:none}body#google-employees .container-fluid section#main.jumbotron .col-md-4 .sign-widget form input{width:100%;margin:8px 0;border-radius:2px;border:1px solid #c2c2c2;padding:5px;font-weight:400;font-family:'Proxima Nova',sans-serif}body#google-employees .container-fluid section#main.jumbotron .col-md-4 .sign-widget form input[type=submit]{margin:10px 0;border:0;background-color:#5cb85c;border-color:#4cae4c;height:50px;color:#fff;font-size:18px;font-weight:700}body#google-employees .container-fluid section#main.jumbotron .col-md-4 .sign-widget form input[type=submit]:hover{background-color:#449d44;border-color:#398439}body#google-employees .container-fluid section#main.jumbotron .col-md-4 .sign-widget form input[type=submit]:disabled{background-color:gray;cursor:default;opacity:.3}body#google-employees .container-fluid section#main.jumbotron .col-md-4 .sign-widget .legal-text{text-align:center;font-size:11px;padding:5px 0;text-shadow:none;color:#424242}body#google-employees .container-fluid section#main.jumbotron .col-md-4 .sign-widget .legal-text a{font-weight:700;color:#424242}body#google-employees section.letter{background-color:#fff;padding:6% 10%;border-top:1px solid #d9d9d9}body#google-employees section.letter .col-md-12{float:none}@media only screen and (min-width:992px){body#google-employees section.letter .col-md-12{padding:40px}}body#google-employees section.care{background-color:#fff;padding:6% 10%;display:block;border-top:1px solid #d9d9d9}body#google-employees section.care .col-md-12{float:none;display:block}@media only screen and (min-width:992px){body#google-employees section.care .col-md-12{padding:40px}}body#google-employees section.care .col-md-12 h2{font-size:28px;font-weight:500!important;font-family:'Proxima Nova',sans-serif;color:#424242}body#google-employees section.care .col-md-12 p{color:#424242}body#google-employees section.care .col-md-12 a.btn{margin:20px 0 0}body#google-employees .sharing-buttons{background:none!important}body#google-employees footer{border-top:4px solid #4475ca;background:#3565ba;color:#fff}body#google-employees footer hr{border-top:1px solid rgba(255,255,255,.5)}body#google-employees footer p{color:rgba(255,255,255,.5)} \ No newline at end of file diff --git a/css/count.css b/css/count.css deleted file mode 100644 index 2e9ee2716..000000000 --- a/css/count.css +++ /dev/null @@ -1,27 +0,0 @@ -.count { - font-size: 18px; - padding: 32px 0 24px; -} - -.count a { - color: white; - text-decoration: underline; -} - -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 125px; - } - - .count { - font-size: 28px; - margin: -32px 0 0; - } -} - -@media screen and (min-width: 992px) { - .count { - font-size: 28px; - margin: -46px 0 0; - } -} diff --git a/developers/index.html b/developers/index.html deleted file mode 100755 index ced93244b..000000000 --- a/developers/index.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/embed.html b/embed.html deleted file mode 100755 index eb35d5705..000000000 --- a/embed.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Battle For The Net - - - - - - - - - - - - - -
-
- - -
-
-
-

- Take action now! -

-

- Congress & the FCC must hear from all of us -

-
-
- -
- - - - -
- - - - -
-
-
- -
-
Edit
- -
-
-
-
- - -

- Demand Progress and Fight for the Future will contact you about future campaigns. Privacy -

- -

- Free Press will contact you about future campaigns. Privacy Policy -

-
-
-
-
-
-
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - diff --git a/favicon.ico b/favicon.ico deleted file mode 100755 index b6c91dec0..000000000 Binary files a/favicon.ico and /dev/null differ diff --git a/fonts/Flat-UI-Icons.dev.svg b/fonts/Flat-UI-Icons.dev.svg deleted file mode 100755 index 7b10907e8..000000000 --- a/fonts/Flat-UI-Icons.dev.svg +++ /dev/null @@ -1,140 +0,0 @@ - - - - -This is a custom SVG font generated by IcoMoon. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/Flat-UI-Icons.eot b/fonts/Flat-UI-Icons.eot deleted file mode 100755 index 656ca0842..000000000 Binary files a/fonts/Flat-UI-Icons.eot and /dev/null differ diff --git a/fonts/Flat-UI-Icons.svg b/fonts/Flat-UI-Icons.svg deleted file mode 100755 index 91087b3f7..000000000 --- a/fonts/Flat-UI-Icons.svg +++ /dev/null @@ -1,140 +0,0 @@ - - - - -This is a custom SVG font generated by IcoMoon. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/Flat-UI-Icons.ttf b/fonts/Flat-UI-Icons.ttf deleted file mode 100755 index 73f7f4a10..000000000 Binary files a/fonts/Flat-UI-Icons.ttf and /dev/null differ diff --git a/fonts/Flat-UI-Icons.woff b/fonts/Flat-UI-Icons.woff deleted file mode 100755 index 7b8f80f03..000000000 Binary files a/fonts/Flat-UI-Icons.woff and /dev/null differ diff --git a/fonts/glyphicons-halflings-regular.eot b/fonts/glyphicons-halflings-regular.eot deleted file mode 100755 index 87eaa4342..000000000 Binary files a/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/fonts/glyphicons-halflings-regular.svg b/fonts/glyphicons-halflings-regular.svg deleted file mode 100755 index 5fee06854..000000000 --- a/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/glyphicons-halflings-regular.ttf b/fonts/glyphicons-halflings-regular.ttf deleted file mode 100755 index be784dc1d..000000000 Binary files a/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/fonts/glyphicons-halflings-regular.woff b/fonts/glyphicons-halflings-regular.woff deleted file mode 100755 index 2cc3e4852..000000000 Binary files a/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/fonts/icomoon-session.json b/fonts/icomoon-session.json deleted file mode 100755 index 1bab5d3e0..000000000 --- a/fonts/icomoon-session.json +++ /dev/null @@ -1 +0,0 @@ -{"share":"6", "iconsVersion":"1.5", "icomoon":{"selected":[{"idx":"783","unicode":"e02c"},{"idx":"782","unicode":"e02d"},{"idx":"780","unicode":"e02f"},{"idx":"868","unicode":"e006"},{"idx":"867","unicode":"e007"},{"idx":"866","unicode":"e008"},{"idx":"865","unicode":"e009"},{"idx":"864","unicode":"e00a"},{"idx":"863","unicode":"e00b"},{"idx":"862","unicode":"e00c"},{"idx":"861","unicode":"e00d"},{"idx":"860","unicode":"e00e"},{"idx":"859","unicode":"e00f"},{"idx":"858","unicode":"e010"},{"idx":"857","unicode":"e011"},{"idx":"856","unicode":"e012"},{"idx":"855","unicode":"e013"},{"idx":"847","unicode":"e01c"},{"idx":"846","unicode":"e01d"},{"idx":"797","unicode":"e01e"},{"idx":"796","unicode":"e01f"},{"idx":"792","unicode":"e024"},{"idx":"893","unicode":"e02b"},{"idx":"892","unicode":"e032"},{"idx":"891","unicode":"e033"},{"idx":"890","unicode":"e034"},{"idx":"793","unicode":"e022"},{"idx":"953","unicode":"e03b"},{"idx":"954","unicode":"e03c"},{"idx":"929","unicode":"e000"}],"customIcons":[{"metadata":{"id":"iconic","name":"Iconic","link":"http://somerandomdude.com/work/iconic/","grid":"16","author":"P.J. Onori","authorLink":"http://somerandomdude.com","license":"CC BY-SA 3.0","licenseLink":"http://creativecommons.org/licenses/by-sa/3.0/us/","defaultunicode":false},"svgs":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]},{"metadata":{"id":"meteocons","name":"Meteocons","link":"http://www.alessioatzeni.com/meteocons/","grid":"16","author":"Alessio Atzeni","authorLink":"http://www.alessioatzeni.com/","license":"Arbitrary","licenseLink":"http://www.alessioatzeni.com/meteocons/#about","defaultunicode":false},"svgs":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]},{"metadata":{"id":"broccolidry","name":"Broccolidry","link":"http://dribbble.com/shots/587469-Free-16px-Broccolidryiconsaniconsetitisfullof-icons","grid":"16","author":"Visual Idiot","authorLink":"http://idiot.vc/","license":"Aribitrary","licenseLink":"http://licence.visualidiot.com/","defaultunicode":false},"svgs":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]},{"metadata":{"id":"icomoon","name":"IcoMoon - Free","link":"http://keyamoon.com/icomoon/","grid":"16","author":"Keyamoon","authorLink":"http://keyamoon.com/","license":"CC BY 3.0","licenseLink":"http://creativecommons.org/licenses/by/3.0/","defaultunicode":false},"svgs":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]},{"metadata":{"id":"linecons","name":"Linecons","link":"http://designmodo.com/linecons-free/","grid":"32","author":"Sergey Shmidt","authorLink":"http://shmidt.in/","license":"CC BY-SA 3.0","licenseLink":"http://creativecommons.org/licenses/by-sa/3.0/","defaultunicode":false},"svgs":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]},"\n\n","\n\n","\n\n","\n\n","\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n","\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n","\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n\t\n\t\t\n\t\n\n",{"metadata":{"id":"Flat-UI-Icons","name":"Flat UI Icons","link":"http://designmodo.com/flat","grid":"16","author":"Sergey Shmidt","authorLink":"http://designmodo.com","license":"Attribution-NonCommercial-NoDerivs 3.0 Unported","licenseLink":"http://creativecommons.org/licenses/by-nc-nd/3.0/","defaultunicode":true},"svgs":["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]},"\n\n","\n\n\t\n\t\t\n\t\n\n","\n\n"],"IDs":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,780,782,783,792,796,797,846,847,855,856,857,858,859,860,861,862,863,864,865,866,867,868,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,793,953,954],"user":{"email":"keyamoon@gmail.com","newsletter":true,"secret":"29769e48fe4bab8807b024a41d770900e18015c1af12cf4ad63d2d19009e6a90aead0d2885d7a32787d7336b442a44662cdfddfa2a2b0c74445becb1f50a8998","uid":4}},"inputCache":"{\"baseline\":\"6.25\",\"emSize\":\"512\",\"prev_size\":\"16\",\"hdr-imported\":\"checked\",\"iconAlignment\":\"0\",\"showGrid\":true,\"fi_name\":\"Flat UI Icons\",\"fi_id\":\"Flat-UI-Icons\",\"fi_link\":\"http://designmodo.com/flat\",\"fi_author\":\"Sergey Shmidt\",\"fi_authorLink\":\"http://designmodo.com\",\"fi_license\":\"Attribution-NonCommercial-NoDerivs 3.0 Unported\",\"fi_licenseLink\":\"http://creativecommons.org/licenses/by-nc-nd/3.0/\",\"include_metadata\":true,\"base64\":false,\"img-height\":\"32\",\"img-color\":\"000000\",\"include_png\":\"checked\",\"fi_class\":\"fui-\",\"showCloudLinks\":false,\"sprites-cols\":\"16\",\"ligatures\":false,\"include_sprites\":false,\"hdr-iconic\":false,\"hdr-meteocons\":false,\"hdr-broccolidry\":false,\"hdr-icomoon\":false,\"hdr-linecons\":false,\"whitespace\":\"50\",\"glyph_widths\":\"100\",\"manualMetrics\":false,\"designGrid\":\"\",\"hdr-Flat-UI-Icons\":true}"} \ No newline at end of file diff --git a/fonts/proximanova-bold-webfont.eot b/fonts/proximanova-bold-webfont.eot deleted file mode 100755 index c9a4a1f55..000000000 Binary files a/fonts/proximanova-bold-webfont.eot and /dev/null differ diff --git a/fonts/proximanova-bold-webfont.svg b/fonts/proximanova-bold-webfont.svg deleted file mode 100755 index 4b2530a13..000000000 --- a/fonts/proximanova-bold-webfont.svg +++ /dev/null @@ -1,235 +0,0 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Copyright c Mark Simonson 2005 All rights reserved -Designer : Mark Simonson -Foundry URL : httpwwwmarksimonsoncom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/proximanova-bold-webfont.ttf b/fonts/proximanova-bold-webfont.ttf deleted file mode 100755 index d465190d6..000000000 Binary files a/fonts/proximanova-bold-webfont.ttf and /dev/null differ diff --git a/fonts/proximanova-bold-webfont.woff b/fonts/proximanova-bold-webfont.woff deleted file mode 100755 index 523b36f26..000000000 Binary files a/fonts/proximanova-bold-webfont.woff and /dev/null differ diff --git a/fonts/proximanova-light-webfont.eot b/fonts/proximanova-light-webfont.eot deleted file mode 100755 index 330fe779b..000000000 Binary files a/fonts/proximanova-light-webfont.eot and /dev/null differ diff --git a/fonts/proximanova-light-webfont.svg b/fonts/proximanova-light-webfont.svg deleted file mode 100755 index 46536374c..000000000 --- a/fonts/proximanova-light-webfont.svg +++ /dev/null @@ -1,235 +0,0 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Copyright c Mark Simonson 2005 All rights reserved -Designer : Mark Simonson -Foundry URL : httpwwwmarksimonsoncom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/proximanova-light-webfont.ttf b/fonts/proximanova-light-webfont.ttf deleted file mode 100755 index b3ab32cb0..000000000 Binary files a/fonts/proximanova-light-webfont.ttf and /dev/null differ diff --git a/fonts/proximanova-light-webfont.woff b/fonts/proximanova-light-webfont.woff deleted file mode 100755 index 9deaeca41..000000000 Binary files a/fonts/proximanova-light-webfont.woff and /dev/null differ diff --git a/fonts/proximanova-regular-webfont.eot b/fonts/proximanova-regular-webfont.eot deleted file mode 100755 index 67d7660d0..000000000 Binary files a/fonts/proximanova-regular-webfont.eot and /dev/null differ diff --git a/fonts/proximanova-regular-webfont.svg b/fonts/proximanova-regular-webfont.svg deleted file mode 100755 index ba1fc1d3e..000000000 --- a/fonts/proximanova-regular-webfont.svg +++ /dev/null @@ -1,235 +0,0 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Copyright c Mark Simonson 2005 All rights reserved -Designer : Mark Simonson -Foundry URL : httpwwwmarksimonsoncom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/proximanova-regular-webfont.ttf b/fonts/proximanova-regular-webfont.ttf deleted file mode 100755 index ef4ffffd0..000000000 Binary files a/fonts/proximanova-regular-webfont.ttf and /dev/null differ diff --git a/fonts/proximanova-regular-webfont.woff b/fonts/proximanova-regular-webfont.woff deleted file mode 100755 index 00947ffe8..000000000 Binary files a/fonts/proximanova-regular-webfont.woff and /dev/null differ diff --git a/fonts/proximanova-regularitalic-webfont.eot b/fonts/proximanova-regularitalic-webfont.eot deleted file mode 100755 index 7ac5e623b..000000000 Binary files a/fonts/proximanova-regularitalic-webfont.eot and /dev/null differ diff --git a/fonts/proximanova-regularitalic-webfont.svg b/fonts/proximanova-regularitalic-webfont.svg deleted file mode 100755 index 9f263e4ac..000000000 --- a/fonts/proximanova-regularitalic-webfont.svg +++ /dev/null @@ -1,235 +0,0 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Copyright c Mark Simonson 2005 All rights reserved -Designer : Mark Simonson -Foundry URL : httpwwwmarksimonsoncom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/proximanova-regularitalic-webfont.ttf b/fonts/proximanova-regularitalic-webfont.ttf deleted file mode 100755 index b5fa19b58..000000000 Binary files a/fonts/proximanova-regularitalic-webfont.ttf and /dev/null differ diff --git a/fonts/proximanova-regularitalic-webfont.woff b/fonts/proximanova-regularitalic-webfont.woff deleted file mode 100755 index f2e094d65..000000000 Binary files a/fonts/proximanova-regularitalic-webfont.woff and /dev/null differ diff --git a/fonts/proximanova-semibold-webfont.eot b/fonts/proximanova-semibold-webfont.eot deleted file mode 100755 index 12a44d243..000000000 Binary files a/fonts/proximanova-semibold-webfont.eot and /dev/null differ diff --git a/fonts/proximanova-semibold-webfont.svg b/fonts/proximanova-semibold-webfont.svg deleted file mode 100755 index 45db25c8d..000000000 --- a/fonts/proximanova-semibold-webfont.svg +++ /dev/null @@ -1,235 +0,0 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Copyright c Mark Simonson 2005 All rights reserved -Designer : Mark Simonson -Foundry URL : httpwwwmarksimonsoncom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/proximanova-semibold-webfont.ttf b/fonts/proximanova-semibold-webfont.ttf deleted file mode 100755 index 2015b0815..000000000 Binary files a/fonts/proximanova-semibold-webfont.ttf and /dev/null differ diff --git a/fonts/proximanova-semibold-webfont.woff b/fonts/proximanova-semibold-webfont.woff deleted file mode 100755 index aafe47897..000000000 Binary files a/fonts/proximanova-semibold-webfont.woff and /dev/null differ diff --git a/fonts/roboto-bold-webfont.woff b/fonts/roboto-bold-webfont.woff deleted file mode 100755 index 859b60caf..000000000 Binary files a/fonts/roboto-bold-webfont.woff and /dev/null differ diff --git a/fonts/roboto-light-webfont.woff b/fonts/roboto-light-webfont.woff deleted file mode 100755 index 14a130f51..000000000 Binary files a/fonts/roboto-light-webfont.woff and /dev/null differ diff --git a/googleemployees/action.js b/googleemployees/action.js deleted file mode 100755 index 0f21c667b..000000000 --- a/googleemployees/action.js +++ /dev/null @@ -1,14 +0,0 @@ -$(function() { - $('#action_form').bind('submit', function(e){ - var form = $(this); - var buttons = form.find('input[type=submit]'); - - buttons.attr('disabled', 'disabled').text('Working...'); - - $.post(form.attr('action'), form.serialize(), function(data){ - alert('thanks!') - }); - - e.preventDefault(); - }); -}) \ No newline at end of file diff --git a/googleemployees/index.html b/googleemployees/index.html deleted file mode 100755 index ea58196fb..000000000 --- a/googleemployees/index.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - We're Google employees and Internet users and we want Google to use its lobbying for good. - - - - - - - - -
- - - - - - - -
- -
-

- We're Google employees and Internet users and we want Google to use its lobbying for good. -

-

Google helped pioneer open Internet principles, but its public silence on net neutrality will do harm to all of us. Let's take a strong stand for real net neutrality and Title II.

-
-
-
-
-

Join us calling on Google to come out for strong net neutrality

-
- -
- - -
- - - - - -
- - -
- -
- -
- - -
- -
- -
- -
-

Dear Google: "Let's stand with the Open Internet, let's stand with Title II net neutrality."

- -

The only way to make sure there are no fast or slow lanes on the Internet, as Google itself has advocated for, is for the FCC to stop using the same legal authority that has already lost twice in court and put Big Cable back under its main authority. As the FCC moves to make a decision in December, we can make sure they know where Google stands --- with the Open Internet and Title II.

- -

Sincerely,

- -

Google employees and Internet users

- -
- - -
-
-
-

Why We Care

- -

If Google wants to continue to help build and protect open Internet principles, it must be a real voice in this fight. The flip side is that if they don't seriously engage on this issue, it could do more harm than the company itself intends -- it could mean net neutrality goes away forever. Google's role in this debate is more important than ever -- it's one of the largest stakeholders in this fight and lawmakers have said it matters to them where Google stands.

- -

Google has already publicly said it is against paid prioritization and the Internet Association, a trade group they are a member of, has rebutted the Cable Industry's claims against real net neutrality and the only legally sound way to enact it, Title II. But, even though 3.7 millions comments have been filed with the FCC overwhelmingly in favor of net neutrality, Google filed no comments. Google's public position is close to where it needs to be, but if it doesn't do more, we could lose net neutrality forever.

- -

The fight over net neutrality is one of the biggest fights over the future of the Internet we've ever seen. That's why Google employees are standing up with the millions of Americans, hundreds of startups, and thousands of small businesses that are currently fighting the giant cable and phone monopolies on their own to ask the Google executive team to use its power to stand up for net neutrality.

- -

As Google employees, we chose to work for the Open Internet. Today, we hope Google will choose the Open Internet loud and clear; and stand up for net neutrality by urging reclassification of ISP’s as telecommunications services.

- -

We can’t allow for a new era of American discrimination. We can’t have the Internet of Europe where many fewer companies start up and thrive.

- -

The Internet has to be a bastion of creativity and new ideas. We must do all we can to keep the US Internet a leading example of free speech and open innovation.

- -

We must stand with the most legally defensible way to achieve net neutrality, that is reclassification of ISP’s as Title II common carriers.

- -

We believe in the power of the Internet and we must also recognize our power in this debate. We urge Google leadership to stand with us and take a stand now to ensure net neutrality.

-
- Take Action! -
-
- -
- - - - - - - - - - - - - - - - diff --git a/images/background-grass.jpg b/images/background-grass.jpg deleted file mode 100755 index b6b7fc5ff..000000000 Binary files a/images/background-grass.jpg and /dev/null differ diff --git a/images/background-v10.jpg b/images/background-v10.jpg deleted file mode 100755 index 14eac7d01..000000000 Binary files a/images/background-v10.jpg and /dev/null differ diff --git a/images/background-v11.jpg b/images/background-v11.jpg deleted file mode 100755 index 60375f546..000000000 Binary files a/images/background-v11.jpg and /dev/null differ diff --git a/images/background-v3.jpg b/images/background-v3.jpg deleted file mode 100755 index 6619eb6e6..000000000 Binary files a/images/background-v3.jpg and /dev/null differ diff --git a/images/background-v4.jpg b/images/background-v4.jpg deleted file mode 100755 index 967563251..000000000 Binary files a/images/background-v4.jpg and /dev/null differ diff --git a/images/background-v5.jpg b/images/background-v5.jpg deleted file mode 100755 index 3de223501..000000000 Binary files a/images/background-v5.jpg and /dev/null differ diff --git a/images/background-v6.jpg b/images/background-v6.jpg deleted file mode 100644 index 73f6bca13..000000000 Binary files a/images/background-v6.jpg and /dev/null differ diff --git a/images/background-v7.jpg b/images/background-v7.jpg deleted file mode 100644 index 155a92856..000000000 Binary files a/images/background-v7.jpg and /dev/null differ diff --git a/images/background-v8.png b/images/background-v8.png deleted file mode 100644 index e4f154044..000000000 Binary files a/images/background-v8.png and /dev/null differ diff --git a/images/background-v9.jpg b/images/background-v9.jpg deleted file mode 100644 index e528a13e2..000000000 Binary files a/images/background-v9.jpg and /dev/null differ diff --git a/images/background.jpg b/images/background.jpg deleted file mode 100755 index ed81635f9..000000000 Binary files a/images/background.jpg and /dev/null differ diff --git a/images/badge.png b/images/badge.png deleted file mode 100755 index 8f402d8e2..000000000 Binary files a/images/badge.png and /dev/null differ diff --git a/images/badges.png b/images/badges.png deleted file mode 100755 index 618ea0239..000000000 Binary files a/images/badges.png and /dev/null differ diff --git a/images/battle-for-the-net.jpg b/images/battle-for-the-net.jpg deleted file mode 100755 index f3bee8533..000000000 Binary files a/images/battle-for-the-net.jpg and /dev/null differ diff --git a/images/breaking.png b/images/breaking.png deleted file mode 100755 index af65094b3..000000000 Binary files a/images/breaking.png and /dev/null differ diff --git a/images/camera.png b/images/camera.png deleted file mode 100755 index 6697f5689..000000000 Binary files a/images/camera.png and /dev/null differ diff --git a/images/change_avatar/avatar-black.gif b/images/change_avatar/avatar-black.gif deleted file mode 100644 index 02920a7bc..000000000 Binary files a/images/change_avatar/avatar-black.gif and /dev/null differ diff --git a/images/change_avatar/avatar-cat.gif b/images/change_avatar/avatar-cat.gif deleted file mode 100755 index c6c4c3d16..000000000 Binary files a/images/change_avatar/avatar-cat.gif and /dev/null differ diff --git a/images/change_avatar/avatar-green.gif b/images/change_avatar/avatar-green.gif deleted file mode 100644 index 9372124e7..000000000 Binary files a/images/change_avatar/avatar-green.gif and /dev/null differ diff --git a/images/change_avatar/avatar-pink.gif b/images/change_avatar/avatar-pink.gif deleted file mode 100644 index 770c902cc..000000000 Binary files a/images/change_avatar/avatar-pink.gif and /dev/null differ diff --git a/images/change_avatar/avatar-purple.gif b/images/change_avatar/avatar-purple.gif deleted file mode 100644 index 52ca7f356..000000000 Binary files a/images/change_avatar/avatar-purple.gif and /dev/null differ diff --git a/images/change_avatar/avatar-red.gif b/images/change_avatar/avatar-red.gif deleted file mode 100644 index d5b2f1ad2..000000000 Binary files a/images/change_avatar/avatar-red.gif and /dev/null differ diff --git a/images/change_avatar/avatar-white-red.gif b/images/change_avatar/avatar-white-red.gif deleted file mode 100644 index dfa12f6d5..000000000 Binary files a/images/change_avatar/avatar-white-red.gif and /dev/null differ diff --git a/images/computer.png b/images/computer.png deleted file mode 100755 index 4198ecef7..000000000 Binary files a/images/computer.png and /dev/null differ diff --git a/images/cruz_moron.png b/images/cruz_moron.png deleted file mode 100755 index 24b846e50..000000000 Binary files a/images/cruz_moron.png and /dev/null differ diff --git a/images/cruz_moron_2.png b/images/cruz_moron_2.png deleted file mode 100755 index 2a2211e93..000000000 Binary files a/images/cruz_moron_2.png and /dev/null differ diff --git a/images/curve.png b/images/curve.png deleted file mode 100644 index c00bbe4ed..000000000 Binary files a/images/curve.png and /dev/null differ diff --git a/images/dearUSA_v2.png b/images/dearUSA_v2.png deleted file mode 100755 index 547b85d1f..000000000 Binary files a/images/dearUSA_v2.png and /dev/null differ diff --git a/images/dearusa.png b/images/dearusa.png deleted file mode 100755 index f9a60b811..000000000 Binary files a/images/dearusa.png and /dev/null differ diff --git a/images/demand-progress-logo.jpg b/images/demand-progress-logo.jpg deleted file mode 100755 index dcd898cb8..000000000 Binary files a/images/demand-progress-logo.jpg and /dev/null differ diff --git a/images/dp-gray.png b/images/dp-gray.png deleted file mode 100755 index e56d7ec06..000000000 Binary files a/images/dp-gray.png and /dev/null differ diff --git a/images/dp-large.png b/images/dp-large.png deleted file mode 100755 index c8cbf21a8..000000000 Binary files a/images/dp-large.png and /dev/null differ diff --git a/images/dp-transparent.png b/images/dp-transparent.png deleted file mode 100755 index 8b913e5de..000000000 Binary files a/images/dp-transparent.png and /dev/null differ diff --git a/images/dp-white.png b/images/dp-white.png deleted file mode 100644 index 1326cbd8d..000000000 Binary files a/images/dp-white.png and /dev/null differ diff --git a/images/dp.png b/images/dp.png deleted file mode 100755 index 36e0d709f..000000000 Binary files a/images/dp.png and /dev/null differ diff --git a/images/dp_footer.png b/images/dp_footer.png deleted file mode 100755 index 30394fa5a..000000000 Binary files a/images/dp_footer.png and /dev/null differ diff --git a/images/embed.png b/images/embed.png deleted file mode 100755 index a6cd9a022..000000000 Binary files a/images/embed.png and /dev/null differ diff --git a/images/engineis-logo.png b/images/engineis-logo.png deleted file mode 100644 index 9321f6652..000000000 Binary files a/images/engineis-logo.png and /dev/null differ diff --git a/images/engineis-white.png b/images/engineis-white.png deleted file mode 100644 index 3052e65fd..000000000 Binary files a/images/engineis-white.png and /dev/null differ diff --git a/images/fftf.png b/images/fftf.png deleted file mode 100755 index c9bd3111d..000000000 Binary files a/images/fftf.png and /dev/null differ diff --git a/images/fftf_footer.png b/images/fftf_footer.png deleted file mode 100755 index 72af75d5d..000000000 Binary files a/images/fftf_footer.png and /dev/null differ diff --git a/images/forkme.png b/images/forkme.png deleted file mode 100644 index c16143690..000000000 Binary files a/images/forkme.png and /dev/null differ diff --git a/images/freepress-logo.png b/images/freepress-logo.png deleted file mode 100755 index ba5a60f87..000000000 Binary files a/images/freepress-logo.png and /dev/null differ diff --git a/images/freepress.png b/images/freepress.png deleted file mode 100644 index fce637258..000000000 Binary files a/images/freepress.png and /dev/null differ diff --git a/images/gradient-dark.png b/images/gradient-dark.png deleted file mode 100644 index 431234f33..000000000 Binary files a/images/gradient-dark.png and /dev/null differ diff --git a/images/gradient-darkest.png b/images/gradient-darkest.png deleted file mode 100644 index 3f5ca88c3..000000000 Binary files a/images/gradient-darkest.png and /dev/null differ diff --git a/images/gradient.png b/images/gradient.png deleted file mode 100755 index da52f41b7..000000000 Binary files a/images/gradient.png and /dev/null differ diff --git a/images/greenthumb.png b/images/greenthumb.png deleted file mode 100755 index 77fabe344..000000000 Binary files a/images/greenthumb.png and /dev/null differ diff --git a/images/hole.png b/images/hole.png deleted file mode 100644 index 17273632e..000000000 Binary files a/images/hole.png and /dev/null differ diff --git a/images/i-work.png b/images/i-work.png deleted file mode 100755 index 5130a4996..000000000 Binary files a/images/i-work.png and /dev/null differ diff --git a/images/infographic/ARCHIVE/infographic-v3.jpg b/images/infographic/ARCHIVE/infographic-v3.jpg deleted file mode 100644 index cdc08bc39..000000000 Binary files a/images/infographic/ARCHIVE/infographic-v3.jpg and /dev/null differ diff --git a/images/infographic/infographic-v4-1.jpg b/images/infographic/infographic-v4-1.jpg deleted file mode 100755 index 8143a2729..000000000 Binary files a/images/infographic/infographic-v4-1.jpg and /dev/null differ diff --git a/images/infographic/infographic-v4-2.jpg b/images/infographic/infographic-v4-2.jpg deleted file mode 100755 index 5d2c25237..000000000 Binary files a/images/infographic/infographic-v4-2.jpg and /dev/null differ diff --git a/images/infographic/infographic-v4-3.jpg b/images/infographic/infographic-v4-3.jpg deleted file mode 100755 index 2b6e3d671..000000000 Binary files a/images/infographic/infographic-v4-3.jpg and /dev/null differ diff --git a/images/infographic/infographic-v4-4.jpg b/images/infographic/infographic-v4-4.jpg deleted file mode 100755 index 547508010..000000000 Binary files a/images/infographic/infographic-v4-4.jpg and /dev/null differ diff --git a/images/infographic/infographic-v4-5.jpg b/images/infographic/infographic-v4-5.jpg deleted file mode 100755 index 624ff8177..000000000 Binary files a/images/infographic/infographic-v4-5.jpg and /dev/null differ diff --git a/images/infographic/infographic-v4.jpg b/images/infographic/infographic-v4.jpg deleted file mode 100755 index a8e5a0040..000000000 Binary files a/images/infographic/infographic-v4.jpg and /dev/null differ diff --git a/images/infographic/infographic-v5.jpg b/images/infographic/infographic-v5.jpg deleted file mode 100644 index 4caba5f7b..000000000 Binary files a/images/infographic/infographic-v5.jpg and /dev/null differ diff --git a/images/letter-repeat.png b/images/letter-repeat.png deleted file mode 100644 index f464ec22d..000000000 Binary files a/images/letter-repeat.png and /dev/null differ diff --git a/images/letter.png b/images/letter.png deleted file mode 100644 index e7c870939..000000000 Binary files a/images/letter.png and /dev/null differ diff --git a/images/line.png b/images/line.png deleted file mode 100755 index bf19fa75b..000000000 Binary files a/images/line.png and /dev/null differ diff --git a/images/longcomputer.png b/images/longcomputer.png deleted file mode 100755 index e2a65c03c..000000000 Binary files a/images/longcomputer.png and /dev/null differ diff --git a/images/map.png b/images/map.png deleted file mode 100755 index ff376f98e..000000000 Binary files a/images/map.png and /dev/null differ diff --git a/images/notification.jpg b/images/notification.jpg deleted file mode 100755 index 17d8efcf1..000000000 Binary files a/images/notification.jpg and /dev/null differ diff --git a/images/only-game-town.png b/images/only-game-town.png deleted file mode 100644 index 468e12ab8..000000000 Binary files a/images/only-game-town.png and /dev/null differ diff --git a/images/ourinternetsux.png b/images/ourinternetsux.png deleted file mode 100755 index 0c19f5ccc..000000000 Binary files a/images/ourinternetsux.png and /dev/null differ diff --git a/images/partyflyer.png b/images/partyflyer.png deleted file mode 100644 index 4d50d478a..000000000 Binary files a/images/partyflyer.png and /dev/null differ diff --git a/images/refresh.png b/images/refresh.png deleted file mode 100755 index e132dc665..000000000 Binary files a/images/refresh.png and /dev/null differ diff --git a/images/scoreboard/akbegichmark.jpg b/images/scoreboard/akbegichmark.jpg deleted file mode 100644 index 4a2ae6be5..000000000 Binary files a/images/scoreboard/akbegichmark.jpg and /dev/null differ diff --git a/images/scoreboard/akmurkowskilisa.jpg b/images/scoreboard/akmurkowskilisa.jpg deleted file mode 100644 index 11924ad4f..000000000 Binary files a/images/scoreboard/akmurkowskilisa.jpg and /dev/null differ diff --git a/images/scoreboard/aksullivandan.jpg b/images/scoreboard/aksullivandan.jpg deleted file mode 100755 index ce5265162..000000000 Binary files a/images/scoreboard/aksullivandan.jpg and /dev/null differ diff --git a/images/scoreboard/akyoungdone.jpg b/images/scoreboard/akyoungdone.jpg deleted file mode 100644 index ae400ffd5..000000000 Binary files a/images/scoreboard/akyoungdone.jpg and /dev/null differ diff --git a/images/scoreboard/aladerholtrobertb.jpg b/images/scoreboard/aladerholtrobertb.jpg deleted file mode 100644 index 786ca8711..000000000 Binary files a/images/scoreboard/aladerholtrobertb.jpg and /dev/null differ diff --git a/images/scoreboard/albachusspencertiii.jpg b/images/scoreboard/albachusspencertiii.jpg deleted file mode 100644 index a6f11c8d2..000000000 Binary files a/images/scoreboard/albachusspencertiii.jpg and /dev/null differ diff --git a/images/scoreboard/albonnerjo.jpg b/images/scoreboard/albonnerjo.jpg deleted file mode 100644 index 0212158b7..000000000 Binary files a/images/scoreboard/albonnerjo.jpg and /dev/null differ diff --git a/images/scoreboard/albrooksmo.jpg b/images/scoreboard/albrooksmo.jpg deleted file mode 100644 index bc82b8ef8..000000000 Binary files a/images/scoreboard/albrooksmo.jpg and /dev/null differ diff --git a/images/scoreboard/albyrnebradley.jpg b/images/scoreboard/albyrnebradley.jpg deleted file mode 100755 index 13494fbb4..000000000 Binary files a/images/scoreboard/albyrnebradley.jpg and /dev/null differ diff --git a/images/scoreboard/alpalmergary.jpg b/images/scoreboard/alpalmergary.jpg deleted file mode 100755 index bcccb7b16..000000000 Binary files a/images/scoreboard/alpalmergary.jpg and /dev/null differ diff --git a/images/scoreboard/alrobymartha.jpg b/images/scoreboard/alrobymartha.jpg deleted file mode 100644 index 06b7ae65d..000000000 Binary files a/images/scoreboard/alrobymartha.jpg and /dev/null differ diff --git a/images/scoreboard/alrogersmike.jpg b/images/scoreboard/alrogersmike.jpg deleted file mode 100644 index 858bcd97d..000000000 Binary files a/images/scoreboard/alrogersmike.jpg and /dev/null differ diff --git a/images/scoreboard/alsessionsjeff.jpg b/images/scoreboard/alsessionsjeff.jpg deleted file mode 100644 index 2cd0bf0db..000000000 Binary files a/images/scoreboard/alsessionsjeff.jpg and /dev/null differ diff --git a/images/scoreboard/alsewellterria.jpg b/images/scoreboard/alsewellterria.jpg deleted file mode 100644 index b8298feac..000000000 Binary files a/images/scoreboard/alsewellterria.jpg and /dev/null differ diff --git a/images/scoreboard/alshelbyrichardc.jpg b/images/scoreboard/alshelbyrichardc.jpg deleted file mode 100644 index bdf512335..000000000 Binary files a/images/scoreboard/alshelbyrichardc.jpg and /dev/null differ diff --git a/images/scoreboard/arboozmanjohn.jpg b/images/scoreboard/arboozmanjohn.jpg deleted file mode 100644 index e817a5c7a..000000000 Binary files a/images/scoreboard/arboozmanjohn.jpg and /dev/null differ diff --git a/images/scoreboard/arcottonthomasb.jpg b/images/scoreboard/arcottonthomasb.jpg deleted file mode 100644 index 242818f15..000000000 Binary files a/images/scoreboard/arcottonthomasb.jpg and /dev/null differ diff --git a/images/scoreboard/arcottontom.jpeg b/images/scoreboard/arcottontom.jpeg deleted file mode 100755 index 0a394293a..000000000 Binary files a/images/scoreboard/arcottontom.jpeg and /dev/null differ diff --git a/images/scoreboard/arcrawfordrick.jpg b/images/scoreboard/arcrawfordrick.jpg deleted file mode 100644 index 96985cddc..000000000 Binary files a/images/scoreboard/arcrawfordrick.jpg and /dev/null differ diff --git a/images/scoreboard/argriffintim.jpg b/images/scoreboard/argriffintim.jpg deleted file mode 100644 index 78d1e7b3f..000000000 Binary files a/images/scoreboard/argriffintim.jpg and /dev/null differ diff --git a/images/scoreboard/arhillfrench.jpg b/images/scoreboard/arhillfrench.jpg deleted file mode 100755 index f70472a94..000000000 Binary files a/images/scoreboard/arhillfrench.jpg and /dev/null differ diff --git a/images/scoreboard/arpryormark.jpg b/images/scoreboard/arpryormark.jpg deleted file mode 100644 index b4aaf89e1..000000000 Binary files a/images/scoreboard/arpryormark.jpg and /dev/null differ diff --git a/images/scoreboard/arwestermanbruce.jpg b/images/scoreboard/arwestermanbruce.jpg deleted file mode 100755 index ca8ca296f..000000000 Binary files a/images/scoreboard/arwestermanbruce.jpg and /dev/null differ diff --git a/images/scoreboard/arwomacksteve.jpg b/images/scoreboard/arwomacksteve.jpg deleted file mode 100644 index 0311c1fde..000000000 Binary files a/images/scoreboard/arwomacksteve.jpg and /dev/null differ diff --git a/images/scoreboard/asamataaumua.jpg b/images/scoreboard/asamataaumua.jpg deleted file mode 100755 index d0a53f46e..000000000 Binary files a/images/scoreboard/asamataaumua.jpg and /dev/null differ diff --git a/images/scoreboard/azbarberron.jpg b/images/scoreboard/azbarberron.jpg deleted file mode 100644 index 55bd5b254..000000000 Binary files a/images/scoreboard/azbarberron.jpg and /dev/null differ diff --git a/images/scoreboard/azflakejeff.jpg b/images/scoreboard/azflakejeff.jpg deleted file mode 100644 index 172ad5770..000000000 Binary files a/images/scoreboard/azflakejeff.jpg and /dev/null differ diff --git a/images/scoreboard/azfrankstrent.jpg b/images/scoreboard/azfrankstrent.jpg deleted file mode 100644 index 0396bc52b..000000000 Binary files a/images/scoreboard/azfrankstrent.jpg and /dev/null differ diff --git a/images/scoreboard/azgallegoruben.jpg b/images/scoreboard/azgallegoruben.jpg deleted file mode 100755 index 18b33b58e..000000000 Binary files a/images/scoreboard/azgallegoruben.jpg and /dev/null differ diff --git a/images/scoreboard/azgosarpaul.jpg b/images/scoreboard/azgosarpaul.jpg deleted file mode 100644 index 6ad1df5b4..000000000 Binary files a/images/scoreboard/azgosarpaul.jpg and /dev/null differ diff --git a/images/scoreboard/azgrijalvaraulm.jpg b/images/scoreboard/azgrijalvaraulm.jpg deleted file mode 100644 index 8009a08e6..000000000 Binary files a/images/scoreboard/azgrijalvaraulm.jpg and /dev/null differ diff --git a/images/scoreboard/azkirkpatrickann.jpg b/images/scoreboard/azkirkpatrickann.jpg deleted file mode 100644 index 9482c9e47..000000000 Binary files a/images/scoreboard/azkirkpatrickann.jpg and /dev/null differ diff --git a/images/scoreboard/azmccainjohn.jpg b/images/scoreboard/azmccainjohn.jpg deleted file mode 100644 index 1deaf3f0f..000000000 Binary files a/images/scoreboard/azmccainjohn.jpg and /dev/null differ diff --git a/images/scoreboard/azmcsallymartha.jpg b/images/scoreboard/azmcsallymartha.jpg deleted file mode 100755 index 8b937bc3e..000000000 Binary files a/images/scoreboard/azmcsallymartha.jpg and /dev/null differ diff --git a/images/scoreboard/azpastored.jpg b/images/scoreboard/azpastored.jpg deleted file mode 100644 index 31a483aa7..000000000 Binary files a/images/scoreboard/azpastored.jpg and /dev/null differ diff --git a/images/scoreboard/azsalmonmatt.jpg b/images/scoreboard/azsalmonmatt.jpg deleted file mode 100644 index ee3c97f13..000000000 Binary files a/images/scoreboard/azsalmonmatt.jpg and /dev/null differ diff --git a/images/scoreboard/azschweikertdavid.jpg b/images/scoreboard/azschweikertdavid.jpg deleted file mode 100644 index 3da142756..000000000 Binary files a/images/scoreboard/azschweikertdavid.jpg and /dev/null differ diff --git a/images/scoreboard/azsinemakyrsten.jpg b/images/scoreboard/azsinemakyrsten.jpg deleted file mode 100644 index f88ba5b73..000000000 Binary files a/images/scoreboard/azsinemakyrsten.jpg and /dev/null differ diff --git a/images/scoreboard/caaguilarpete.jpg b/images/scoreboard/caaguilarpete.jpg deleted file mode 100755 index a9fcaac02..000000000 Binary files a/images/scoreboard/caaguilarpete.jpg and /dev/null differ diff --git a/images/scoreboard/cabasskaren.jpg b/images/scoreboard/cabasskaren.jpg deleted file mode 100644 index 4fcbf6e29..000000000 Binary files a/images/scoreboard/cabasskaren.jpg and /dev/null differ diff --git a/images/scoreboard/cabecerraxavier.jpg b/images/scoreboard/cabecerraxavier.jpg deleted file mode 100644 index c1c0f107a..000000000 Binary files a/images/scoreboard/cabecerraxavier.jpg and /dev/null differ diff --git a/images/scoreboard/caberaami.jpg b/images/scoreboard/caberaami.jpg deleted file mode 100644 index 75a0fb1e4..000000000 Binary files a/images/scoreboard/caberaami.jpg and /dev/null differ diff --git a/images/scoreboard/caboxerbarbara.jpg b/images/scoreboard/caboxerbarbara.jpg deleted file mode 100644 index 678c4daf3..000000000 Binary files a/images/scoreboard/caboxerbarbara.jpg and /dev/null differ diff --git a/images/scoreboard/cabrownleyjulia.jpg b/images/scoreboard/cabrownleyjulia.jpg deleted file mode 100644 index 59dcba81f..000000000 Binary files a/images/scoreboard/cabrownleyjulia.jpg and /dev/null differ diff --git a/images/scoreboard/cacalvertken.jpg b/images/scoreboard/cacalvertken.jpg deleted file mode 100644 index 83339ff14..000000000 Binary files a/images/scoreboard/cacalvertken.jpg and /dev/null differ diff --git a/images/scoreboard/cacampbelljohn.jpg b/images/scoreboard/cacampbelljohn.jpg deleted file mode 100644 index 8bf79f0ae..000000000 Binary files a/images/scoreboard/cacampbelljohn.jpg and /dev/null differ diff --git a/images/scoreboard/cacappslois.jpg b/images/scoreboard/cacappslois.jpg deleted file mode 100644 index 0493c8a4d..000000000 Binary files a/images/scoreboard/cacappslois.jpg and /dev/null differ diff --git a/images/scoreboard/cacardenastony.jpg b/images/scoreboard/cacardenastony.jpg deleted file mode 100644 index 53fcb632f..000000000 Binary files a/images/scoreboard/cacardenastony.jpg and /dev/null differ diff --git a/images/scoreboard/cachujudy.jpg b/images/scoreboard/cachujudy.jpg deleted file mode 100644 index cb34d9a4d..000000000 Binary files a/images/scoreboard/cachujudy.jpg and /dev/null differ diff --git a/images/scoreboard/cacookpaul.jpg b/images/scoreboard/cacookpaul.jpg deleted file mode 100644 index 2ebd37eb2..000000000 Binary files a/images/scoreboard/cacookpaul.jpg and /dev/null differ diff --git a/images/scoreboard/cacostajim.jpg b/images/scoreboard/cacostajim.jpg deleted file mode 100644 index 9e86e2929..000000000 Binary files a/images/scoreboard/cacostajim.jpg and /dev/null differ diff --git a/images/scoreboard/cadavissusan.jpg b/images/scoreboard/cadavissusan.jpg deleted file mode 100644 index 229386799..000000000 Binary files a/images/scoreboard/cadavissusan.jpg and /dev/null differ diff --git a/images/scoreboard/cadenhamjeff.jpg b/images/scoreboard/cadenhamjeff.jpg deleted file mode 100644 index 2760cd7c5..000000000 Binary files a/images/scoreboard/cadenhamjeff.jpg and /dev/null differ diff --git a/images/scoreboard/cadesaulniermark.jpg b/images/scoreboard/cadesaulniermark.jpg deleted file mode 100755 index 8450e7cc0..000000000 Binary files a/images/scoreboard/cadesaulniermark.jpg and /dev/null differ diff --git a/images/scoreboard/caeshooannag.jpg b/images/scoreboard/caeshooannag.jpg deleted file mode 100644 index c4c054a16..000000000 Binary files a/images/scoreboard/caeshooannag.jpg and /dev/null differ diff --git a/images/scoreboard/cafarrsam.jpg b/images/scoreboard/cafarrsam.jpg deleted file mode 100644 index 2762ee105..000000000 Binary files a/images/scoreboard/cafarrsam.jpg and /dev/null differ diff --git a/images/scoreboard/cafeinsteindianne.jpg b/images/scoreboard/cafeinsteindianne.jpg deleted file mode 100644 index 1bf0d2c77..000000000 Binary files a/images/scoreboard/cafeinsteindianne.jpg and /dev/null differ diff --git a/images/scoreboard/cagaramendijohn.jpg b/images/scoreboard/cagaramendijohn.jpg deleted file mode 100644 index 9330ce71c..000000000 Binary files a/images/scoreboard/cagaramendijohn.jpg and /dev/null differ diff --git a/images/scoreboard/cahahnjanice.jpg b/images/scoreboard/cahahnjanice.jpg deleted file mode 100644 index 86e8b703b..000000000 Binary files a/images/scoreboard/cahahnjanice.jpg and /dev/null differ diff --git a/images/scoreboard/cahondamikem.jpg b/images/scoreboard/cahondamikem.jpg deleted file mode 100644 index 67720ff12..000000000 Binary files a/images/scoreboard/cahondamikem.jpg and /dev/null differ diff --git a/images/scoreboard/cahuffmanjared.jpg b/images/scoreboard/cahuffmanjared.jpg deleted file mode 100644 index 0852026e3..000000000 Binary files a/images/scoreboard/cahuffmanjared.jpg and /dev/null differ diff --git a/images/scoreboard/cahunterduncan.jpg b/images/scoreboard/cahunterduncan.jpg deleted file mode 100755 index 623b361b7..000000000 Binary files a/images/scoreboard/cahunterduncan.jpg and /dev/null differ diff --git a/images/scoreboard/cahunterduncanl.jpg b/images/scoreboard/cahunterduncanl.jpg deleted file mode 100644 index dea6e2c2c..000000000 Binary files a/images/scoreboard/cahunterduncanl.jpg and /dev/null differ diff --git a/images/scoreboard/caissadarrelle.jpg b/images/scoreboard/caissadarrelle.jpg deleted file mode 100644 index fdea7d7f2..000000000 Binary files a/images/scoreboard/caissadarrelle.jpg and /dev/null differ diff --git a/images/scoreboard/caknightsteve.jpg b/images/scoreboard/caknightsteve.jpg deleted file mode 100755 index 3f4b8c83e..000000000 Binary files a/images/scoreboard/caknightsteve.jpg and /dev/null differ diff --git a/images/scoreboard/caleebarbara.jpg b/images/scoreboard/caleebarbara.jpg deleted file mode 100644 index 5aa6f3f7a..000000000 Binary files a/images/scoreboard/caleebarbara.jpg and /dev/null differ diff --git a/images/scoreboard/calieuted.jpg b/images/scoreboard/calieuted.jpg deleted file mode 100755 index d47680659..000000000 Binary files a/images/scoreboard/calieuted.jpg and /dev/null differ diff --git a/images/scoreboard/calofgrenzoe.jpg b/images/scoreboard/calofgrenzoe.jpg deleted file mode 100644 index 5bd099e57..000000000 Binary files a/images/scoreboard/calofgrenzoe.jpg and /dev/null differ diff --git a/images/scoreboard/calowenthalalan.jpg b/images/scoreboard/calowenthalalan.jpg deleted file mode 100644 index 8187b82f2..000000000 Binary files a/images/scoreboard/calowenthalalan.jpg and /dev/null differ diff --git a/images/scoreboard/camalfadougla.jpg b/images/scoreboard/camalfadougla.jpg deleted file mode 100644 index 9ed22c2e0..000000000 Binary files a/images/scoreboard/camalfadougla.jpg and /dev/null differ diff --git a/images/scoreboard/camatsuirobertt.jpg b/images/scoreboard/camatsuirobertt.jpg deleted file mode 100644 index 62c0a8c6f..000000000 Binary files a/images/scoreboard/camatsuirobertt.jpg and /dev/null differ diff --git a/images/scoreboard/camccarthykevin.jpg b/images/scoreboard/camccarthykevin.jpg deleted file mode 100644 index 74a1724a6..000000000 Binary files a/images/scoreboard/camccarthykevin.jpg and /dev/null differ diff --git a/images/scoreboard/camcclintocktom.jpg b/images/scoreboard/camcclintocktom.jpg deleted file mode 100644 index a0ab3fa22..000000000 Binary files a/images/scoreboard/camcclintocktom.jpg and /dev/null differ diff --git a/images/scoreboard/camckeonhowardp.jpg b/images/scoreboard/camckeonhowardp.jpg deleted file mode 100644 index 349d7ff03..000000000 Binary files a/images/scoreboard/camckeonhowardp.jpg and /dev/null differ diff --git a/images/scoreboard/camcleodglorianegrete.jpg b/images/scoreboard/camcleodglorianegrete.jpg deleted file mode 100644 index ede4e87ed..000000000 Binary files a/images/scoreboard/camcleodglorianegrete.jpg and /dev/null differ diff --git a/images/scoreboard/camcnerneygeraldm.jpg b/images/scoreboard/camcnerneygeraldm.jpg deleted file mode 100644 index 4d53044f9..000000000 Binary files a/images/scoreboard/camcnerneygeraldm.jpg and /dev/null differ diff --git a/images/scoreboard/camillergary.jpg b/images/scoreboard/camillergary.jpg deleted file mode 100644 index 0394acfc8..000000000 Binary files a/images/scoreboard/camillergary.jpg and /dev/null differ diff --git a/images/scoreboard/camillergeorge.jpg b/images/scoreboard/camillergeorge.jpg deleted file mode 100644 index ba64c53cf..000000000 Binary files a/images/scoreboard/camillergeorge.jpg and /dev/null differ diff --git a/images/scoreboard/canapolitanogracef.jpg b/images/scoreboard/canapolitanogracef.jpg deleted file mode 100644 index 6c53a67ff..000000000 Binary files a/images/scoreboard/canapolitanogracef.jpg and /dev/null differ diff --git a/images/scoreboard/canunesdevin.jpg b/images/scoreboard/canunesdevin.jpg deleted file mode 100644 index 83a6faef5..000000000 Binary files a/images/scoreboard/canunesdevin.jpg and /dev/null differ diff --git a/images/scoreboard/capelosinancy.jpg b/images/scoreboard/capelosinancy.jpg deleted file mode 100644 index 0f8e57376..000000000 Binary files a/images/scoreboard/capelosinancy.jpg and /dev/null differ diff --git a/images/scoreboard/capetersscott.jpg b/images/scoreboard/capetersscott.jpg deleted file mode 100644 index 3dee31ab8..000000000 Binary files a/images/scoreboard/capetersscott.jpg and /dev/null differ diff --git a/images/scoreboard/carohrabacherdana.jpg b/images/scoreboard/carohrabacherdana.jpg deleted file mode 100644 index 8f0e1e8dd..000000000 Binary files a/images/scoreboard/carohrabacherdana.jpg and /dev/null differ diff --git a/images/scoreboard/caroybalallardlucille.jpg b/images/scoreboard/caroybalallardlucille.jpg deleted file mode 100644 index 54f2987d3..000000000 Binary files a/images/scoreboard/caroybalallardlucille.jpg and /dev/null differ diff --git a/images/scoreboard/caroyceedr.jpg b/images/scoreboard/caroyceedr.jpg deleted file mode 100644 index c248e86cf..000000000 Binary files a/images/scoreboard/caroyceedr.jpg and /dev/null differ diff --git a/images/scoreboard/caruizraul.jpg b/images/scoreboard/caruizraul.jpg deleted file mode 100644 index a050ff9b0..000000000 Binary files a/images/scoreboard/caruizraul.jpg and /dev/null differ diff --git a/images/scoreboard/casanchezlinda.jpg b/images/scoreboard/casanchezlinda.jpg deleted file mode 100644 index 3c15e9764..000000000 Binary files a/images/scoreboard/casanchezlinda.jpg and /dev/null differ diff --git a/images/scoreboard/casanchezloretta.jpg b/images/scoreboard/casanchezloretta.jpg deleted file mode 100644 index 294b01448..000000000 Binary files a/images/scoreboard/casanchezloretta.jpg and /dev/null differ diff --git a/images/scoreboard/caschiffadamb.jpg b/images/scoreboard/caschiffadamb.jpg deleted file mode 100644 index ef0913db1..000000000 Binary files a/images/scoreboard/caschiffadamb.jpg and /dev/null differ diff --git a/images/scoreboard/cashermanbrad.jpg b/images/scoreboard/cashermanbrad.jpg deleted file mode 100644 index dcdefc17d..000000000 Binary files a/images/scoreboard/cashermanbrad.jpg and /dev/null differ diff --git a/images/scoreboard/caspeierjackie.jpg b/images/scoreboard/caspeierjackie.jpg deleted file mode 100644 index 6fecff284..000000000 Binary files a/images/scoreboard/caspeierjackie.jpg and /dev/null differ diff --git a/images/scoreboard/caswalwelleric.jpg b/images/scoreboard/caswalwelleric.jpg deleted file mode 100644 index 466016993..000000000 Binary files a/images/scoreboard/caswalwelleric.jpg and /dev/null differ diff --git a/images/scoreboard/catakanomark.jpg b/images/scoreboard/catakanomark.jpg deleted file mode 100644 index 659f50cc9..000000000 Binary files a/images/scoreboard/catakanomark.jpg and /dev/null differ diff --git a/images/scoreboard/cathompsonmike.jpg b/images/scoreboard/cathompsonmike.jpg deleted file mode 100644 index 321a24078..000000000 Binary files a/images/scoreboard/cathompsonmike.jpg and /dev/null differ diff --git a/images/scoreboard/catorresnorma.jpg b/images/scoreboard/catorresnorma.jpg deleted file mode 100755 index 1f02d440d..000000000 Binary files a/images/scoreboard/catorresnorma.jpg and /dev/null differ diff --git a/images/scoreboard/cavaladaodavidg.jpg b/images/scoreboard/cavaladaodavidg.jpg deleted file mode 100644 index ee2c57943..000000000 Binary files a/images/scoreboard/cavaladaodavidg.jpg and /dev/null differ diff --git a/images/scoreboard/cavargasjuan.jpg b/images/scoreboard/cavargasjuan.jpg deleted file mode 100644 index 832c53170..000000000 Binary files a/images/scoreboard/cavargasjuan.jpg and /dev/null differ diff --git a/images/scoreboard/cawaltersmimi.jpg b/images/scoreboard/cawaltersmimi.jpg deleted file mode 100755 index 01bf8e884..000000000 Binary files a/images/scoreboard/cawaltersmimi.jpg and /dev/null differ diff --git a/images/scoreboard/cawatersmaxine.jpg b/images/scoreboard/cawatersmaxine.jpg deleted file mode 100644 index 990bef0f7..000000000 Binary files a/images/scoreboard/cawatersmaxine.jpg and /dev/null differ diff --git a/images/scoreboard/cawaxmanhenrya.jpg b/images/scoreboard/cawaxmanhenrya.jpg deleted file mode 100644 index a5bbe454c..000000000 Binary files a/images/scoreboard/cawaxmanhenrya.jpg and /dev/null differ diff --git a/images/scoreboard/clyburn.jpg b/images/scoreboard/clyburn.jpg deleted file mode 100644 index 9c39afa89..000000000 Binary files a/images/scoreboard/clyburn.jpg and /dev/null differ diff --git a/images/scoreboard/cobennetmichaelf.jpg b/images/scoreboard/cobennetmichaelf.jpg deleted file mode 100644 index 713baae9c..000000000 Binary files a/images/scoreboard/cobennetmichaelf.jpg and /dev/null differ diff --git a/images/scoreboard/cobuckken.jpg b/images/scoreboard/cobuckken.jpg deleted file mode 100755 index 0379616ce..000000000 Binary files a/images/scoreboard/cobuckken.jpg and /dev/null differ diff --git a/images/scoreboard/cocoffmanmike.jpg b/images/scoreboard/cocoffmanmike.jpg deleted file mode 100644 index 06c575120..000000000 Binary files a/images/scoreboard/cocoffmanmike.jpg and /dev/null differ diff --git a/images/scoreboard/codegettediana.jpg b/images/scoreboard/codegettediana.jpg deleted file mode 100644 index f6fb78334..000000000 Binary files a/images/scoreboard/codegettediana.jpg and /dev/null differ diff --git a/images/scoreboard/cogardnercory.jpg b/images/scoreboard/cogardnercory.jpg deleted file mode 100644 index 2b121c74e..000000000 Binary files a/images/scoreboard/cogardnercory.jpg and /dev/null differ diff --git a/images/scoreboard/colamborndoug.jpg b/images/scoreboard/colamborndoug.jpg deleted file mode 100644 index 9a7c56fbd..000000000 Binary files a/images/scoreboard/colamborndoug.jpg and /dev/null differ diff --git a/images/scoreboard/coperlmuttered.jpg b/images/scoreboard/coperlmuttered.jpg deleted file mode 100644 index 2e36d0153..000000000 Binary files a/images/scoreboard/coperlmuttered.jpg and /dev/null differ diff --git a/images/scoreboard/copolisjared.jpg b/images/scoreboard/copolisjared.jpg deleted file mode 100644 index 51876000d..000000000 Binary files a/images/scoreboard/copolisjared.jpg and /dev/null differ diff --git a/images/scoreboard/cotiptonscott.jpg b/images/scoreboard/cotiptonscott.jpg deleted file mode 100644 index e85790de3..000000000 Binary files a/images/scoreboard/cotiptonscott.jpg and /dev/null differ diff --git a/images/scoreboard/coudallmark.jpg b/images/scoreboard/coudallmark.jpg deleted file mode 100644 index 34ff314d5..000000000 Binary files a/images/scoreboard/coudallmark.jpg and /dev/null differ diff --git a/images/scoreboard/ctblumenthalrichard.jpg b/images/scoreboard/ctblumenthalrichard.jpg deleted file mode 100644 index 2e2336417..000000000 Binary files a/images/scoreboard/ctblumenthalrichard.jpg and /dev/null differ diff --git a/images/scoreboard/ctcourtneyjoe.jpg b/images/scoreboard/ctcourtneyjoe.jpg deleted file mode 100644 index 290e7ade0..000000000 Binary files a/images/scoreboard/ctcourtneyjoe.jpg and /dev/null differ diff --git a/images/scoreboard/ctdelaurorosal.jpg b/images/scoreboard/ctdelaurorosal.jpg deleted file mode 100644 index 16ab28b2f..000000000 Binary files a/images/scoreboard/ctdelaurorosal.jpg and /dev/null differ diff --git a/images/scoreboard/ctestyelizabeth.jpg b/images/scoreboard/ctestyelizabeth.jpg deleted file mode 100644 index 48cdfd240..000000000 Binary files a/images/scoreboard/ctestyelizabeth.jpg and /dev/null differ diff --git a/images/scoreboard/cthimesjim.jpg b/images/scoreboard/cthimesjim.jpg deleted file mode 100644 index c79662517..000000000 Binary files a/images/scoreboard/cthimesjim.jpg and /dev/null differ diff --git a/images/scoreboard/ctlarsonjohnb.jpg b/images/scoreboard/ctlarsonjohnb.jpg deleted file mode 100644 index 84dc3aadd..000000000 Binary files a/images/scoreboard/ctlarsonjohnb.jpg and /dev/null differ diff --git a/images/scoreboard/ctmurphychristopher.jpg b/images/scoreboard/ctmurphychristopher.jpg deleted file mode 100644 index c46955f55..000000000 Binary files a/images/scoreboard/ctmurphychristopher.jpg and /dev/null differ diff --git a/images/scoreboard/dcnortoneleanorholmes.jpg b/images/scoreboard/dcnortoneleanorholmes.jpg deleted file mode 100644 index cf114e7ac..000000000 Binary files a/images/scoreboard/dcnortoneleanorholmes.jpg and /dev/null differ diff --git a/images/scoreboard/decarneyjohncjr.jpg b/images/scoreboard/decarneyjohncjr.jpg deleted file mode 100644 index 5ff48f3f2..000000000 Binary files a/images/scoreboard/decarneyjohncjr.jpg and /dev/null differ diff --git a/images/scoreboard/decarperthomasr.jpg b/images/scoreboard/decarperthomasr.jpg deleted file mode 100644 index 62864bbc3..000000000 Binary files a/images/scoreboard/decarperthomasr.jpg and /dev/null differ diff --git a/images/scoreboard/decoonschristophera.jpg b/images/scoreboard/decoonschristophera.jpg deleted file mode 100644 index ff05538c6..000000000 Binary files a/images/scoreboard/decoonschristophera.jpg and /dev/null differ diff --git a/images/scoreboard/flbilirakisgusmichael.jpg b/images/scoreboard/flbilirakisgusmichael.jpg deleted file mode 100644 index 09934a9f5..000000000 Binary files a/images/scoreboard/flbilirakisgusmichael.jpg and /dev/null differ diff --git a/images/scoreboard/flbrowncorrine.jpg b/images/scoreboard/flbrowncorrine.jpg deleted file mode 100644 index 2187df2ed..000000000 Binary files a/images/scoreboard/flbrowncorrine.jpg and /dev/null differ diff --git a/images/scoreboard/flbuchananvern.jpg b/images/scoreboard/flbuchananvern.jpg deleted file mode 100644 index e8fbf3615..000000000 Binary files a/images/scoreboard/flbuchananvern.jpg and /dev/null differ diff --git a/images/scoreboard/flcastorkathy.jpg b/images/scoreboard/flcastorkathy.jpg deleted file mode 100644 index c17f8d140..000000000 Binary files a/images/scoreboard/flcastorkathy.jpg and /dev/null differ diff --git a/images/scoreboard/flclawsoncurtis.jpg b/images/scoreboard/flclawsoncurtis.jpg deleted file mode 100755 index 32e0e846a..000000000 Binary files a/images/scoreboard/flclawsoncurtis.jpg and /dev/null differ diff --git a/images/scoreboard/flcrenshawander.jpg b/images/scoreboard/flcrenshawander.jpg deleted file mode 100644 index 43db5e3c6..000000000 Binary files a/images/scoreboard/flcrenshawander.jpg and /dev/null differ diff --git a/images/scoreboard/flcurbelocarlos.jpg b/images/scoreboard/flcurbelocarlos.jpg deleted file mode 100755 index 22f9c1bc8..000000000 Binary files a/images/scoreboard/flcurbelocarlos.jpg and /dev/null differ diff --git a/images/scoreboard/fldesantisron.jpg b/images/scoreboard/fldesantisron.jpg deleted file mode 100644 index 99f80eb9c..000000000 Binary files a/images/scoreboard/fldesantisron.jpg and /dev/null differ diff --git a/images/scoreboard/fldeutchted.jpg b/images/scoreboard/fldeutchted.jpg deleted file mode 100644 index 7adfcdcf6..000000000 Binary files a/images/scoreboard/fldeutchted.jpg and /dev/null differ diff --git a/images/scoreboard/fldiazbalartmario.jpg b/images/scoreboard/fldiazbalartmario.jpg deleted file mode 100644 index a7b781d9f..000000000 Binary files a/images/scoreboard/fldiazbalartmario.jpg and /dev/null differ diff --git a/images/scoreboard/flfrankellois.jpg b/images/scoreboard/flfrankellois.jpg deleted file mode 100644 index 830f51a16..000000000 Binary files a/images/scoreboard/flfrankellois.jpg and /dev/null differ diff --git a/images/scoreboard/flgarciajoe.jpg b/images/scoreboard/flgarciajoe.jpg deleted file mode 100644 index 9d9cf0ab1..000000000 Binary files a/images/scoreboard/flgarciajoe.jpg and /dev/null differ diff --git a/images/scoreboard/flgrahamgwen.jpg b/images/scoreboard/flgrahamgwen.jpg deleted file mode 100755 index 7f7756454..000000000 Binary files a/images/scoreboard/flgrahamgwen.jpg and /dev/null differ diff --git a/images/scoreboard/flgraysonalan.jpg b/images/scoreboard/flgraysonalan.jpg deleted file mode 100644 index 3bd44117b..000000000 Binary files a/images/scoreboard/flgraysonalan.jpg and /dev/null differ diff --git a/images/scoreboard/flhastingsalceel.jpg b/images/scoreboard/flhastingsalceel.jpg deleted file mode 100644 index beb14e8f1..000000000 Binary files a/images/scoreboard/flhastingsalceel.jpg and /dev/null differ diff --git a/images/scoreboard/fljollydavid.jpg b/images/scoreboard/fljollydavid.jpg deleted file mode 100755 index c27310ed7..000000000 Binary files a/images/scoreboard/fljollydavid.jpg and /dev/null differ diff --git a/images/scoreboard/flmicajohnl.jpg b/images/scoreboard/flmicajohnl.jpg deleted file mode 100644 index e3ba64581..000000000 Binary files a/images/scoreboard/flmicajohnl.jpg and /dev/null differ diff --git a/images/scoreboard/flmillerjeff.jpg b/images/scoreboard/flmillerjeff.jpg deleted file mode 100644 index 24146a3be..000000000 Binary files a/images/scoreboard/flmillerjeff.jpg and /dev/null differ diff --git a/images/scoreboard/flmurphypatrick.jpg b/images/scoreboard/flmurphypatrick.jpg deleted file mode 100644 index 3447ea9ed..000000000 Binary files a/images/scoreboard/flmurphypatrick.jpg and /dev/null differ diff --git a/images/scoreboard/flnelsonbill.jpg b/images/scoreboard/flnelsonbill.jpg deleted file mode 100644 index d0ed8b76e..000000000 Binary files a/images/scoreboard/flnelsonbill.jpg and /dev/null differ diff --git a/images/scoreboard/flnugentrichardb.jpg b/images/scoreboard/flnugentrichardb.jpg deleted file mode 100644 index 83dd7123b..000000000 Binary files a/images/scoreboard/flnugentrichardb.jpg and /dev/null differ diff --git a/images/scoreboard/flposeybill.jpg b/images/scoreboard/flposeybill.jpg deleted file mode 100644 index 09d0ecf6c..000000000 Binary files a/images/scoreboard/flposeybill.jpg and /dev/null differ diff --git a/images/scoreboard/flradeltrey.jpg b/images/scoreboard/flradeltrey.jpg deleted file mode 100644 index e34740963..000000000 Binary files a/images/scoreboard/flradeltrey.jpg and /dev/null differ diff --git a/images/scoreboard/flrooneyrooney.jpg b/images/scoreboard/flrooneyrooney.jpg deleted file mode 100644 index 2c02a78b6..000000000 Binary files a/images/scoreboard/flrooneyrooney.jpg and /dev/null differ diff --git a/images/scoreboard/flroslehtinenileana.jpg b/images/scoreboard/flroslehtinenileana.jpg deleted file mode 100644 index ad86183c2..000000000 Binary files a/images/scoreboard/flroslehtinenileana.jpg and /dev/null differ diff --git a/images/scoreboard/flrossdennisa.jpg b/images/scoreboard/flrossdennisa.jpg deleted file mode 100644 index 14bf004f2..000000000 Binary files a/images/scoreboard/flrossdennisa.jpg and /dev/null differ diff --git a/images/scoreboard/flrubiomarco.jpg b/images/scoreboard/flrubiomarco.jpg deleted file mode 100644 index 74412664d..000000000 Binary files a/images/scoreboard/flrubiomarco.jpg and /dev/null differ diff --git a/images/scoreboard/flschultzdebbiewasserman.jpg b/images/scoreboard/flschultzdebbiewasserman.jpg deleted file mode 100644 index 3ea949414..000000000 Binary files a/images/scoreboard/flschultzdebbiewasserman.jpg and /dev/null differ diff --git a/images/scoreboard/flsoutherlandsteve.jpg b/images/scoreboard/flsoutherlandsteve.jpg deleted file mode 100644 index a0be9feba..000000000 Binary files a/images/scoreboard/flsoutherlandsteve.jpg and /dev/null differ diff --git a/images/scoreboard/flwebsterdaniel.jpg b/images/scoreboard/flwebsterdaniel.jpg deleted file mode 100644 index 53a5f081b..000000000 Binary files a/images/scoreboard/flwebsterdaniel.jpg and /dev/null differ diff --git a/images/scoreboard/flwilsonfrederica.jpg b/images/scoreboard/flwilsonfrederica.jpg deleted file mode 100644 index 48914ce4b..000000000 Binary files a/images/scoreboard/flwilsonfrederica.jpg and /dev/null differ diff --git a/images/scoreboard/flwilsonjoe.jpg b/images/scoreboard/flwilsonjoe.jpg deleted file mode 100644 index 99ec63466..000000000 Binary files a/images/scoreboard/flwilsonjoe.jpg and /dev/null differ diff --git a/images/scoreboard/flyohoted.jpg b/images/scoreboard/flyohoted.jpg deleted file mode 100644 index 275e146f4..000000000 Binary files a/images/scoreboard/flyohoted.jpg and /dev/null differ diff --git a/images/scoreboard/flyoungcwbill.jpg b/images/scoreboard/flyoungcwbill.jpg deleted file mode 100644 index 7180ab1b7..000000000 Binary files a/images/scoreboard/flyoungcwbill.jpg and /dev/null differ diff --git a/images/scoreboard/gaallenrick.jpg b/images/scoreboard/gaallenrick.jpg deleted file mode 100755 index 90c0f3665..000000000 Binary files a/images/scoreboard/gaallenrick.jpg and /dev/null differ diff --git a/images/scoreboard/gabarrowjohn.jpg b/images/scoreboard/gabarrowjohn.jpg deleted file mode 100644 index 6eca786a3..000000000 Binary files a/images/scoreboard/gabarrowjohn.jpg and /dev/null differ diff --git a/images/scoreboard/gabishopjrsanfordd.jpg b/images/scoreboard/gabishopjrsanfordd.jpg deleted file mode 100644 index 0040bcea7..000000000 Binary files a/images/scoreboard/gabishopjrsanfordd.jpg and /dev/null differ diff --git a/images/scoreboard/gabrounpaulcjr.jpg b/images/scoreboard/gabrounpaulcjr.jpg deleted file mode 100644 index 966d462a4..000000000 Binary files a/images/scoreboard/gabrounpaulcjr.jpg and /dev/null differ diff --git a/images/scoreboard/gacarterbuddy.jpg b/images/scoreboard/gacarterbuddy.jpg deleted file mode 100755 index b3036181e..000000000 Binary files a/images/scoreboard/gacarterbuddy.jpg and /dev/null differ diff --git a/images/scoreboard/gachamblisssaxby.jpg b/images/scoreboard/gachamblisssaxby.jpg deleted file mode 100644 index 2c937e80b..000000000 Binary files a/images/scoreboard/gachamblisssaxby.jpg and /dev/null differ diff --git a/images/scoreboard/gacollinsdoug.jpg b/images/scoreboard/gacollinsdoug.jpg deleted file mode 100644 index 04a7c1d20..000000000 Binary files a/images/scoreboard/gacollinsdoug.jpg and /dev/null differ diff --git a/images/scoreboard/gagingreyphil.jpg b/images/scoreboard/gagingreyphil.jpg deleted file mode 100644 index c7c3d7c59..000000000 Binary files a/images/scoreboard/gagingreyphil.jpg and /dev/null differ diff --git a/images/scoreboard/gagravestom.jpg b/images/scoreboard/gagravestom.jpg deleted file mode 100644 index 32be5fb76..000000000 Binary files a/images/scoreboard/gagravestom.jpg and /dev/null differ diff --git a/images/scoreboard/gahicejody.jpg b/images/scoreboard/gahicejody.jpg deleted file mode 100755 index 68cc491e4..000000000 Binary files a/images/scoreboard/gahicejody.jpg and /dev/null differ diff --git a/images/scoreboard/gaisaksonjohnny.jpg b/images/scoreboard/gaisaksonjohnny.jpg deleted file mode 100644 index 2a040c43b..000000000 Binary files a/images/scoreboard/gaisaksonjohnny.jpg and /dev/null differ diff --git a/images/scoreboard/gajohnsonhank.jpg b/images/scoreboard/gajohnsonhank.jpg deleted file mode 100644 index 731111195..000000000 Binary files a/images/scoreboard/gajohnsonhank.jpg and /dev/null differ diff --git a/images/scoreboard/gakingstonjack.jpg b/images/scoreboard/gakingstonjack.jpg deleted file mode 100644 index 7f1354a21..000000000 Binary files a/images/scoreboard/gakingstonjack.jpg and /dev/null differ diff --git a/images/scoreboard/galewisjohn.jpg b/images/scoreboard/galewisjohn.jpg deleted file mode 100644 index d3c2bae78..000000000 Binary files a/images/scoreboard/galewisjohn.jpg and /dev/null differ diff --git a/images/scoreboard/galoudermilkbarry.jpg b/images/scoreboard/galoudermilkbarry.jpg deleted file mode 100755 index dd3bafd4e..000000000 Binary files a/images/scoreboard/galoudermilkbarry.jpg and /dev/null differ diff --git a/images/scoreboard/gaperduedavid.jpg b/images/scoreboard/gaperduedavid.jpg deleted file mode 100755 index 01c30e96a..000000000 Binary files a/images/scoreboard/gaperduedavid.jpg and /dev/null differ diff --git a/images/scoreboard/gapricetom.jpg b/images/scoreboard/gapricetom.jpg deleted file mode 100644 index f8908eb10..000000000 Binary files a/images/scoreboard/gapricetom.jpg and /dev/null differ diff --git a/images/scoreboard/gascottaustin.jpg b/images/scoreboard/gascottaustin.jpg deleted file mode 100644 index 38a52eb91..000000000 Binary files a/images/scoreboard/gascottaustin.jpg and /dev/null differ diff --git a/images/scoreboard/gascottdavid.jpg b/images/scoreboard/gascottdavid.jpg deleted file mode 100644 index 014ce5391..000000000 Binary files a/images/scoreboard/gascottdavid.jpg and /dev/null differ diff --git a/images/scoreboard/gawestmorelandlynn.jpg b/images/scoreboard/gawestmorelandlynn.jpg deleted file mode 100644 index f5f06fd13..000000000 Binary files a/images/scoreboard/gawestmorelandlynn.jpg and /dev/null differ diff --git a/images/scoreboard/gawoodallrob.jpg b/images/scoreboard/gawoodallrob.jpg deleted file mode 100644 index 0de9d8f6f..000000000 Binary files a/images/scoreboard/gawoodallrob.jpg and /dev/null differ diff --git a/images/scoreboard/gmbordallomadeleine.jpg b/images/scoreboard/gmbordallomadeleine.jpg deleted file mode 100755 index a5e56359c..000000000 Binary files a/images/scoreboard/gmbordallomadeleine.jpg and /dev/null differ diff --git a/images/scoreboard/higabbardtulsi.jpg b/images/scoreboard/higabbardtulsi.jpg deleted file mode 100644 index 52c04b538..000000000 Binary files a/images/scoreboard/higabbardtulsi.jpg and /dev/null differ diff --git a/images/scoreboard/hihanabusacolleen.jpg b/images/scoreboard/hihanabusacolleen.jpg deleted file mode 100644 index b8a98c115..000000000 Binary files a/images/scoreboard/hihanabusacolleen.jpg and /dev/null differ diff --git a/images/scoreboard/hihironomaziek.jpg b/images/scoreboard/hihironomaziek.jpg deleted file mode 100644 index 7573138b3..000000000 Binary files a/images/scoreboard/hihironomaziek.jpg and /dev/null differ diff --git a/images/scoreboard/hischatzbrian.jpg b/images/scoreboard/hischatzbrian.jpg deleted file mode 100644 index b3e5601fb..000000000 Binary files a/images/scoreboard/hischatzbrian.jpg and /dev/null differ diff --git a/images/scoreboard/hitakaimark.jpg b/images/scoreboard/hitakaimark.jpg deleted file mode 100755 index 8d6af6685..000000000 Binary files a/images/scoreboard/hitakaimark.jpg and /dev/null differ diff --git a/images/scoreboard/iablumrod.jpg b/images/scoreboard/iablumrod.jpg deleted file mode 100755 index 2cfdea6a3..000000000 Binary files a/images/scoreboard/iablumrod.jpg and /dev/null differ diff --git a/images/scoreboard/iabraleybruce.jpg b/images/scoreboard/iabraleybruce.jpg deleted file mode 100644 index 0de080d2e..000000000 Binary files a/images/scoreboard/iabraleybruce.jpg and /dev/null differ diff --git a/images/scoreboard/iaernstjoni.jpg b/images/scoreboard/iaernstjoni.jpg deleted file mode 100755 index 0f08d8864..000000000 Binary files a/images/scoreboard/iaernstjoni.jpg and /dev/null differ diff --git a/images/scoreboard/iagrassleychucke.jpg b/images/scoreboard/iagrassleychucke.jpg deleted file mode 100644 index 557cbd470..000000000 Binary files a/images/scoreboard/iagrassleychucke.jpg and /dev/null differ diff --git a/images/scoreboard/iaharkintom.jpg b/images/scoreboard/iaharkintom.jpg deleted file mode 100644 index 0de8644d1..000000000 Binary files a/images/scoreboard/iaharkintom.jpg and /dev/null differ diff --git a/images/scoreboard/iakingsteve.jpg b/images/scoreboard/iakingsteve.jpg deleted file mode 100644 index c1c3dc028..000000000 Binary files a/images/scoreboard/iakingsteve.jpg and /dev/null differ diff --git a/images/scoreboard/ialathamtom.jpg b/images/scoreboard/ialathamtom.jpg deleted file mode 100644 index 7cf4b777b..000000000 Binary files a/images/scoreboard/ialathamtom.jpg and /dev/null differ diff --git a/images/scoreboard/ialoebsackdavid.jpg b/images/scoreboard/ialoebsackdavid.jpg deleted file mode 100644 index 3a8fefc5b..000000000 Binary files a/images/scoreboard/ialoebsackdavid.jpg and /dev/null differ diff --git a/images/scoreboard/iayoungdavid.png b/images/scoreboard/iayoungdavid.png deleted file mode 100755 index e73da304f..000000000 Binary files a/images/scoreboard/iayoungdavid.png and /dev/null differ diff --git a/images/scoreboard/idcrapomichaeld.jpg b/images/scoreboard/idcrapomichaeld.jpg deleted file mode 100644 index af00bb4a9..000000000 Binary files a/images/scoreboard/idcrapomichaeld.jpg and /dev/null differ diff --git a/images/scoreboard/idlabradorraulr.jpg b/images/scoreboard/idlabradorraulr.jpg deleted file mode 100644 index 142af5902..000000000 Binary files a/images/scoreboard/idlabradorraulr.jpg and /dev/null differ diff --git a/images/scoreboard/idrischjamese.jpg b/images/scoreboard/idrischjamese.jpg deleted file mode 100644 index 67bb13e5c..000000000 Binary files a/images/scoreboard/idrischjamese.jpg and /dev/null differ diff --git a/images/scoreboard/idsimpsonmichaelk.jpg b/images/scoreboard/idsimpsonmichaelk.jpg deleted file mode 100644 index f72839710..000000000 Binary files a/images/scoreboard/idsimpsonmichaelk.jpg and /dev/null differ diff --git a/images/scoreboard/ilbostmike.jpg b/images/scoreboard/ilbostmike.jpg deleted file mode 100755 index fa7fa099f..000000000 Binary files a/images/scoreboard/ilbostmike.jpg and /dev/null differ diff --git a/images/scoreboard/ilbustoscheri.jpg b/images/scoreboard/ilbustoscheri.jpg deleted file mode 100644 index f8c1a93b9..000000000 Binary files a/images/scoreboard/ilbustoscheri.jpg and /dev/null differ diff --git a/images/scoreboard/ildavisrodney.jpg b/images/scoreboard/ildavisrodney.jpg deleted file mode 100644 index 2761f0499..000000000 Binary files a/images/scoreboard/ildavisrodney.jpg and /dev/null differ diff --git a/images/scoreboard/ildoldbob.jpg b/images/scoreboard/ildoldbob.jpg deleted file mode 100755 index 8084ac6e4..000000000 Binary files a/images/scoreboard/ildoldbob.jpg and /dev/null differ diff --git a/images/scoreboard/ilduckworthltammy.jpg b/images/scoreboard/ilduckworthltammy.jpg deleted file mode 100644 index 62a65861c..000000000 Binary files a/images/scoreboard/ilduckworthltammy.jpg and /dev/null differ diff --git a/images/scoreboard/ildurbinrichardj.jpg b/images/scoreboard/ildurbinrichardj.jpg deleted file mode 100644 index 2a895eeef..000000000 Binary files a/images/scoreboard/ildurbinrichardj.jpg and /dev/null differ diff --git a/images/scoreboard/ilenyartwilliaml.jpg b/images/scoreboard/ilenyartwilliaml.jpg deleted file mode 100644 index 906eb4130..000000000 Binary files a/images/scoreboard/ilenyartwilliaml.jpg and /dev/null differ diff --git a/images/scoreboard/ilfosterbill.jpg b/images/scoreboard/ilfosterbill.jpg deleted file mode 100644 index 93d138c7a..000000000 Binary files a/images/scoreboard/ilfosterbill.jpg and /dev/null differ diff --git a/images/scoreboard/ilgutierrezluisv.jpg b/images/scoreboard/ilgutierrezluisv.jpg deleted file mode 100644 index e575117c7..000000000 Binary files a/images/scoreboard/ilgutierrezluisv.jpg and /dev/null differ diff --git a/images/scoreboard/ilhultgrenrandall.jpg b/images/scoreboard/ilhultgrenrandall.jpg deleted file mode 100644 index 8229789ad..000000000 Binary files a/images/scoreboard/ilhultgrenrandall.jpg and /dev/null differ diff --git a/images/scoreboard/ilkellyrobin.jpg b/images/scoreboard/ilkellyrobin.jpg deleted file mode 100644 index fa2e553bd..000000000 Binary files a/images/scoreboard/ilkellyrobin.jpg and /dev/null differ diff --git a/images/scoreboard/ilkinzingeradam.jpg b/images/scoreboard/ilkinzingeradam.jpg deleted file mode 100644 index 44b9a4e5c..000000000 Binary files a/images/scoreboard/ilkinzingeradam.jpg and /dev/null differ diff --git a/images/scoreboard/ilkirkmarksteven.jpg b/images/scoreboard/ilkirkmarksteven.jpg deleted file mode 100644 index dcf0060c6..000000000 Binary files a/images/scoreboard/ilkirkmarksteven.jpg and /dev/null differ diff --git a/images/scoreboard/illipinskidanielwilliam.jpg b/images/scoreboard/illipinskidanielwilliam.jpg deleted file mode 100644 index 13187f4ce..000000000 Binary files a/images/scoreboard/illipinskidanielwilliam.jpg and /dev/null differ diff --git a/images/scoreboard/ilquigleymike.jpg b/images/scoreboard/ilquigleymike.jpg deleted file mode 100644 index 616a95626..000000000 Binary files a/images/scoreboard/ilquigleymike.jpg and /dev/null differ diff --git a/images/scoreboard/ilroskampeter.jpg b/images/scoreboard/ilroskampeter.jpg deleted file mode 100644 index 467010f00..000000000 Binary files a/images/scoreboard/ilroskampeter.jpg and /dev/null differ diff --git a/images/scoreboard/ilrushbobbyl.jpg b/images/scoreboard/ilrushbobbyl.jpg deleted file mode 100644 index 4e2795144..000000000 Binary files a/images/scoreboard/ilrushbobbyl.jpg and /dev/null differ diff --git a/images/scoreboard/ilschakowskyjand.jpg b/images/scoreboard/ilschakowskyjand.jpg deleted file mode 100644 index c9a4079bd..000000000 Binary files a/images/scoreboard/ilschakowskyjand.jpg and /dev/null differ diff --git a/images/scoreboard/ilschneiderbrad.jpg b/images/scoreboard/ilschneiderbrad.jpg deleted file mode 100644 index 6db3a597e..000000000 Binary files a/images/scoreboard/ilschneiderbrad.jpg and /dev/null differ diff --git a/images/scoreboard/ilschockaaron.jpg b/images/scoreboard/ilschockaaron.jpg deleted file mode 100644 index a1cc95cdb..000000000 Binary files a/images/scoreboard/ilschockaaron.jpg and /dev/null differ diff --git a/images/scoreboard/ilshimkusjohnm.jpg b/images/scoreboard/ilshimkusjohnm.jpg deleted file mode 100644 index 76a55e966..000000000 Binary files a/images/scoreboard/ilshimkusjohnm.jpg and /dev/null differ diff --git a/images/scoreboard/inbrookssusan.jpg b/images/scoreboard/inbrookssusan.jpg deleted file mode 100644 index 19fd39d50..000000000 Binary files a/images/scoreboard/inbrookssusan.jpg and /dev/null differ diff --git a/images/scoreboard/inbucshonlarryd.jpg b/images/scoreboard/inbucshonlarryd.jpg deleted file mode 100644 index 90236a05c..000000000 Binary files a/images/scoreboard/inbucshonlarryd.jpg and /dev/null differ diff --git a/images/scoreboard/incarsonandred.jpg b/images/scoreboard/incarsonandred.jpg deleted file mode 100644 index 6098b9521..000000000 Binary files a/images/scoreboard/incarsonandred.jpg and /dev/null differ diff --git a/images/scoreboard/incoatsdan.jpg b/images/scoreboard/incoatsdan.jpg deleted file mode 100644 index d9afed2e1..000000000 Binary files a/images/scoreboard/incoatsdan.jpg and /dev/null differ diff --git a/images/scoreboard/indavisdanny.jpg b/images/scoreboard/indavisdanny.jpg deleted file mode 100644 index 37944189a..000000000 Binary files a/images/scoreboard/indavisdanny.jpg and /dev/null differ diff --git a/images/scoreboard/indonnellyjoe.jpg b/images/scoreboard/indonnellyjoe.jpg deleted file mode 100644 index 2074047ce..000000000 Binary files a/images/scoreboard/indonnellyjoe.jpg and /dev/null differ diff --git a/images/scoreboard/inmesserluke.jpg b/images/scoreboard/inmesserluke.jpg deleted file mode 100644 index c61e05b2f..000000000 Binary files a/images/scoreboard/inmesserluke.jpg and /dev/null differ diff --git a/images/scoreboard/inrokitatodd.jpg b/images/scoreboard/inrokitatodd.jpg deleted file mode 100644 index 7599edc57..000000000 Binary files a/images/scoreboard/inrokitatodd.jpg and /dev/null differ diff --git a/images/scoreboard/instutzmanmarlina.jpg b/images/scoreboard/instutzmanmarlina.jpg deleted file mode 100644 index 1631b1424..000000000 Binary files a/images/scoreboard/instutzmanmarlina.jpg and /dev/null differ diff --git a/images/scoreboard/inviscloskypeterj.jpg b/images/scoreboard/inviscloskypeterj.jpg deleted file mode 100644 index 5aa7a1377..000000000 Binary files a/images/scoreboard/inviscloskypeterj.jpg and /dev/null differ diff --git a/images/scoreboard/inwalorskijackie.jpg b/images/scoreboard/inwalorskijackie.jpg deleted file mode 100644 index 03c84bfa9..000000000 Binary files a/images/scoreboard/inwalorskijackie.jpg and /dev/null differ diff --git a/images/scoreboard/inyoungtodd.jpg b/images/scoreboard/inyoungtodd.jpg deleted file mode 100644 index 50be3c8c9..000000000 Binary files a/images/scoreboard/inyoungtodd.jpg and /dev/null differ diff --git a/images/scoreboard/kshuelskamptim.jpg b/images/scoreboard/kshuelskamptim.jpg deleted file mode 100644 index 5d185c875..000000000 Binary files a/images/scoreboard/kshuelskamptim.jpg and /dev/null differ diff --git a/images/scoreboard/ksjenkinslynn.jpg b/images/scoreboard/ksjenkinslynn.jpg deleted file mode 100644 index 5beef4c13..000000000 Binary files a/images/scoreboard/ksjenkinslynn.jpg and /dev/null differ diff --git a/images/scoreboard/ksmoranjerry.jpg b/images/scoreboard/ksmoranjerry.jpg deleted file mode 100644 index 9086f8c60..000000000 Binary files a/images/scoreboard/ksmoranjerry.jpg and /dev/null differ diff --git a/images/scoreboard/kspompeomike.jpg b/images/scoreboard/kspompeomike.jpg deleted file mode 100644 index e5b190763..000000000 Binary files a/images/scoreboard/kspompeomike.jpg and /dev/null differ diff --git a/images/scoreboard/ksrobertspat.jpg b/images/scoreboard/ksrobertspat.jpg deleted file mode 100644 index 459443a2b..000000000 Binary files a/images/scoreboard/ksrobertspat.jpg and /dev/null differ diff --git a/images/scoreboard/ksyoderkevinw.jpg b/images/scoreboard/ksyoderkevinw.jpg deleted file mode 100644 index 5a177f92f..000000000 Binary files a/images/scoreboard/ksyoderkevinw.jpg and /dev/null differ diff --git a/images/scoreboard/kybarrgarland.jpg b/images/scoreboard/kybarrgarland.jpg deleted file mode 100644 index 3208e6fd5..000000000 Binary files a/images/scoreboard/kybarrgarland.jpg and /dev/null differ diff --git a/images/scoreboard/kyedwardwhitfield.jpg b/images/scoreboard/kyedwardwhitfield.jpg deleted file mode 100644 index 3748a0c5a..000000000 Binary files a/images/scoreboard/kyedwardwhitfield.jpg and /dev/null differ diff --git a/images/scoreboard/kyguthriebrett.jpg b/images/scoreboard/kyguthriebrett.jpg deleted file mode 100644 index 21242424a..000000000 Binary files a/images/scoreboard/kyguthriebrett.jpg and /dev/null differ diff --git a/images/scoreboard/kyjohnyarmuth.jpg b/images/scoreboard/kyjohnyarmuth.jpg deleted file mode 100644 index f15be771c..000000000 Binary files a/images/scoreboard/kyjohnyarmuth.jpg and /dev/null differ diff --git a/images/scoreboard/kymassiethomas.jpg b/images/scoreboard/kymassiethomas.jpg deleted file mode 100644 index 4b4bdd483..000000000 Binary files a/images/scoreboard/kymassiethomas.jpg and /dev/null differ diff --git a/images/scoreboard/kymcconnellmitch.jpg b/images/scoreboard/kymcconnellmitch.jpg deleted file mode 100644 index 7408cfffa..000000000 Binary files a/images/scoreboard/kymcconnellmitch.jpg and /dev/null differ diff --git a/images/scoreboard/kypaulrand.jpg b/images/scoreboard/kypaulrand.jpg deleted file mode 100644 index f22bafd93..000000000 Binary files a/images/scoreboard/kypaulrand.jpg and /dev/null differ diff --git a/images/scoreboard/kyrogersharold.jpg b/images/scoreboard/kyrogersharold.jpg deleted file mode 100644 index e453234dc..000000000 Binary files a/images/scoreboard/kyrogersharold.jpg and /dev/null differ diff --git a/images/scoreboard/laabrahamralph.jpg b/images/scoreboard/laabrahamralph.jpg deleted file mode 100755 index 5120b6689..000000000 Binary files a/images/scoreboard/laabrahamralph.jpg and /dev/null differ diff --git a/images/scoreboard/laalexanderrodney.jpg b/images/scoreboard/laalexanderrodney.jpg deleted file mode 100644 index 6adf83d44..000000000 Binary files a/images/scoreboard/laalexanderrodney.jpg and /dev/null differ diff --git a/images/scoreboard/laboustanycharlesjr.jpg b/images/scoreboard/laboustanycharlesjr.jpg deleted file mode 100644 index 49f04c51c..000000000 Binary files a/images/scoreboard/laboustanycharlesjr.jpg and /dev/null differ diff --git a/images/scoreboard/lacassidybill.jpg b/images/scoreboard/lacassidybill.jpg deleted file mode 100644 index f034e5803..000000000 Binary files a/images/scoreboard/lacassidybill.jpg and /dev/null differ diff --git a/images/scoreboard/laflemingjohn.jpg b/images/scoreboard/laflemingjohn.jpg deleted file mode 100644 index 3b0beac93..000000000 Binary files a/images/scoreboard/laflemingjohn.jpg and /dev/null differ diff --git a/images/scoreboard/lagravesgarrett.png b/images/scoreboard/lagravesgarrett.png deleted file mode 100755 index b9f6e323e..000000000 Binary files a/images/scoreboard/lagravesgarrett.png and /dev/null differ diff --git a/images/scoreboard/lalandrieumaryl.jpg b/images/scoreboard/lalandrieumaryl.jpg deleted file mode 100644 index d5e7c0346..000000000 Binary files a/images/scoreboard/lalandrieumaryl.jpg and /dev/null differ diff --git a/images/scoreboard/larichmondcedricl.jpg b/images/scoreboard/larichmondcedricl.jpg deleted file mode 100644 index d04448e80..000000000 Binary files a/images/scoreboard/larichmondcedricl.jpg and /dev/null differ diff --git a/images/scoreboard/lascalisesteve.jpg b/images/scoreboard/lascalisesteve.jpg deleted file mode 100644 index 5cf0fd6e4..000000000 Binary files a/images/scoreboard/lascalisesteve.jpg and /dev/null differ diff --git a/images/scoreboard/lavitterdavid.jpg b/images/scoreboard/lavitterdavid.jpg deleted file mode 100644 index 78e185e0e..000000000 Binary files a/images/scoreboard/lavitterdavid.jpg and /dev/null differ diff --git a/images/scoreboard/macapuanomichaele.jpg b/images/scoreboard/macapuanomichaele.jpg deleted file mode 100644 index 1c60d279a..000000000 Binary files a/images/scoreboard/macapuanomichaele.jpg and /dev/null differ diff --git a/images/scoreboard/maclarkkatherine.jpg b/images/scoreboard/maclarkkatherine.jpg deleted file mode 100755 index e1736adcb..000000000 Binary files a/images/scoreboard/maclarkkatherine.jpg and /dev/null differ diff --git a/images/scoreboard/macowanwilliam.jpg b/images/scoreboard/macowanwilliam.jpg deleted file mode 100644 index 60a8bb1e5..000000000 Binary files a/images/scoreboard/macowanwilliam.jpg and /dev/null differ diff --git a/images/scoreboard/makeatingwilliamr.jpg b/images/scoreboard/makeatingwilliamr.jpg deleted file mode 100644 index 78b747b6d..000000000 Binary files a/images/scoreboard/makeatingwilliamr.jpg and /dev/null differ diff --git a/images/scoreboard/makennedyjosephpiii.jpg b/images/scoreboard/makennedyjosephpiii.jpg deleted file mode 100644 index ccdbd8587..000000000 Binary files a/images/scoreboard/makennedyjosephpiii.jpg and /dev/null differ diff --git a/images/scoreboard/malynchstephenf.jpg b/images/scoreboard/malynchstephenf.jpg deleted file mode 100644 index 72bdfb8ad..000000000 Binary files a/images/scoreboard/malynchstephenf.jpg and /dev/null differ diff --git a/images/scoreboard/mamcgovernjamesp.jpg b/images/scoreboard/mamcgovernjamesp.jpg deleted file mode 100644 index 03294f9ab..000000000 Binary files a/images/scoreboard/mamcgovernjamesp.jpg and /dev/null differ diff --git a/images/scoreboard/mamoultonseth.jpg b/images/scoreboard/mamoultonseth.jpg deleted file mode 100755 index 53dc3ff69..000000000 Binary files a/images/scoreboard/mamoultonseth.jpg and /dev/null differ diff --git a/images/scoreboard/manealricharde.jpg b/images/scoreboard/manealricharde.jpg deleted file mode 100644 index a3c6a4af3..000000000 Binary files a/images/scoreboard/manealricharde.jpg and /dev/null differ diff --git a/images/scoreboard/markey.jpg b/images/scoreboard/markey.jpg deleted file mode 100644 index 868784d56..000000000 Binary files a/images/scoreboard/markey.jpg and /dev/null differ diff --git a/images/scoreboard/matierneyjohnf.jpg b/images/scoreboard/matierneyjohnf.jpg deleted file mode 100644 index 64f43be05..000000000 Binary files a/images/scoreboard/matierneyjohnf.jpg and /dev/null differ diff --git a/images/scoreboard/matsongasniki.jpg b/images/scoreboard/matsongasniki.jpg deleted file mode 100644 index 38e818bde..000000000 Binary files a/images/scoreboard/matsongasniki.jpg and /dev/null differ diff --git a/images/scoreboard/mawarrenelizabetha.jpg b/images/scoreboard/mawarrenelizabetha.jpg deleted file mode 100644 index 5f4415ea8..000000000 Binary files a/images/scoreboard/mawarrenelizabetha.jpg and /dev/null differ diff --git a/images/scoreboard/mdcardinbenjaminl.jpg b/images/scoreboard/mdcardinbenjaminl.jpg deleted file mode 100644 index 38f6993f8..000000000 Binary files a/images/scoreboard/mdcardinbenjaminl.jpg and /dev/null differ diff --git a/images/scoreboard/mdcummingselijahe.jpg b/images/scoreboard/mdcummingselijahe.jpg deleted file mode 100644 index 07b137db4..000000000 Binary files a/images/scoreboard/mdcummingselijahe.jpg and /dev/null differ diff --git a/images/scoreboard/mddelaneyjohn.jpg b/images/scoreboard/mddelaneyjohn.jpg deleted file mode 100644 index 23811de34..000000000 Binary files a/images/scoreboard/mddelaneyjohn.jpg and /dev/null differ diff --git a/images/scoreboard/mdedwardsdonna.jpg b/images/scoreboard/mdedwardsdonna.jpg deleted file mode 100644 index 3e9e53ea4..000000000 Binary files a/images/scoreboard/mdedwardsdonna.jpg and /dev/null differ diff --git a/images/scoreboard/mdharrisandy.jpg b/images/scoreboard/mdharrisandy.jpg deleted file mode 100644 index bc7da82ae..000000000 Binary files a/images/scoreboard/mdharrisandy.jpg and /dev/null differ diff --git a/images/scoreboard/mdhoyerstenyh.jpg b/images/scoreboard/mdhoyerstenyh.jpg deleted file mode 100644 index 10dc27855..000000000 Binary files a/images/scoreboard/mdhoyerstenyh.jpg and /dev/null differ diff --git a/images/scoreboard/mdmikulskibarbaraa.jpg b/images/scoreboard/mdmikulskibarbaraa.jpg deleted file mode 100644 index d63186410..000000000 Binary files a/images/scoreboard/mdmikulskibarbaraa.jpg and /dev/null differ diff --git a/images/scoreboard/mdruppersbergercadutch.jpg b/images/scoreboard/mdruppersbergercadutch.jpg deleted file mode 100644 index e82ff29b5..000000000 Binary files a/images/scoreboard/mdruppersbergercadutch.jpg and /dev/null differ diff --git a/images/scoreboard/mdsarbanesjohnp.jpg b/images/scoreboard/mdsarbanesjohnp.jpg deleted file mode 100644 index 60adb8f1c..000000000 Binary files a/images/scoreboard/mdsarbanesjohnp.jpg and /dev/null differ diff --git a/images/scoreboard/mdvanhollenchris.jpg b/images/scoreboard/mdvanhollenchris.jpg deleted file mode 100644 index faf3aa479..000000000 Binary files a/images/scoreboard/mdvanhollenchris.jpg and /dev/null differ diff --git a/images/scoreboard/mecollinssusan.jpg b/images/scoreboard/mecollinssusan.jpg deleted file mode 100644 index 8250ec3e2..000000000 Binary files a/images/scoreboard/mecollinssusan.jpg and /dev/null differ diff --git a/images/scoreboard/mekingangus.jpg b/images/scoreboard/mekingangus.jpg deleted file mode 100644 index 8d502daac..000000000 Binary files a/images/scoreboard/mekingangus.jpg and /dev/null differ diff --git a/images/scoreboard/memichaudmichaelh.jpg b/images/scoreboard/memichaudmichaelh.jpg deleted file mode 100644 index a7d20a627..000000000 Binary files a/images/scoreboard/memichaudmichaelh.jpg and /dev/null differ diff --git a/images/scoreboard/mepingreechellie.jpg b/images/scoreboard/mepingreechellie.jpg deleted file mode 100644 index 9b6e82249..000000000 Binary files a/images/scoreboard/mepingreechellie.jpg and /dev/null differ diff --git a/images/scoreboard/mepoliquinbruce.png b/images/scoreboard/mepoliquinbruce.png deleted file mode 100755 index a74ddbd8f..000000000 Binary files a/images/scoreboard/mepoliquinbruce.png and /dev/null differ diff --git a/images/scoreboard/miamashjustin.jpg b/images/scoreboard/miamashjustin.jpg deleted file mode 100644 index 7c03c2f0e..000000000 Binary files a/images/scoreboard/miamashjustin.jpg and /dev/null differ diff --git a/images/scoreboard/mibenishekdan.jpg b/images/scoreboard/mibenishekdan.jpg deleted file mode 100644 index 05a400af6..000000000 Binary files a/images/scoreboard/mibenishekdan.jpg and /dev/null differ diff --git a/images/scoreboard/mibentivoliokerry.jpg b/images/scoreboard/mibentivoliokerry.jpg deleted file mode 100644 index 78120c44c..000000000 Binary files a/images/scoreboard/mibentivoliokerry.jpg and /dev/null differ diff --git a/images/scoreboard/mibishopmike.png b/images/scoreboard/mibishopmike.png deleted file mode 100755 index 614a246ca..000000000 Binary files a/images/scoreboard/mibishopmike.png and /dev/null differ diff --git a/images/scoreboard/micampdavelee.jpg b/images/scoreboard/micampdavelee.jpg deleted file mode 100644 index 05f3d8e09..000000000 Binary files a/images/scoreboard/micampdavelee.jpg and /dev/null differ diff --git a/images/scoreboard/miconyersjohnjr.jpg b/images/scoreboard/miconyersjohnjr.jpg deleted file mode 100644 index 55d1c43b6..000000000 Binary files a/images/scoreboard/miconyersjohnjr.jpg and /dev/null differ diff --git a/images/scoreboard/midingelldebbie.png b/images/scoreboard/midingelldebbie.png deleted file mode 100755 index 6a2c32199..000000000 Binary files a/images/scoreboard/midingelldebbie.png and /dev/null differ diff --git a/images/scoreboard/midingelljohnd.jpg b/images/scoreboard/midingelljohnd.jpg deleted file mode 100644 index 14465b38a..000000000 Binary files a/images/scoreboard/midingelljohnd.jpg and /dev/null differ diff --git a/images/scoreboard/mihuizengabill.jpg b/images/scoreboard/mihuizengabill.jpg deleted file mode 100644 index 2f1bb2ff9..000000000 Binary files a/images/scoreboard/mihuizengabill.jpg and /dev/null differ diff --git a/images/scoreboard/mikildeedalee.jpg b/images/scoreboard/mikildeedalee.jpg deleted file mode 100644 index daa7d27bf..000000000 Binary files a/images/scoreboard/mikildeedalee.jpg and /dev/null differ diff --git a/images/scoreboard/mikildeedaniel.jpg b/images/scoreboard/mikildeedaniel.jpg deleted file mode 100755 index 215fca585..000000000 Binary files a/images/scoreboard/mikildeedaniel.jpg and /dev/null differ diff --git a/images/scoreboard/milawrencebrenda.png b/images/scoreboard/milawrencebrenda.png deleted file mode 100755 index 4adaa1aa7..000000000 Binary files a/images/scoreboard/milawrencebrenda.png and /dev/null differ diff --git a/images/scoreboard/milevincarl.jpg b/images/scoreboard/milevincarl.jpg deleted file mode 100644 index b91c0c2fd..000000000 Binary files a/images/scoreboard/milevincarl.jpg and /dev/null differ diff --git a/images/scoreboard/milevinsander.jpg b/images/scoreboard/milevinsander.jpg deleted file mode 100644 index 243a8a0f3..000000000 Binary files a/images/scoreboard/milevinsander.jpg and /dev/null differ diff --git a/images/scoreboard/mimillercandices.jpg b/images/scoreboard/mimillercandices.jpg deleted file mode 100644 index 8ca48f4cd..000000000 Binary files a/images/scoreboard/mimillercandices.jpg and /dev/null differ diff --git a/images/scoreboard/mimoolenaarjohn.png b/images/scoreboard/mimoolenaarjohn.png deleted file mode 100755 index 7d3f94653..000000000 Binary files a/images/scoreboard/mimoolenaarjohn.png and /dev/null differ diff --git a/images/scoreboard/mipetersgary.jpg b/images/scoreboard/mipetersgary.jpg deleted file mode 100644 index 8a76d6d6f..000000000 Binary files a/images/scoreboard/mipetersgary.jpg and /dev/null differ diff --git a/images/scoreboard/mirogersmike.jpg b/images/scoreboard/mirogersmike.jpg deleted file mode 100644 index 29e3010a5..000000000 Binary files a/images/scoreboard/mirogersmike.jpg and /dev/null differ diff --git a/images/scoreboard/mistabenowdebbie.jpg b/images/scoreboard/mistabenowdebbie.jpg deleted file mode 100644 index c08407f12..000000000 Binary files a/images/scoreboard/mistabenowdebbie.jpg and /dev/null differ diff --git a/images/scoreboard/mithompsonbennieg.jpg b/images/scoreboard/mithompsonbennieg.jpg deleted file mode 100644 index c09666416..000000000 Binary files a/images/scoreboard/mithompsonbennieg.jpg and /dev/null differ diff --git a/images/scoreboard/mitrottdavid.jpg b/images/scoreboard/mitrottdavid.jpg deleted file mode 100755 index e33299c5c..000000000 Binary files a/images/scoreboard/mitrottdavid.jpg and /dev/null differ diff --git a/images/scoreboard/miuptonfreds.jpg b/images/scoreboard/miuptonfreds.jpg deleted file mode 100644 index f8d74b236..000000000 Binary files a/images/scoreboard/miuptonfreds.jpg and /dev/null differ diff --git a/images/scoreboard/miwalbergtim.jpg b/images/scoreboard/miwalbergtim.jpg deleted file mode 100644 index 3beda6a57..000000000 Binary files a/images/scoreboard/miwalbergtim.jpg and /dev/null differ diff --git a/images/scoreboard/mnbachmannmichele.jpg b/images/scoreboard/mnbachmannmichele.jpg deleted file mode 100644 index 49eb22e73..000000000 Binary files a/images/scoreboard/mnbachmannmichele.jpg and /dev/null differ diff --git a/images/scoreboard/mnellisonkeithm.jpg b/images/scoreboard/mnellisonkeithm.jpg deleted file mode 100644 index d8211ec4b..000000000 Binary files a/images/scoreboard/mnellisonkeithm.jpg and /dev/null differ diff --git a/images/scoreboard/mnemmertom.png b/images/scoreboard/mnemmertom.png deleted file mode 100755 index d49ea38c8..000000000 Binary files a/images/scoreboard/mnemmertom.png and /dev/null differ diff --git a/images/scoreboard/mnfrankenal.jpg b/images/scoreboard/mnfrankenal.jpg deleted file mode 100644 index 33d68b81f..000000000 Binary files a/images/scoreboard/mnfrankenal.jpg and /dev/null differ diff --git a/images/scoreboard/mnklinejohn.jpg b/images/scoreboard/mnklinejohn.jpg deleted file mode 100644 index 887bcd944..000000000 Binary files a/images/scoreboard/mnklinejohn.jpg and /dev/null differ diff --git a/images/scoreboard/mnklobucharamy.jpg b/images/scoreboard/mnklobucharamy.jpg deleted file mode 100644 index c45b50625..000000000 Binary files a/images/scoreboard/mnklobucharamy.jpg and /dev/null differ diff --git a/images/scoreboard/mnmccollumbetty.jpg b/images/scoreboard/mnmccollumbetty.jpg deleted file mode 100644 index a5c68a3ed..000000000 Binary files a/images/scoreboard/mnmccollumbetty.jpg and /dev/null differ diff --git a/images/scoreboard/mnnolanrichard.jpg b/images/scoreboard/mnnolanrichard.jpg deleted file mode 100644 index cf3d93beb..000000000 Binary files a/images/scoreboard/mnnolanrichard.jpg and /dev/null differ diff --git a/images/scoreboard/mnpaulsenerik.jpg b/images/scoreboard/mnpaulsenerik.jpg deleted file mode 100644 index 71179ac0a..000000000 Binary files a/images/scoreboard/mnpaulsenerik.jpg and /dev/null differ diff --git a/images/scoreboard/mnpetersoncollinc.jpg b/images/scoreboard/mnpetersoncollinc.jpg deleted file mode 100644 index d1b1e22d9..000000000 Binary files a/images/scoreboard/mnpetersoncollinc.jpg and /dev/null differ diff --git a/images/scoreboard/mnwalztim.jpg b/images/scoreboard/mnwalztim.jpg deleted file mode 100644 index 51764a3c4..000000000 Binary files a/images/scoreboard/mnwalztim.jpg and /dev/null differ diff --git a/images/scoreboard/mobluntroy.jpg b/images/scoreboard/mobluntroy.jpg deleted file mode 100644 index de8a8e602..000000000 Binary files a/images/scoreboard/mobluntroy.jpg and /dev/null differ diff --git a/images/scoreboard/moclaywilliamlacy.jpg b/images/scoreboard/moclaywilliamlacy.jpg deleted file mode 100644 index e2bf2f1d2..000000000 Binary files a/images/scoreboard/moclaywilliamlacy.jpg and /dev/null differ diff --git a/images/scoreboard/mocleaveremanuelii.jpg b/images/scoreboard/mocleaveremanuelii.jpg deleted file mode 100644 index da9800a07..000000000 Binary files a/images/scoreboard/mocleaveremanuelii.jpg and /dev/null differ diff --git a/images/scoreboard/mogravessam.jpg b/images/scoreboard/mogravessam.jpg deleted file mode 100644 index 0377afccf..000000000 Binary files a/images/scoreboard/mogravessam.jpg and /dev/null differ diff --git a/images/scoreboard/mohartzlervicky.jpg b/images/scoreboard/mohartzlervicky.jpg deleted file mode 100644 index 8334d034a..000000000 Binary files a/images/scoreboard/mohartzlervicky.jpg and /dev/null differ diff --git a/images/scoreboard/molongbilly.jpg b/images/scoreboard/molongbilly.jpg deleted file mode 100644 index 1e0d4cd89..000000000 Binary files a/images/scoreboard/molongbilly.jpg and /dev/null differ diff --git a/images/scoreboard/moluetkemeyerblaine.jpg b/images/scoreboard/moluetkemeyerblaine.jpg deleted file mode 100644 index 7376eb957..000000000 Binary files a/images/scoreboard/moluetkemeyerblaine.jpg and /dev/null differ diff --git a/images/scoreboard/momccaskillclaire.jpg b/images/scoreboard/momccaskillclaire.jpg deleted file mode 100644 index 0dabfed40..000000000 Binary files a/images/scoreboard/momccaskillclaire.jpg and /dev/null differ diff --git a/images/scoreboard/mosmithjason.jpg b/images/scoreboard/mosmithjason.jpg deleted file mode 100644 index 4ec335fa5..000000000 Binary files a/images/scoreboard/mosmithjason.jpg and /dev/null differ diff --git a/images/scoreboard/mowagnerann.jpg b/images/scoreboard/mowagnerann.jpg deleted file mode 100644 index 287482e06..000000000 Binary files a/images/scoreboard/mowagnerann.jpg and /dev/null differ diff --git a/images/scoreboard/mpsablangregorio.jpg b/images/scoreboard/mpsablangregorio.jpg deleted file mode 100755 index a353f766a..000000000 Binary files a/images/scoreboard/mpsablangregorio.jpg and /dev/null differ diff --git a/images/scoreboard/mscochranthad.jpg b/images/scoreboard/mscochranthad.jpg deleted file mode 100644 index 30d43e556..000000000 Binary files a/images/scoreboard/mscochranthad.jpg and /dev/null differ diff --git a/images/scoreboard/msharpergregg.jpg b/images/scoreboard/msharpergregg.jpg deleted file mode 100644 index c865c21e4..000000000 Binary files a/images/scoreboard/msharpergregg.jpg and /dev/null differ diff --git a/images/scoreboard/msnunneleealan.jpg b/images/scoreboard/msnunneleealan.jpg deleted file mode 100644 index 04d281e4a..000000000 Binary files a/images/scoreboard/msnunneleealan.jpg and /dev/null differ diff --git a/images/scoreboard/mspalazzosteven.jpg b/images/scoreboard/mspalazzosteven.jpg deleted file mode 100644 index 6249f1583..000000000 Binary files a/images/scoreboard/mspalazzosteven.jpg and /dev/null differ diff --git a/images/scoreboard/mswickerrogerf.jpg b/images/scoreboard/mswickerrogerf.jpg deleted file mode 100644 index 7db8e0ade..000000000 Binary files a/images/scoreboard/mswickerrogerf.jpg and /dev/null differ diff --git a/images/scoreboard/mtbaucusmax.jpg b/images/scoreboard/mtbaucusmax.jpg deleted file mode 100644 index 17ff75f83..000000000 Binary files a/images/scoreboard/mtbaucusmax.jpg and /dev/null differ diff --git a/images/scoreboard/mtdainessteve.jpg b/images/scoreboard/mtdainessteve.jpg deleted file mode 100644 index 6ad7bc1bc..000000000 Binary files a/images/scoreboard/mtdainessteve.jpg and /dev/null differ diff --git a/images/scoreboard/mttesterjon.jpg b/images/scoreboard/mttesterjon.jpg deleted file mode 100644 index 36f368054..000000000 Binary files a/images/scoreboard/mttesterjon.jpg and /dev/null differ diff --git a/images/scoreboard/mtzinkeryan.jpg b/images/scoreboard/mtzinkeryan.jpg deleted file mode 100755 index 799a70687..000000000 Binary files a/images/scoreboard/mtzinkeryan.jpg and /dev/null differ diff --git a/images/scoreboard/ncadamsalma.jpg b/images/scoreboard/ncadamsalma.jpg deleted file mode 100755 index a72b62335..000000000 Binary files a/images/scoreboard/ncadamsalma.jpg and /dev/null differ diff --git a/images/scoreboard/ncburrrichard.jpg b/images/scoreboard/ncburrrichard.jpg deleted file mode 100644 index 30a582c0a..000000000 Binary files a/images/scoreboard/ncburrrichard.jpg and /dev/null differ diff --git a/images/scoreboard/ncbutterfieldgkjr.jpg b/images/scoreboard/ncbutterfieldgkjr.jpg deleted file mode 100644 index 80694a409..000000000 Binary files a/images/scoreboard/ncbutterfieldgkjr.jpg and /dev/null differ diff --git a/images/scoreboard/nccoblehoward.jpg b/images/scoreboard/nccoblehoward.jpg deleted file mode 100644 index b9b739ba4..000000000 Binary files a/images/scoreboard/nccoblehoward.jpg and /dev/null differ diff --git a/images/scoreboard/ncellmersrenee.jpg b/images/scoreboard/ncellmersrenee.jpg deleted file mode 100644 index 741a0ba5f..000000000 Binary files a/images/scoreboard/ncellmersrenee.jpg and /dev/null differ diff --git a/images/scoreboard/ncfoxxvirginia.jpg b/images/scoreboard/ncfoxxvirginia.jpg deleted file mode 100644 index 4e6c3989d..000000000 Binary files a/images/scoreboard/ncfoxxvirginia.jpg and /dev/null differ diff --git a/images/scoreboard/nchagankayr.jpg b/images/scoreboard/nchagankayr.jpg deleted file mode 100644 index a2b1686fd..000000000 Binary files a/images/scoreboard/nchagankayr.jpg and /dev/null differ diff --git a/images/scoreboard/ncholdinggeorge.jpg b/images/scoreboard/ncholdinggeorge.jpg deleted file mode 100644 index 063bb7870..000000000 Binary files a/images/scoreboard/ncholdinggeorge.jpg and /dev/null differ diff --git a/images/scoreboard/nchudsonrichard.jpg b/images/scoreboard/nchudsonrichard.jpg deleted file mode 100644 index 305445fa0..000000000 Binary files a/images/scoreboard/nchudsonrichard.jpg and /dev/null differ diff --git a/images/scoreboard/ncjoneswalterb.jpg b/images/scoreboard/ncjoneswalterb.jpg deleted file mode 100644 index ea9a86bd3..000000000 Binary files a/images/scoreboard/ncjoneswalterb.jpg and /dev/null differ diff --git a/images/scoreboard/ncmchenrypatrick.jpg b/images/scoreboard/ncmchenrypatrick.jpg deleted file mode 100644 index 1f5f866a0..000000000 Binary files a/images/scoreboard/ncmchenrypatrick.jpg and /dev/null differ diff --git a/images/scoreboard/ncmcintyremike.jpg b/images/scoreboard/ncmcintyremike.jpg deleted file mode 100644 index 3b9f6da56..000000000 Binary files a/images/scoreboard/ncmcintyremike.jpg and /dev/null differ diff --git a/images/scoreboard/ncmeadowsmark.jpg b/images/scoreboard/ncmeadowsmark.jpg deleted file mode 100644 index 893bd76c1..000000000 Binary files a/images/scoreboard/ncmeadowsmark.jpg and /dev/null differ diff --git a/images/scoreboard/ncpittengerrobert.jpg b/images/scoreboard/ncpittengerrobert.jpg deleted file mode 100644 index c90b79662..000000000 Binary files a/images/scoreboard/ncpittengerrobert.jpg and /dev/null differ diff --git a/images/scoreboard/ncpricedavid.jpg b/images/scoreboard/ncpricedavid.jpg deleted file mode 100644 index 58b230dca..000000000 Binary files a/images/scoreboard/ncpricedavid.jpg and /dev/null differ diff --git a/images/scoreboard/ncrouzerdavid.jpg b/images/scoreboard/ncrouzerdavid.jpg deleted file mode 100755 index da5e674fc..000000000 Binary files a/images/scoreboard/ncrouzerdavid.jpg and /dev/null differ diff --git a/images/scoreboard/nctillisthom.jpg b/images/scoreboard/nctillisthom.jpg deleted file mode 100755 index c6a3df777..000000000 Binary files a/images/scoreboard/nctillisthom.jpg and /dev/null differ diff --git a/images/scoreboard/ncwalkerbradley.jpg b/images/scoreboard/ncwalkerbradley.jpg deleted file mode 100755 index 3443bd684..000000000 Binary files a/images/scoreboard/ncwalkerbradley.jpg and /dev/null differ diff --git a/images/scoreboard/ncwattmelvinl.jpg b/images/scoreboard/ncwattmelvinl.jpg deleted file mode 100644 index 3980cad5a..000000000 Binary files a/images/scoreboard/ncwattmelvinl.jpg and /dev/null differ diff --git a/images/scoreboard/ndcramerkevin.jpg b/images/scoreboard/ndcramerkevin.jpg deleted file mode 100644 index c959eefd7..000000000 Binary files a/images/scoreboard/ndcramerkevin.jpg and /dev/null differ diff --git a/images/scoreboard/ndheitkampheidi.jpg b/images/scoreboard/ndheitkampheidi.jpg deleted file mode 100644 index 9f2c5a93b..000000000 Binary files a/images/scoreboard/ndheitkampheidi.jpg and /dev/null differ diff --git a/images/scoreboard/ndhoevenjohn.jpg b/images/scoreboard/ndhoevenjohn.jpg deleted file mode 100644 index 41c29c533..000000000 Binary files a/images/scoreboard/ndhoevenjohn.jpg and /dev/null differ diff --git a/images/scoreboard/neashfordbrad.png b/images/scoreboard/neashfordbrad.png deleted file mode 100755 index 5ddb334ca..000000000 Binary files a/images/scoreboard/neashfordbrad.png and /dev/null differ diff --git a/images/scoreboard/nefischerdeb.jpg b/images/scoreboard/nefischerdeb.jpg deleted file mode 100644 index 8706ddc4e..000000000 Binary files a/images/scoreboard/nefischerdeb.jpg and /dev/null differ diff --git a/images/scoreboard/nefortenberryjeff.jpg b/images/scoreboard/nefortenberryjeff.jpg deleted file mode 100644 index 7c310ad3b..000000000 Binary files a/images/scoreboard/nefortenberryjeff.jpg and /dev/null differ diff --git a/images/scoreboard/nejohannsmike.jpg b/images/scoreboard/nejohannsmike.jpg deleted file mode 100644 index 9562bdcba..000000000 Binary files a/images/scoreboard/nejohannsmike.jpg and /dev/null differ diff --git a/images/scoreboard/nesassebenjamin.jpg b/images/scoreboard/nesassebenjamin.jpg deleted file mode 100755 index fb5997932..000000000 Binary files a/images/scoreboard/nesassebenjamin.jpg and /dev/null differ diff --git a/images/scoreboard/nesmithadrian.jpg b/images/scoreboard/nesmithadrian.jpg deleted file mode 100644 index 3a8a14feb..000000000 Binary files a/images/scoreboard/nesmithadrian.jpg and /dev/null differ diff --git a/images/scoreboard/neterrylee.jpg b/images/scoreboard/neterrylee.jpg deleted file mode 100644 index ba896e7f9..000000000 Binary files a/images/scoreboard/neterrylee.jpg and /dev/null differ diff --git a/images/scoreboard/nhayottekelly.jpg b/images/scoreboard/nhayottekelly.jpg deleted file mode 100644 index 8f69e94e1..000000000 Binary files a/images/scoreboard/nhayottekelly.jpg and /dev/null differ diff --git a/images/scoreboard/nhguintafrank.jpg b/images/scoreboard/nhguintafrank.jpg deleted file mode 100755 index bc17e0eec..000000000 Binary files a/images/scoreboard/nhguintafrank.jpg and /dev/null differ diff --git a/images/scoreboard/nhkusterannmclane.jpg b/images/scoreboard/nhkusterannmclane.jpg deleted file mode 100644 index 638a408d9..000000000 Binary files a/images/scoreboard/nhkusterannmclane.jpg and /dev/null differ diff --git a/images/scoreboard/nhshaheenjeanne.jpg b/images/scoreboard/nhshaheenjeanne.jpg deleted file mode 100644 index a427d8b86..000000000 Binary files a/images/scoreboard/nhshaheenjeanne.jpg and /dev/null differ diff --git a/images/scoreboard/nhsheaportercarol.jpg b/images/scoreboard/nhsheaportercarol.jpg deleted file mode 100644 index 4d9855fbe..000000000 Binary files a/images/scoreboard/nhsheaportercarol.jpg and /dev/null differ diff --git a/images/scoreboard/njandrewsroberte.jpg b/images/scoreboard/njandrewsroberte.jpg deleted file mode 100644 index 43feb98a9..000000000 Binary files a/images/scoreboard/njandrewsroberte.jpg and /dev/null differ diff --git a/images/scoreboard/njbookercory.jpg b/images/scoreboard/njbookercory.jpg deleted file mode 100644 index cfe569acd..000000000 Binary files a/images/scoreboard/njbookercory.jpg and /dev/null differ diff --git a/images/scoreboard/njfrelinghuysenrodneyp.jpg b/images/scoreboard/njfrelinghuysenrodneyp.jpg deleted file mode 100644 index fcc56d613..000000000 Binary files a/images/scoreboard/njfrelinghuysenrodneyp.jpg and /dev/null differ diff --git a/images/scoreboard/njgarrettscott.jpg b/images/scoreboard/njgarrettscott.jpg deleted file mode 100644 index e38dd2239..000000000 Binary files a/images/scoreboard/njgarrettscott.jpg and /dev/null differ diff --git a/images/scoreboard/njholtrushd.jpg b/images/scoreboard/njholtrushd.jpg deleted file mode 100644 index 496ba503e..000000000 Binary files a/images/scoreboard/njholtrushd.jpg and /dev/null differ diff --git a/images/scoreboard/njlanceleonard.jpg b/images/scoreboard/njlanceleonard.jpg deleted file mode 100644 index f1bb098b0..000000000 Binary files a/images/scoreboard/njlanceleonard.jpg and /dev/null differ diff --git a/images/scoreboard/njlobiondofranka.jpg b/images/scoreboard/njlobiondofranka.jpg deleted file mode 100644 index 14847e931..000000000 Binary files a/images/scoreboard/njlobiondofranka.jpg and /dev/null differ diff --git a/images/scoreboard/njmacarthurtom.jpg b/images/scoreboard/njmacarthurtom.jpg deleted file mode 100755 index c06636d9d..000000000 Binary files a/images/scoreboard/njmacarthurtom.jpg and /dev/null differ diff --git a/images/scoreboard/njmenendezrobert.jpg b/images/scoreboard/njmenendezrobert.jpg deleted file mode 100644 index 9a90d47a1..000000000 Binary files a/images/scoreboard/njmenendezrobert.jpg and /dev/null differ diff --git a/images/scoreboard/njnorcrossdavid.jpg b/images/scoreboard/njnorcrossdavid.jpg deleted file mode 100755 index 4c656b321..000000000 Binary files a/images/scoreboard/njnorcrossdavid.jpg and /dev/null differ diff --git a/images/scoreboard/njpallonefrankjr.jpg b/images/scoreboard/njpallonefrankjr.jpg deleted file mode 100644 index 3c0e3ef24..000000000 Binary files a/images/scoreboard/njpallonefrankjr.jpg and /dev/null differ diff --git a/images/scoreboard/njpascrellwilliamjjr.jpg b/images/scoreboard/njpascrellwilliamjjr.jpg deleted file mode 100644 index 6c1ed13d5..000000000 Binary files a/images/scoreboard/njpascrellwilliamjjr.jpg and /dev/null differ diff --git a/images/scoreboard/njpaynedonaldmjr.jpg b/images/scoreboard/njpaynedonaldmjr.jpg deleted file mode 100644 index 98ebff1e3..000000000 Binary files a/images/scoreboard/njpaynedonaldmjr.jpg and /dev/null differ diff --git a/images/scoreboard/njrunyanjon.jpg b/images/scoreboard/njrunyanjon.jpg deleted file mode 100644 index f109b7079..000000000 Binary files a/images/scoreboard/njrunyanjon.jpg and /dev/null differ diff --git a/images/scoreboard/njsiresalbio.jpg b/images/scoreboard/njsiresalbio.jpg deleted file mode 100644 index 07cd91557..000000000 Binary files a/images/scoreboard/njsiresalbio.jpg and /dev/null differ diff --git a/images/scoreboard/njsmithchris.jpg b/images/scoreboard/njsmithchris.jpg deleted file mode 100644 index 778f67314..000000000 Binary files a/images/scoreboard/njsmithchris.jpg and /dev/null differ diff --git a/images/scoreboard/njwatsoncolemanbonnie.png b/images/scoreboard/njwatsoncolemanbonnie.png deleted file mode 100755 index d054abc67..000000000 Binary files a/images/scoreboard/njwatsoncolemanbonnie.png and /dev/null differ diff --git a/images/scoreboard/nmgrishammichellelujan.jpg b/images/scoreboard/nmgrishammichellelujan.jpg deleted file mode 100644 index 4cc3c0ebd..000000000 Binary files a/images/scoreboard/nmgrishammichellelujan.jpg and /dev/null differ diff --git a/images/scoreboard/nmheinrichmartint.jpg b/images/scoreboard/nmheinrichmartint.jpg deleted file mode 100644 index e2c257560..000000000 Binary files a/images/scoreboard/nmheinrichmartint.jpg and /dev/null differ diff --git a/images/scoreboard/nmlujanben.jpg b/images/scoreboard/nmlujanben.jpg deleted file mode 100644 index e20d0dcc6..000000000 Binary files a/images/scoreboard/nmlujanben.jpg and /dev/null differ diff --git a/images/scoreboard/nmpearcesteve.jpg b/images/scoreboard/nmpearcesteve.jpg deleted file mode 100644 index 97b19a2bc..000000000 Binary files a/images/scoreboard/nmpearcesteve.jpg and /dev/null differ diff --git a/images/scoreboard/nmudalltom.jpg b/images/scoreboard/nmudalltom.jpg deleted file mode 100644 index 8782fceb8..000000000 Binary files a/images/scoreboard/nmudalltom.jpg and /dev/null differ diff --git a/images/scoreboard/nvamodeimarke.jpg b/images/scoreboard/nvamodeimarke.jpg deleted file mode 100644 index 8559cd37d..000000000 Binary files a/images/scoreboard/nvamodeimarke.jpg and /dev/null differ diff --git a/images/scoreboard/nvhardycrescent.png b/images/scoreboard/nvhardycrescent.png deleted file mode 100755 index 7978a49dd..000000000 Binary files a/images/scoreboard/nvhardycrescent.png and /dev/null differ diff --git a/images/scoreboard/nvheckjoe.jpg b/images/scoreboard/nvheckjoe.jpg deleted file mode 100644 index 9db663bab..000000000 Binary files a/images/scoreboard/nvheckjoe.jpg and /dev/null differ diff --git a/images/scoreboard/nvhellerdean.jpg b/images/scoreboard/nvhellerdean.jpg deleted file mode 100644 index afe92989f..000000000 Binary files a/images/scoreboard/nvhellerdean.jpg and /dev/null differ diff --git a/images/scoreboard/nvhorsfordstevena.jpg b/images/scoreboard/nvhorsfordstevena.jpg deleted file mode 100644 index 48095f55d..000000000 Binary files a/images/scoreboard/nvhorsfordstevena.jpg and /dev/null differ diff --git a/images/scoreboard/nvreidharry.jpg b/images/scoreboard/nvreidharry.jpg deleted file mode 100644 index 973dea2ce..000000000 Binary files a/images/scoreboard/nvreidharry.jpg and /dev/null differ diff --git a/images/scoreboard/nvtitusdina.jpg b/images/scoreboard/nvtitusdina.jpg deleted file mode 100644 index 7f5501dbe..000000000 Binary files a/images/scoreboard/nvtitusdina.jpg and /dev/null differ diff --git a/images/scoreboard/nybishoptimothy.jpg b/images/scoreboard/nybishoptimothy.jpg deleted file mode 100644 index 2240a66bb..000000000 Binary files a/images/scoreboard/nybishoptimothy.jpg and /dev/null differ diff --git a/images/scoreboard/nyclarkeyvetted.jpg b/images/scoreboard/nyclarkeyvetted.jpg deleted file mode 100644 index bccc4cd5d..000000000 Binary files a/images/scoreboard/nyclarkeyvetted.jpg and /dev/null differ diff --git a/images/scoreboard/nycollinschris.jpg b/images/scoreboard/nycollinschris.jpg deleted file mode 100644 index 581e70eca..000000000 Binary files a/images/scoreboard/nycollinschris.jpg and /dev/null differ diff --git a/images/scoreboard/nycrowleyjoseph.jpg b/images/scoreboard/nycrowleyjoseph.jpg deleted file mode 100644 index 9d90061ff..000000000 Binary files a/images/scoreboard/nycrowleyjoseph.jpg and /dev/null differ diff --git a/images/scoreboard/nyengeleliotl.jpg b/images/scoreboard/nyengeleliotl.jpg deleted file mode 100644 index 111b1516b..000000000 Binary files a/images/scoreboard/nyengeleliotl.jpg and /dev/null differ diff --git a/images/scoreboard/nygibsonchristopherp.jpg b/images/scoreboard/nygibsonchristopherp.jpg deleted file mode 100644 index 0e1ff1bc8..000000000 Binary files a/images/scoreboard/nygibsonchristopherp.jpg and /dev/null differ diff --git a/images/scoreboard/nygillibrandkirstene.jpg b/images/scoreboard/nygillibrandkirstene.jpg deleted file mode 100644 index e5a3f445c..000000000 Binary files a/images/scoreboard/nygillibrandkirstene.jpg and /dev/null differ diff --git a/images/scoreboard/nygrimmmichaelg.jpg b/images/scoreboard/nygrimmmichaelg.jpg deleted file mode 100644 index 858514277..000000000 Binary files a/images/scoreboard/nygrimmmichaelg.jpg and /dev/null differ diff --git a/images/scoreboard/nyhannarichardl.jpg b/images/scoreboard/nyhannarichardl.jpg deleted file mode 100644 index a17484fe2..000000000 Binary files a/images/scoreboard/nyhannarichardl.jpg and /dev/null differ diff --git a/images/scoreboard/nyhigginsbrianm.jpg b/images/scoreboard/nyhigginsbrianm.jpg deleted file mode 100644 index c956d3199..000000000 Binary files a/images/scoreboard/nyhigginsbrianm.jpg and /dev/null differ diff --git a/images/scoreboard/nyisraelstevej.jpg b/images/scoreboard/nyisraelstevej.jpg deleted file mode 100644 index 7646e4eaf..000000000 Binary files a/images/scoreboard/nyisraelstevej.jpg and /dev/null differ diff --git a/images/scoreboard/nyjeffrieshakeem.jpg b/images/scoreboard/nyjeffrieshakeem.jpg deleted file mode 100644 index 56f475b33..000000000 Binary files a/images/scoreboard/nyjeffrieshakeem.jpg and /dev/null differ diff --git a/images/scoreboard/nykatkojohn.png b/images/scoreboard/nykatkojohn.png deleted file mode 100755 index dbda02e62..000000000 Binary files a/images/scoreboard/nykatkojohn.png and /dev/null differ diff --git a/images/scoreboard/nykingpeter.jpg b/images/scoreboard/nykingpeter.jpg deleted file mode 100644 index f79fe3d24..000000000 Binary files a/images/scoreboard/nykingpeter.jpg and /dev/null differ diff --git a/images/scoreboard/nyloweynitam.jpg b/images/scoreboard/nyloweynitam.jpg deleted file mode 100644 index ea9d13320..000000000 Binary files a/images/scoreboard/nyloweynitam.jpg and /dev/null differ diff --git a/images/scoreboard/nymaffeidan.jpg b/images/scoreboard/nymaffeidan.jpg deleted file mode 100644 index 204d62e46..000000000 Binary files a/images/scoreboard/nymaffeidan.jpg and /dev/null differ diff --git a/images/scoreboard/nymaloneycarolyn.jpg b/images/scoreboard/nymaloneycarolyn.jpg deleted file mode 100644 index 549f6bb86..000000000 Binary files a/images/scoreboard/nymaloneycarolyn.jpg and /dev/null differ diff --git a/images/scoreboard/nymaloneyseanpatrick.jpg b/images/scoreboard/nymaloneyseanpatrick.jpg deleted file mode 100644 index 68411cd4c..000000000 Binary files a/images/scoreboard/nymaloneyseanpatrick.jpg and /dev/null differ diff --git a/images/scoreboard/nymccarthycarolyn.jpg b/images/scoreboard/nymccarthycarolyn.jpg deleted file mode 100644 index 7277aa14d..000000000 Binary files a/images/scoreboard/nymccarthycarolyn.jpg and /dev/null differ diff --git a/images/scoreboard/nymeeksgregoryw.jpg b/images/scoreboard/nymeeksgregoryw.jpg deleted file mode 100644 index 6cb7c7d2a..000000000 Binary files a/images/scoreboard/nymeeksgregoryw.jpg and /dev/null differ diff --git a/images/scoreboard/nymenggrace.jpg b/images/scoreboard/nymenggrace.jpg deleted file mode 100644 index ae90efcac..000000000 Binary files a/images/scoreboard/nymenggrace.jpg and /dev/null differ diff --git a/images/scoreboard/nynadlerjerroldl.jpg b/images/scoreboard/nynadlerjerroldl.jpg deleted file mode 100644 index cac617254..000000000 Binary files a/images/scoreboard/nynadlerjerroldl.jpg and /dev/null differ diff --git a/images/scoreboard/nyowensbill.jpg b/images/scoreboard/nyowensbill.jpg deleted file mode 100644 index 331106804..000000000 Binary files a/images/scoreboard/nyowensbill.jpg and /dev/null differ diff --git a/images/scoreboard/nyrangelcharlesb.jpg b/images/scoreboard/nyrangelcharlesb.jpg deleted file mode 100644 index 3daa27558..000000000 Binary files a/images/scoreboard/nyrangelcharlesb.jpg and /dev/null differ diff --git a/images/scoreboard/nyreedtom.jpg b/images/scoreboard/nyreedtom.jpg deleted file mode 100644 index 896dae802..000000000 Binary files a/images/scoreboard/nyreedtom.jpg and /dev/null differ diff --git a/images/scoreboard/nyricekathleen.jpg b/images/scoreboard/nyricekathleen.jpg deleted file mode 100755 index e3c9fa4d8..000000000 Binary files a/images/scoreboard/nyricekathleen.jpg and /dev/null differ diff --git a/images/scoreboard/nyschumercharlese.jpg b/images/scoreboard/nyschumercharlese.jpg deleted file mode 100644 index 523851074..000000000 Binary files a/images/scoreboard/nyschumercharlese.jpg and /dev/null differ diff --git a/images/scoreboard/nyserranojose.jpg b/images/scoreboard/nyserranojose.jpg deleted file mode 100644 index 4187557e0..000000000 Binary files a/images/scoreboard/nyserranojose.jpg and /dev/null differ diff --git a/images/scoreboard/nyslaughterlouisem.jpg b/images/scoreboard/nyslaughterlouisem.jpg deleted file mode 100644 index 0455c26ad..000000000 Binary files a/images/scoreboard/nyslaughterlouisem.jpg and /dev/null differ diff --git a/images/scoreboard/nystefanikelise.png b/images/scoreboard/nystefanikelise.png deleted file mode 100755 index 534cd5194..000000000 Binary files a/images/scoreboard/nystefanikelise.png and /dev/null differ diff --git a/images/scoreboard/nytonkopauld.jpg b/images/scoreboard/nytonkopauld.jpg deleted file mode 100644 index ea726b122..000000000 Binary files a/images/scoreboard/nytonkopauld.jpg and /dev/null differ diff --git a/images/scoreboard/nyvelazqueznydiam.jpg b/images/scoreboard/nyvelazqueznydiam.jpg deleted file mode 100644 index b1db6be7a..000000000 Binary files a/images/scoreboard/nyvelazqueznydiam.jpg and /dev/null differ diff --git a/images/scoreboard/nyzeldinlee.jpg b/images/scoreboard/nyzeldinlee.jpg deleted file mode 100755 index adc2c08c9..000000000 Binary files a/images/scoreboard/nyzeldinlee.jpg and /dev/null differ diff --git a/images/scoreboard/obama.jpg b/images/scoreboard/obama.jpg deleted file mode 100644 index a8239011a..000000000 Binary files a/images/scoreboard/obama.jpg and /dev/null differ diff --git a/images/scoreboard/ohbeattyjoyce.jpg b/images/scoreboard/ohbeattyjoyce.jpg deleted file mode 100644 index 8d6a2d4bc..000000000 Binary files a/images/scoreboard/ohbeattyjoyce.jpg and /dev/null differ diff --git a/images/scoreboard/ohboehnerjohna.jpg b/images/scoreboard/ohboehnerjohna.jpg deleted file mode 100644 index cf2a77481..000000000 Binary files a/images/scoreboard/ohboehnerjohna.jpg and /dev/null differ diff --git a/images/scoreboard/ohbrownsherrod.jpg b/images/scoreboard/ohbrownsherrod.jpg deleted file mode 100644 index a5beb4863..000000000 Binary files a/images/scoreboard/ohbrownsherrod.jpg and /dev/null differ diff --git a/images/scoreboard/ohchabotsteve.jpg b/images/scoreboard/ohchabotsteve.jpg deleted file mode 100644 index bfd907863..000000000 Binary files a/images/scoreboard/ohchabotsteve.jpg and /dev/null differ diff --git a/images/scoreboard/ohfudgemarcial.jpg b/images/scoreboard/ohfudgemarcial.jpg deleted file mode 100644 index ad06cbeb9..000000000 Binary files a/images/scoreboard/ohfudgemarcial.jpg and /dev/null differ diff --git a/images/scoreboard/ohgibbsbob.jpg b/images/scoreboard/ohgibbsbob.jpg deleted file mode 100644 index 48046b94f..000000000 Binary files a/images/scoreboard/ohgibbsbob.jpg and /dev/null differ diff --git a/images/scoreboard/ohjohnsonbill.jpg b/images/scoreboard/ohjohnsonbill.jpg deleted file mode 100644 index c77aab61c..000000000 Binary files a/images/scoreboard/ohjohnsonbill.jpg and /dev/null differ diff --git a/images/scoreboard/ohjordanjim.jpg b/images/scoreboard/ohjordanjim.jpg deleted file mode 100644 index 76303d3cd..000000000 Binary files a/images/scoreboard/ohjordanjim.jpg and /dev/null differ diff --git a/images/scoreboard/ohjoycedavid.jpg b/images/scoreboard/ohjoycedavid.jpg deleted file mode 100644 index 1554c4b2f..000000000 Binary files a/images/scoreboard/ohjoycedavid.jpg and /dev/null differ diff --git a/images/scoreboard/ohkapturmarcy.jpg b/images/scoreboard/ohkapturmarcy.jpg deleted file mode 100644 index 1cd0a2677..000000000 Binary files a/images/scoreboard/ohkapturmarcy.jpg and /dev/null differ diff --git a/images/scoreboard/ohlattaroberte.jpg b/images/scoreboard/ohlattaroberte.jpg deleted file mode 100644 index d97f9c81b..000000000 Binary files a/images/scoreboard/ohlattaroberte.jpg and /dev/null differ diff --git a/images/scoreboard/ohportmanrob.jpg b/images/scoreboard/ohportmanrob.jpg deleted file mode 100644 index 07783b99d..000000000 Binary files a/images/scoreboard/ohportmanrob.jpg and /dev/null differ diff --git a/images/scoreboard/ohrenaccijim.jpg b/images/scoreboard/ohrenaccijim.jpg deleted file mode 100644 index c7dcf6d4f..000000000 Binary files a/images/scoreboard/ohrenaccijim.jpg and /dev/null differ diff --git a/images/scoreboard/ohstiverssteve.jpg b/images/scoreboard/ohstiverssteve.jpg deleted file mode 100644 index 371108423..000000000 Binary files a/images/scoreboard/ohstiverssteve.jpg and /dev/null differ diff --git a/images/scoreboard/ohtiberipatrickj.jpg b/images/scoreboard/ohtiberipatrickj.jpg deleted file mode 100644 index 3684ab8d7..000000000 Binary files a/images/scoreboard/ohtiberipatrickj.jpg and /dev/null differ diff --git a/images/scoreboard/ohturnermichaelr.jpg b/images/scoreboard/ohturnermichaelr.jpg deleted file mode 100644 index 73dd3c789..000000000 Binary files a/images/scoreboard/ohturnermichaelr.jpg and /dev/null differ diff --git a/images/scoreboard/ohwenstrupbrad.jpg b/images/scoreboard/ohwenstrupbrad.jpg deleted file mode 100644 index 6d53b2f50..000000000 Binary files a/images/scoreboard/ohwenstrupbrad.jpg and /dev/null differ diff --git a/images/scoreboard/okbridenstinejim.jpg b/images/scoreboard/okbridenstinejim.jpg deleted file mode 100644 index a5e295142..000000000 Binary files a/images/scoreboard/okbridenstinejim.jpg and /dev/null differ diff --git a/images/scoreboard/okcoburntom.jpg b/images/scoreboard/okcoburntom.jpg deleted file mode 100644 index 7ffcf4141..000000000 Binary files a/images/scoreboard/okcoburntom.jpg and /dev/null differ diff --git a/images/scoreboard/okcoletom.jpg b/images/scoreboard/okcoletom.jpg deleted file mode 100644 index d9b6bc719..000000000 Binary files a/images/scoreboard/okcoletom.jpg and /dev/null differ diff --git a/images/scoreboard/okinhofejimm.jpg b/images/scoreboard/okinhofejimm.jpg deleted file mode 100644 index 82d5a2953..000000000 Binary files a/images/scoreboard/okinhofejimm.jpg and /dev/null differ diff --git a/images/scoreboard/oklankfordjames.jpg b/images/scoreboard/oklankfordjames.jpg deleted file mode 100644 index 4405d61f0..000000000 Binary files a/images/scoreboard/oklankfordjames.jpg and /dev/null differ diff --git a/images/scoreboard/oklucasfrankd.jpg b/images/scoreboard/oklucasfrankd.jpg deleted file mode 100644 index e71369eaf..000000000 Binary files a/images/scoreboard/oklucasfrankd.jpg and /dev/null differ diff --git a/images/scoreboard/okmullinmarkwayne.jpg b/images/scoreboard/okmullinmarkwayne.jpg deleted file mode 100644 index 2994a0b5b..000000000 Binary files a/images/scoreboard/okmullinmarkwayne.jpg and /dev/null differ diff --git a/images/scoreboard/okrussellsteve.jpg b/images/scoreboard/okrussellsteve.jpg deleted file mode 100755 index a0cb3af0f..000000000 Binary files a/images/scoreboard/okrussellsteve.jpg and /dev/null differ diff --git a/images/scoreboard/orblumenauerearl.jpg b/images/scoreboard/orblumenauerearl.jpg deleted file mode 100644 index 0416c0ca0..000000000 Binary files a/images/scoreboard/orblumenauerearl.jpg and /dev/null differ diff --git a/images/scoreboard/orbonamicisuzanne.jpg b/images/scoreboard/orbonamicisuzanne.jpg deleted file mode 100644 index 586e7c4b8..000000000 Binary files a/images/scoreboard/orbonamicisuzanne.jpg and /dev/null differ diff --git a/images/scoreboard/ordefaziopetera.jpg b/images/scoreboard/ordefaziopetera.jpg deleted file mode 100644 index f0c503ab1..000000000 Binary files a/images/scoreboard/ordefaziopetera.jpg and /dev/null differ diff --git a/images/scoreboard/oreilly.jpg b/images/scoreboard/oreilly.jpg deleted file mode 100644 index c6b69ada0..000000000 Binary files a/images/scoreboard/oreilly.jpg and /dev/null differ diff --git a/images/scoreboard/ormerkleyjeff.jpg b/images/scoreboard/ormerkleyjeff.jpg deleted file mode 100644 index 0ca03e20d..000000000 Binary files a/images/scoreboard/ormerkleyjeff.jpg and /dev/null differ diff --git a/images/scoreboard/orryantim.jpg b/images/scoreboard/orryantim.jpg deleted file mode 100644 index e7c0d28bd..000000000 Binary files a/images/scoreboard/orryantim.jpg and /dev/null differ diff --git a/images/scoreboard/orschraderkurt.jpg b/images/scoreboard/orschraderkurt.jpg deleted file mode 100644 index c4809e16b..000000000 Binary files a/images/scoreboard/orschraderkurt.jpg and /dev/null differ diff --git a/images/scoreboard/orwaldengreg.jpg b/images/scoreboard/orwaldengreg.jpg deleted file mode 100644 index 089df6da1..000000000 Binary files a/images/scoreboard/orwaldengreg.jpg and /dev/null differ diff --git a/images/scoreboard/orwydenron.jpg b/images/scoreboard/orwydenron.jpg deleted file mode 100644 index 37e603d9b..000000000 Binary files a/images/scoreboard/orwydenron.jpg and /dev/null differ diff --git a/images/scoreboard/pabarlettalou.jpg b/images/scoreboard/pabarlettalou.jpg deleted file mode 100644 index ad9036822..000000000 Binary files a/images/scoreboard/pabarlettalou.jpg and /dev/null differ diff --git a/images/scoreboard/paboylebrendan.jpg b/images/scoreboard/paboylebrendan.jpg deleted file mode 100755 index 1eb9a1ced..000000000 Binary files a/images/scoreboard/paboylebrendan.jpg and /dev/null differ diff --git a/images/scoreboard/pabradyrobert.jpg b/images/scoreboard/pabradyrobert.jpg deleted file mode 100644 index 7e5775c46..000000000 Binary files a/images/scoreboard/pabradyrobert.jpg and /dev/null differ diff --git a/images/scoreboard/pacartwrightmatthewa.jpg b/images/scoreboard/pacartwrightmatthewa.jpg deleted file mode 100644 index 885a34975..000000000 Binary files a/images/scoreboard/pacartwrightmatthewa.jpg and /dev/null differ diff --git a/images/scoreboard/pacaseybobjr.jpg b/images/scoreboard/pacaseybobjr.jpg deleted file mode 100644 index b73069dfa..000000000 Binary files a/images/scoreboard/pacaseybobjr.jpg and /dev/null differ diff --git a/images/scoreboard/pacostelloryan.jpg b/images/scoreboard/pacostelloryan.jpg deleted file mode 100755 index 4533beb2b..000000000 Binary files a/images/scoreboard/pacostelloryan.jpg and /dev/null differ diff --git a/images/scoreboard/padentcharlesw.jpg b/images/scoreboard/padentcharlesw.jpg deleted file mode 100644 index 6e768f244..000000000 Binary files a/images/scoreboard/padentcharlesw.jpg and /dev/null differ diff --git a/images/scoreboard/padoylemikef.jpg b/images/scoreboard/padoylemikef.jpg deleted file mode 100644 index 56feaf6c3..000000000 Binary files a/images/scoreboard/padoylemikef.jpg and /dev/null differ diff --git a/images/scoreboard/pafattahchaka.jpg b/images/scoreboard/pafattahchaka.jpg deleted file mode 100644 index 102be480d..000000000 Binary files a/images/scoreboard/pafattahchaka.jpg and /dev/null differ diff --git a/images/scoreboard/pafitzpatrickmichaelg.jpg b/images/scoreboard/pafitzpatrickmichaelg.jpg deleted file mode 100644 index 2a447ac4f..000000000 Binary files a/images/scoreboard/pafitzpatrickmichaelg.jpg and /dev/null differ diff --git a/images/scoreboard/pagerlachjimw.jpg b/images/scoreboard/pagerlachjimw.jpg deleted file mode 100644 index 7c90425ec..000000000 Binary files a/images/scoreboard/pagerlachjimw.jpg and /dev/null differ diff --git a/images/scoreboard/pai.jpg b/images/scoreboard/pai.jpg deleted file mode 100644 index 4b40bf5d8..000000000 Binary files a/images/scoreboard/pai.jpg and /dev/null differ diff --git a/images/scoreboard/pakellymike.jpg b/images/scoreboard/pakellymike.jpg deleted file mode 100644 index 69af88ec4..000000000 Binary files a/images/scoreboard/pakellymike.jpg and /dev/null differ diff --git a/images/scoreboard/pamarinothomasa.jpg b/images/scoreboard/pamarinothomasa.jpg deleted file mode 100644 index bd6f9e5c7..000000000 Binary files a/images/scoreboard/pamarinothomasa.jpg and /dev/null differ diff --git a/images/scoreboard/pameehanpatrick.jpg b/images/scoreboard/pameehanpatrick.jpg deleted file mode 100644 index 38ad6be1d..000000000 Binary files a/images/scoreboard/pameehanpatrick.jpg and /dev/null differ diff --git a/images/scoreboard/pamurphytim.jpg b/images/scoreboard/pamurphytim.jpg deleted file mode 100644 index 13a73798b..000000000 Binary files a/images/scoreboard/pamurphytim.jpg and /dev/null differ diff --git a/images/scoreboard/paperryscottg.jpg b/images/scoreboard/paperryscottg.jpg deleted file mode 100644 index 90f4fb769..000000000 Binary files a/images/scoreboard/paperryscottg.jpg and /dev/null differ diff --git a/images/scoreboard/papittsjosephr.jpg b/images/scoreboard/papittsjosephr.jpg deleted file mode 100644 index a0ea63e85..000000000 Binary files a/images/scoreboard/papittsjosephr.jpg and /dev/null differ diff --git a/images/scoreboard/parothfuskeith.jpg b/images/scoreboard/parothfuskeith.jpg deleted file mode 100644 index ea59fffe1..000000000 Binary files a/images/scoreboard/parothfuskeith.jpg and /dev/null differ diff --git a/images/scoreboard/paschwartzallysony.jpg b/images/scoreboard/paschwartzallysony.jpg deleted file mode 100644 index 057ea2466..000000000 Binary files a/images/scoreboard/paschwartzallysony.jpg and /dev/null differ diff --git a/images/scoreboard/pashusterbillfranklin.jpg b/images/scoreboard/pashusterbillfranklin.jpg deleted file mode 100644 index f0cc094bb..000000000 Binary files a/images/scoreboard/pashusterbillfranklin.jpg and /dev/null differ diff --git a/images/scoreboard/pathompsonglennw.jpg b/images/scoreboard/pathompsonglennw.jpg deleted file mode 100644 index 4c9e2dd67..000000000 Binary files a/images/scoreboard/pathompsonglennw.jpg and /dev/null differ diff --git a/images/scoreboard/patoomeypatrickj.jpg b/images/scoreboard/patoomeypatrickj.jpg deleted file mode 100644 index 4b5cba2a2..000000000 Binary files a/images/scoreboard/patoomeypatrickj.jpg and /dev/null differ diff --git a/images/scoreboard/placeholder.jpg b/images/scoreboard/placeholder.jpg deleted file mode 100755 index f61dc8ec7..000000000 Binary files a/images/scoreboard/placeholder.jpg and /dev/null differ diff --git a/images/scoreboard/prpierluisipedro.jpg b/images/scoreboard/prpierluisipedro.jpg deleted file mode 100755 index 9ed1f5591..000000000 Binary files a/images/scoreboard/prpierluisipedro.jpg and /dev/null differ diff --git a/images/scoreboard/ricicillinedavidn.jpg b/images/scoreboard/ricicillinedavidn.jpg deleted file mode 100644 index 3e65afd8a..000000000 Binary files a/images/scoreboard/ricicillinedavidn.jpg and /dev/null differ diff --git a/images/scoreboard/rilangevinjamesr.jpg b/images/scoreboard/rilangevinjamesr.jpg deleted file mode 100644 index df3970ccf..000000000 Binary files a/images/scoreboard/rilangevinjamesr.jpg and /dev/null differ diff --git a/images/scoreboard/rireedjack.jpg b/images/scoreboard/rireedjack.jpg deleted file mode 100644 index 76d2b9e43..000000000 Binary files a/images/scoreboard/rireedjack.jpg and /dev/null differ diff --git a/images/scoreboard/riwhitehousesheldon.jpg b/images/scoreboard/riwhitehousesheldon.jpg deleted file mode 100644 index cf646ece9..000000000 Binary files a/images/scoreboard/riwhitehousesheldon.jpg and /dev/null differ diff --git a/images/scoreboard/rosenworcel.jpg b/images/scoreboard/rosenworcel.jpg deleted file mode 100644 index ab4b4bc90..000000000 Binary files a/images/scoreboard/rosenworcel.jpg and /dev/null differ diff --git a/images/scoreboard/scclyburnjamese.jpg b/images/scoreboard/scclyburnjamese.jpg deleted file mode 100644 index 5cca3940c..000000000 Binary files a/images/scoreboard/scclyburnjamese.jpg and /dev/null differ diff --git a/images/scoreboard/scduncanjeff.jpg b/images/scoreboard/scduncanjeff.jpg deleted file mode 100644 index b8221b592..000000000 Binary files a/images/scoreboard/scduncanjeff.jpg and /dev/null differ diff --git a/images/scoreboard/scgowdytrey.jpg b/images/scoreboard/scgowdytrey.jpg deleted file mode 100644 index e8ae1276a..000000000 Binary files a/images/scoreboard/scgowdytrey.jpg and /dev/null differ diff --git a/images/scoreboard/scgrahamlindseyo.jpg b/images/scoreboard/scgrahamlindseyo.jpg deleted file mode 100644 index cfaac911e..000000000 Binary files a/images/scoreboard/scgrahamlindseyo.jpg and /dev/null differ diff --git a/images/scoreboard/scmulvaneymick.jpg b/images/scoreboard/scmulvaneymick.jpg deleted file mode 100644 index 54396b6c4..000000000 Binary files a/images/scoreboard/scmulvaneymick.jpg and /dev/null differ diff --git a/images/scoreboard/scricetom.jpg b/images/scoreboard/scricetom.jpg deleted file mode 100644 index bd49d799d..000000000 Binary files a/images/scoreboard/scricetom.jpg and /dev/null differ diff --git a/images/scoreboard/scsanfordmark.jpg b/images/scoreboard/scsanfordmark.jpg deleted file mode 100644 index 820bd00ba..000000000 Binary files a/images/scoreboard/scsanfordmark.jpg and /dev/null differ diff --git a/images/scoreboard/scscotttim.jpg b/images/scoreboard/scscotttim.jpg deleted file mode 100644 index ed82281a1..000000000 Binary files a/images/scoreboard/scscotttim.jpg and /dev/null differ diff --git a/images/scoreboard/sdjohnsontim.jpg b/images/scoreboard/sdjohnsontim.jpg deleted file mode 100644 index 31b4c28e5..000000000 Binary files a/images/scoreboard/sdjohnsontim.jpg and /dev/null differ diff --git a/images/scoreboard/sdnoemkristi.jpg b/images/scoreboard/sdnoemkristi.jpg deleted file mode 100644 index 4879d9c4a..000000000 Binary files a/images/scoreboard/sdnoemkristi.jpg and /dev/null differ diff --git a/images/scoreboard/sdroundsmike.jpg b/images/scoreboard/sdroundsmike.jpg deleted file mode 100755 index 7528cb8c2..000000000 Binary files a/images/scoreboard/sdroundsmike.jpg and /dev/null differ diff --git a/images/scoreboard/sdthunejohnr.jpg b/images/scoreboard/sdthunejohnr.jpg deleted file mode 100644 index b2081c702..000000000 Binary files a/images/scoreboard/sdthunejohnr.jpg and /dev/null differ diff --git a/images/scoreboard/tnalexanderlamar.jpg b/images/scoreboard/tnalexanderlamar.jpg deleted file mode 100644 index 2223744d0..000000000 Binary files a/images/scoreboard/tnalexanderlamar.jpg and /dev/null differ diff --git a/images/scoreboard/tnblackburnmarsha.jpg b/images/scoreboard/tnblackburnmarsha.jpg deleted file mode 100644 index f58a5368a..000000000 Binary files a/images/scoreboard/tnblackburnmarsha.jpg and /dev/null differ diff --git a/images/scoreboard/tnblackdiane.jpg b/images/scoreboard/tnblackdiane.jpg deleted file mode 100644 index 201f7a28b..000000000 Binary files a/images/scoreboard/tnblackdiane.jpg and /dev/null differ diff --git a/images/scoreboard/tncohensteve.jpg b/images/scoreboard/tncohensteve.jpg deleted file mode 100644 index fc62fcf3d..000000000 Binary files a/images/scoreboard/tncohensteve.jpg and /dev/null differ diff --git a/images/scoreboard/tncooperjim.jpg b/images/scoreboard/tncooperjim.jpg deleted file mode 100644 index d4692139a..000000000 Binary files a/images/scoreboard/tncooperjim.jpg and /dev/null differ diff --git a/images/scoreboard/tncorkerbob.jpg b/images/scoreboard/tncorkerbob.jpg deleted file mode 100644 index 555c4d909..000000000 Binary files a/images/scoreboard/tncorkerbob.jpg and /dev/null differ diff --git a/images/scoreboard/tndesjarlaisscott.jpg b/images/scoreboard/tndesjarlaisscott.jpg deleted file mode 100644 index c5a0b8a87..000000000 Binary files a/images/scoreboard/tndesjarlaisscott.jpg and /dev/null differ diff --git a/images/scoreboard/tnduncanjrjohn.jpg b/images/scoreboard/tnduncanjrjohn.jpg deleted file mode 100644 index 4d8a5ce1e..000000000 Binary files a/images/scoreboard/tnduncanjrjohn.jpg and /dev/null differ diff --git a/images/scoreboard/tnfincherstephenlee.jpg b/images/scoreboard/tnfincherstephenlee.jpg deleted file mode 100644 index bdd6a11d8..000000000 Binary files a/images/scoreboard/tnfincherstephenlee.jpg and /dev/null differ diff --git a/images/scoreboard/tnfleischmannchuck.jpg b/images/scoreboard/tnfleischmannchuck.jpg deleted file mode 100644 index c2bd69c3a..000000000 Binary files a/images/scoreboard/tnfleischmannchuck.jpg and /dev/null differ diff --git a/images/scoreboard/tnroephilip.jpg b/images/scoreboard/tnroephilip.jpg deleted file mode 100644 index 05a686713..000000000 Binary files a/images/scoreboard/tnroephilip.jpg and /dev/null differ diff --git a/images/scoreboard/txbabinbrian.jpg b/images/scoreboard/txbabinbrian.jpg deleted file mode 100755 index 09b3e1a1d..000000000 Binary files a/images/scoreboard/txbabinbrian.jpg and /dev/null differ diff --git a/images/scoreboard/txbartonjoe.jpg b/images/scoreboard/txbartonjoe.jpg deleted file mode 100644 index 871239307..000000000 Binary files a/images/scoreboard/txbartonjoe.jpg and /dev/null differ diff --git a/images/scoreboard/txbradykevin.jpg b/images/scoreboard/txbradykevin.jpg deleted file mode 100644 index 1d3f3a10f..000000000 Binary files a/images/scoreboard/txbradykevin.jpg and /dev/null differ diff --git a/images/scoreboard/txburgessmichaelc.jpg b/images/scoreboard/txburgessmichaelc.jpg deleted file mode 100644 index 32333502e..000000000 Binary files a/images/scoreboard/txburgessmichaelc.jpg and /dev/null differ diff --git a/images/scoreboard/txcarterjohnr.jpg b/images/scoreboard/txcarterjohnr.jpg deleted file mode 100644 index 6adaa2ec2..000000000 Binary files a/images/scoreboard/txcarterjohnr.jpg and /dev/null differ diff --git a/images/scoreboard/txcastrojoaquin.jpg b/images/scoreboard/txcastrojoaquin.jpg deleted file mode 100644 index d33900c08..000000000 Binary files a/images/scoreboard/txcastrojoaquin.jpg and /dev/null differ diff --git a/images/scoreboard/txconawaymike.jpg b/images/scoreboard/txconawaymike.jpg deleted file mode 100644 index 4e799db80..000000000 Binary files a/images/scoreboard/txconawaymike.jpg and /dev/null differ diff --git a/images/scoreboard/txcornynjohn.jpg b/images/scoreboard/txcornynjohn.jpg deleted file mode 100644 index 28a09fdc9..000000000 Binary files a/images/scoreboard/txcornynjohn.jpg and /dev/null differ diff --git a/images/scoreboard/txcruzted.jpg b/images/scoreboard/txcruzted.jpg deleted file mode 100644 index 34162c448..000000000 Binary files a/images/scoreboard/txcruzted.jpg and /dev/null differ diff --git a/images/scoreboard/txcuellarhenry.jpg b/images/scoreboard/txcuellarhenry.jpg deleted file mode 100644 index 83b9724ed..000000000 Binary files a/images/scoreboard/txcuellarhenry.jpg and /dev/null differ diff --git a/images/scoreboard/txculbersonjohnabney.jpg b/images/scoreboard/txculbersonjohnabney.jpg deleted file mode 100644 index e667a4d36..000000000 Binary files a/images/scoreboard/txculbersonjohnabney.jpg and /dev/null differ diff --git a/images/scoreboard/txdoggettlloyd.jpg b/images/scoreboard/txdoggettlloyd.jpg deleted file mode 100644 index 2ca50544e..000000000 Binary files a/images/scoreboard/txdoggettlloyd.jpg and /dev/null differ diff --git a/images/scoreboard/txfarentholdrblake.jpg b/images/scoreboard/txfarentholdrblake.jpg deleted file mode 100644 index 17f79dcc8..000000000 Binary files a/images/scoreboard/txfarentholdrblake.jpg and /dev/null differ diff --git a/images/scoreboard/txfloresbill.jpg b/images/scoreboard/txfloresbill.jpg deleted file mode 100644 index 3f24627da..000000000 Binary files a/images/scoreboard/txfloresbill.jpg and /dev/null differ diff --git a/images/scoreboard/txgallegopetep.jpg b/images/scoreboard/txgallegopetep.jpg deleted file mode 100644 index e6041d1ac..000000000 Binary files a/images/scoreboard/txgallegopetep.jpg and /dev/null differ diff --git a/images/scoreboard/txgohmertlouie.jpg b/images/scoreboard/txgohmertlouie.jpg deleted file mode 100644 index 71b1b6529..000000000 Binary files a/images/scoreboard/txgohmertlouie.jpg and /dev/null differ diff --git a/images/scoreboard/txgrangerkay.jpg b/images/scoreboard/txgrangerkay.jpg deleted file mode 100644 index 6a9e71d9f..000000000 Binary files a/images/scoreboard/txgrangerkay.jpg and /dev/null differ diff --git a/images/scoreboard/txgreenal.jpg b/images/scoreboard/txgreenal.jpg deleted file mode 100644 index 0014cc42e..000000000 Binary files a/images/scoreboard/txgreenal.jpg and /dev/null differ diff --git a/images/scoreboard/txgreengene.jpg b/images/scoreboard/txgreengene.jpg deleted file mode 100644 index d9aaf7e3a..000000000 Binary files a/images/scoreboard/txgreengene.jpg and /dev/null differ diff --git a/images/scoreboard/txhallralphm.jpg b/images/scoreboard/txhallralphm.jpg deleted file mode 100644 index 09c0bdd0b..000000000 Binary files a/images/scoreboard/txhallralphm.jpg and /dev/null differ diff --git a/images/scoreboard/txhensarlingjeb.jpg b/images/scoreboard/txhensarlingjeb.jpg deleted file mode 100644 index c659cbae2..000000000 Binary files a/images/scoreboard/txhensarlingjeb.jpg and /dev/null differ diff --git a/images/scoreboard/txhinojosaruben.jpg b/images/scoreboard/txhinojosaruben.jpg deleted file mode 100644 index 5ba3529e0..000000000 Binary files a/images/scoreboard/txhinojosaruben.jpg and /dev/null differ diff --git a/images/scoreboard/txhurdwill.jpg b/images/scoreboard/txhurdwill.jpg deleted file mode 100755 index 510a37c19..000000000 Binary files a/images/scoreboard/txhurdwill.jpg and /dev/null differ diff --git a/images/scoreboard/txjacksonleesheila.jpg b/images/scoreboard/txjacksonleesheila.jpg deleted file mode 100644 index fc9d93ad3..000000000 Binary files a/images/scoreboard/txjacksonleesheila.jpg and /dev/null differ diff --git a/images/scoreboard/txjohnsoneddiebernice.jpg b/images/scoreboard/txjohnsoneddiebernice.jpg deleted file mode 100644 index bd8cb94dc..000000000 Binary files a/images/scoreboard/txjohnsoneddiebernice.jpg and /dev/null differ diff --git a/images/scoreboard/txjohnsonsam.jpg b/images/scoreboard/txjohnsonsam.jpg deleted file mode 100644 index c6438e34c..000000000 Binary files a/images/scoreboard/txjohnsonsam.jpg and /dev/null differ diff --git a/images/scoreboard/txmarchantkenny.jpg b/images/scoreboard/txmarchantkenny.jpg deleted file mode 100644 index ab1ee67e3..000000000 Binary files a/images/scoreboard/txmarchantkenny.jpg and /dev/null differ diff --git a/images/scoreboard/txmccaulmichaelt.jpg b/images/scoreboard/txmccaulmichaelt.jpg deleted file mode 100644 index 0e53dc681..000000000 Binary files a/images/scoreboard/txmccaulmichaelt.jpg and /dev/null differ diff --git a/images/scoreboard/txneugebauerrandy.jpg b/images/scoreboard/txneugebauerrandy.jpg deleted file mode 100644 index 6b8ceccb1..000000000 Binary files a/images/scoreboard/txneugebauerrandy.jpg and /dev/null differ diff --git a/images/scoreboard/txolsonpete.jpg b/images/scoreboard/txolsonpete.jpg deleted file mode 100644 index 9e9fb757c..000000000 Binary files a/images/scoreboard/txolsonpete.jpg and /dev/null differ diff --git a/images/scoreboard/txorourkebeto.jpg b/images/scoreboard/txorourkebeto.jpg deleted file mode 100644 index a9a778dcb..000000000 Binary files a/images/scoreboard/txorourkebeto.jpg and /dev/null differ diff --git a/images/scoreboard/txpoeted.jpg b/images/scoreboard/txpoeted.jpg deleted file mode 100644 index dfe434f5f..000000000 Binary files a/images/scoreboard/txpoeted.jpg and /dev/null differ diff --git a/images/scoreboard/txratcliffejohn.jpg b/images/scoreboard/txratcliffejohn.jpg deleted file mode 100755 index f56f1cd2f..000000000 Binary files a/images/scoreboard/txratcliffejohn.jpg and /dev/null differ diff --git a/images/scoreboard/txsessionspete.jpg b/images/scoreboard/txsessionspete.jpg deleted file mode 100644 index 335f0242c..000000000 Binary files a/images/scoreboard/txsessionspete.jpg and /dev/null differ diff --git a/images/scoreboard/txsmithlamar.jpg b/images/scoreboard/txsmithlamar.jpg deleted file mode 100644 index af63158fa..000000000 Binary files a/images/scoreboard/txsmithlamar.jpg and /dev/null differ diff --git a/images/scoreboard/txstockmansteve.jpg b/images/scoreboard/txstockmansteve.jpg deleted file mode 100644 index 08dbf7686..000000000 Binary files a/images/scoreboard/txstockmansteve.jpg and /dev/null differ diff --git a/images/scoreboard/txthornberrymac.jpg b/images/scoreboard/txthornberrymac.jpg deleted file mode 100644 index 8d3de8160..000000000 Binary files a/images/scoreboard/txthornberrymac.jpg and /dev/null differ diff --git a/images/scoreboard/txveaseymarc.jpg b/images/scoreboard/txveaseymarc.jpg deleted file mode 100644 index 24ef23995..000000000 Binary files a/images/scoreboard/txveaseymarc.jpg and /dev/null differ diff --git a/images/scoreboard/txvelafilemon.jpg b/images/scoreboard/txvelafilemon.jpg deleted file mode 100644 index a7734e6db..000000000 Binary files a/images/scoreboard/txvelafilemon.jpg and /dev/null differ diff --git a/images/scoreboard/txweberrandy.jpg b/images/scoreboard/txweberrandy.jpg deleted file mode 100644 index 5b1e744dd..000000000 Binary files a/images/scoreboard/txweberrandy.jpg and /dev/null differ diff --git a/images/scoreboard/txwilliamsroger.jpg b/images/scoreboard/txwilliamsroger.jpg deleted file mode 100644 index a1712e675..000000000 Binary files a/images/scoreboard/txwilliamsroger.jpg and /dev/null differ diff --git a/images/scoreboard/utbishoprob.jpg b/images/scoreboard/utbishoprob.jpg deleted file mode 100644 index 05078f68e..000000000 Binary files a/images/scoreboard/utbishoprob.jpg and /dev/null differ diff --git a/images/scoreboard/utchaffetzjason.jpg b/images/scoreboard/utchaffetzjason.jpg deleted file mode 100644 index a19bbbe44..000000000 Binary files a/images/scoreboard/utchaffetzjason.jpg and /dev/null differ diff --git a/images/scoreboard/uthatchorring.jpg b/images/scoreboard/uthatchorring.jpg deleted file mode 100644 index 58ed4b0d2..000000000 Binary files a/images/scoreboard/uthatchorring.jpg and /dev/null differ diff --git a/images/scoreboard/utleemike.jpg b/images/scoreboard/utleemike.jpg deleted file mode 100644 index 93579a877..000000000 Binary files a/images/scoreboard/utleemike.jpg and /dev/null differ diff --git a/images/scoreboard/utlovemia.jpg b/images/scoreboard/utlovemia.jpg deleted file mode 100755 index 572a1dcef..000000000 Binary files a/images/scoreboard/utlovemia.jpg and /dev/null differ diff --git a/images/scoreboard/utmathesonjim.jpg b/images/scoreboard/utmathesonjim.jpg deleted file mode 100644 index 78dca9eaa..000000000 Binary files a/images/scoreboard/utmathesonjim.jpg and /dev/null differ diff --git a/images/scoreboard/utstewartchris.jpg b/images/scoreboard/utstewartchris.jpg deleted file mode 100644 index a9d90d544..000000000 Binary files a/images/scoreboard/utstewartchris.jpg and /dev/null differ diff --git a/images/scoreboard/vabeyerdon.jpeg.jpg b/images/scoreboard/vabeyerdon.jpeg.jpg deleted file mode 100755 index c083b7b3d..000000000 Binary files a/images/scoreboard/vabeyerdon.jpeg.jpg and /dev/null differ diff --git a/images/scoreboard/vabratdavid.jpg b/images/scoreboard/vabratdavid.jpg deleted file mode 100755 index 6d9b10ee6..000000000 Binary files a/images/scoreboard/vabratdavid.jpg and /dev/null differ diff --git a/images/scoreboard/vacantorerici.jpg b/images/scoreboard/vacantorerici.jpg deleted file mode 100644 index 3c07faeae..000000000 Binary files a/images/scoreboard/vacantorerici.jpg and /dev/null differ diff --git a/images/scoreboard/vacomstockbarbara.jpg b/images/scoreboard/vacomstockbarbara.jpg deleted file mode 100755 index 0d6370cd5..000000000 Binary files a/images/scoreboard/vacomstockbarbara.jpg and /dev/null differ diff --git a/images/scoreboard/vaconnollygeralde.jpg b/images/scoreboard/vaconnollygeralde.jpg deleted file mode 100644 index 163c89225..000000000 Binary files a/images/scoreboard/vaconnollygeralde.jpg and /dev/null differ diff --git a/images/scoreboard/vaforbesjrandy.jpg b/images/scoreboard/vaforbesjrandy.jpg deleted file mode 100644 index 2b01a488c..000000000 Binary files a/images/scoreboard/vaforbesjrandy.jpg and /dev/null differ diff --git a/images/scoreboard/vagoodlatterw.jpg b/images/scoreboard/vagoodlatterw.jpg deleted file mode 100644 index 7ecfe03ba..000000000 Binary files a/images/scoreboard/vagoodlatterw.jpg and /dev/null differ diff --git a/images/scoreboard/vagriffithhmorgan.jpg b/images/scoreboard/vagriffithhmorgan.jpg deleted file mode 100644 index b7c3610e5..000000000 Binary files a/images/scoreboard/vagriffithhmorgan.jpg and /dev/null differ diff --git a/images/scoreboard/vahurtrobert.jpg b/images/scoreboard/vahurtrobert.jpg deleted file mode 100644 index 840ae27dc..000000000 Binary files a/images/scoreboard/vahurtrobert.jpg and /dev/null differ diff --git a/images/scoreboard/vakainetimothym.jpg b/images/scoreboard/vakainetimothym.jpg deleted file mode 100644 index f245c82b0..000000000 Binary files a/images/scoreboard/vakainetimothym.jpg and /dev/null differ diff --git a/images/scoreboard/vamoranjamespjr.jpg b/images/scoreboard/vamoranjamespjr.jpg deleted file mode 100644 index ba0ec0f32..000000000 Binary files a/images/scoreboard/vamoranjamespjr.jpg and /dev/null differ diff --git a/images/scoreboard/varigellescott.jpg b/images/scoreboard/varigellescott.jpg deleted file mode 100644 index 590d1701a..000000000 Binary files a/images/scoreboard/varigellescott.jpg and /dev/null differ diff --git a/images/scoreboard/vascottrobert.jpg b/images/scoreboard/vascottrobert.jpg deleted file mode 100644 index b6c360409..000000000 Binary files a/images/scoreboard/vascottrobert.jpg and /dev/null differ diff --git a/images/scoreboard/vawarnermarkr.jpg b/images/scoreboard/vawarnermarkr.jpg deleted file mode 100644 index c3fd2069b..000000000 Binary files a/images/scoreboard/vawarnermarkr.jpg and /dev/null differ diff --git a/images/scoreboard/vawittmanrobertj.jpg b/images/scoreboard/vawittmanrobertj.jpg deleted file mode 100644 index b5db09276..000000000 Binary files a/images/scoreboard/vawittmanrobertj.jpg and /dev/null differ diff --git a/images/scoreboard/vawolffrankr.jpg b/images/scoreboard/vawolffrankr.jpg deleted file mode 100644 index 214d3cf6c..000000000 Binary files a/images/scoreboard/vawolffrankr.jpg and /dev/null differ diff --git a/images/scoreboard/viplaskettstacey.jpg b/images/scoreboard/viplaskettstacey.jpg deleted file mode 100755 index 62620ed86..000000000 Binary files a/images/scoreboard/viplaskettstacey.jpg and /dev/null differ diff --git a/images/scoreboard/vtleahypatrickj.jpg b/images/scoreboard/vtleahypatrickj.jpg deleted file mode 100644 index d3286900d..000000000 Binary files a/images/scoreboard/vtleahypatrickj.jpg and /dev/null differ diff --git a/images/scoreboard/vtsandersbernard.jpg b/images/scoreboard/vtsandersbernard.jpg deleted file mode 100644 index 76a302b59..000000000 Binary files a/images/scoreboard/vtsandersbernard.jpg and /dev/null differ diff --git a/images/scoreboard/vtwelchpeter.jpg b/images/scoreboard/vtwelchpeter.jpg deleted file mode 100644 index a6d40dde7..000000000 Binary files a/images/scoreboard/vtwelchpeter.jpg and /dev/null differ diff --git a/images/scoreboard/wacantwellmaria.jpg b/images/scoreboard/wacantwellmaria.jpg deleted file mode 100644 index 1ccdcbe29..000000000 Binary files a/images/scoreboard/wacantwellmaria.jpg and /dev/null differ diff --git a/images/scoreboard/wadelbenesuzan.jpg b/images/scoreboard/wadelbenesuzan.jpg deleted file mode 100644 index 9a5504872..000000000 Binary files a/images/scoreboard/wadelbenesuzan.jpg and /dev/null differ diff --git a/images/scoreboard/wahastingsdoc.jpg b/images/scoreboard/wahastingsdoc.jpg deleted file mode 100644 index 513e62a86..000000000 Binary files a/images/scoreboard/wahastingsdoc.jpg and /dev/null differ diff --git a/images/scoreboard/waheckdenny.jpg b/images/scoreboard/waheckdenny.jpg deleted file mode 100644 index 916ad69ed..000000000 Binary files a/images/scoreboard/waheckdenny.jpg and /dev/null differ diff --git a/images/scoreboard/waherrerajaime.jpg b/images/scoreboard/waherrerajaime.jpg deleted file mode 100644 index 783e74193..000000000 Binary files a/images/scoreboard/waherrerajaime.jpg and /dev/null differ diff --git a/images/scoreboard/wakilmerderek.jpg b/images/scoreboard/wakilmerderek.jpg deleted file mode 100644 index 18768b5fb..000000000 Binary files a/images/scoreboard/wakilmerderek.jpg and /dev/null differ diff --git a/images/scoreboard/walarsenrick.jpg b/images/scoreboard/walarsenrick.jpg deleted file mode 100644 index 768498384..000000000 Binary files a/images/scoreboard/walarsenrick.jpg and /dev/null differ diff --git a/images/scoreboard/wamcdermottjim.jpg b/images/scoreboard/wamcdermottjim.jpg deleted file mode 100644 index 0796efa61..000000000 Binary files a/images/scoreboard/wamcdermottjim.jpg and /dev/null differ diff --git a/images/scoreboard/wamurraypatty.jpg b/images/scoreboard/wamurraypatty.jpg deleted file mode 100644 index 792bc9271..000000000 Binary files a/images/scoreboard/wamurraypatty.jpg and /dev/null differ diff --git a/images/scoreboard/wanewhousedan.jpg b/images/scoreboard/wanewhousedan.jpg deleted file mode 100755 index 0f87bb76c..000000000 Binary files a/images/scoreboard/wanewhousedan.jpg and /dev/null differ diff --git a/images/scoreboard/wareichertdave.jpg b/images/scoreboard/wareichertdave.jpg deleted file mode 100644 index 00329a78b..000000000 Binary files a/images/scoreboard/wareichertdave.jpg and /dev/null differ diff --git a/images/scoreboard/warodgerscathymcmorris.jpg b/images/scoreboard/warodgerscathymcmorris.jpg deleted file mode 100644 index 4329a4745..000000000 Binary files a/images/scoreboard/warodgerscathymcmorris.jpg and /dev/null differ diff --git a/images/scoreboard/wasmithadam.jpg b/images/scoreboard/wasmithadam.jpg deleted file mode 100644 index 12042ca24..000000000 Binary files a/images/scoreboard/wasmithadam.jpg and /dev/null differ diff --git a/images/scoreboard/wheeler.jpg b/images/scoreboard/wheeler.jpg deleted file mode 100644 index b8c5acf48..000000000 Binary files a/images/scoreboard/wheeler.jpg and /dev/null differ diff --git a/images/scoreboard/wibaldwintammy.jpg b/images/scoreboard/wibaldwintammy.jpg deleted file mode 100644 index aa055eecf..000000000 Binary files a/images/scoreboard/wibaldwintammy.jpg and /dev/null differ diff --git a/images/scoreboard/widuffysean.jpg b/images/scoreboard/widuffysean.jpg deleted file mode 100644 index fb7ac3ceb..000000000 Binary files a/images/scoreboard/widuffysean.jpg and /dev/null differ diff --git a/images/scoreboard/wigrothmanglenn.jpg b/images/scoreboard/wigrothmanglenn.jpg deleted file mode 100755 index 95b5bb8e0..000000000 Binary files a/images/scoreboard/wigrothmanglenn.jpg and /dev/null differ diff --git a/images/scoreboard/wijohnsonron.jpg b/images/scoreboard/wijohnsonron.jpg deleted file mode 100644 index f71a2bebc..000000000 Binary files a/images/scoreboard/wijohnsonron.jpg and /dev/null differ diff --git a/images/scoreboard/wikinderron.jpg b/images/scoreboard/wikinderron.jpg deleted file mode 100644 index 93297ab5f..000000000 Binary files a/images/scoreboard/wikinderron.jpg and /dev/null differ diff --git a/images/scoreboard/wimooregwen.jpg b/images/scoreboard/wimooregwen.jpg deleted file mode 100644 index 5a5e48d78..000000000 Binary files a/images/scoreboard/wimooregwen.jpg and /dev/null differ diff --git a/images/scoreboard/wipetrithomase.jpg b/images/scoreboard/wipetrithomase.jpg deleted file mode 100644 index ce05af644..000000000 Binary files a/images/scoreboard/wipetrithomase.jpg and /dev/null differ diff --git a/images/scoreboard/wipocanmark.jpg b/images/scoreboard/wipocanmark.jpg deleted file mode 100644 index 28314eec5..000000000 Binary files a/images/scoreboard/wipocanmark.jpg and /dev/null differ diff --git a/images/scoreboard/wiribblereidj.jpg b/images/scoreboard/wiribblereidj.jpg deleted file mode 100644 index 414e1b7eb..000000000 Binary files a/images/scoreboard/wiribblereidj.jpg and /dev/null differ diff --git a/images/scoreboard/wiryanpaul.jpg b/images/scoreboard/wiryanpaul.jpg deleted file mode 100644 index cc5fb91ac..000000000 Binary files a/images/scoreboard/wiryanpaul.jpg and /dev/null differ diff --git a/images/scoreboard/wisensenbrennerfjamesjr.jpg b/images/scoreboard/wisensenbrennerfjamesjr.jpg deleted file mode 100644 index edaa45c05..000000000 Binary files a/images/scoreboard/wisensenbrennerfjamesjr.jpg and /dev/null differ diff --git a/images/scoreboard/wvcapitoshelley.jpg b/images/scoreboard/wvcapitoshelley.jpg deleted file mode 100755 index 56b901fd9..000000000 Binary files a/images/scoreboard/wvcapitoshelley.jpg and /dev/null differ diff --git a/images/scoreboard/wvcapitoshelleymoore.jpg b/images/scoreboard/wvcapitoshelleymoore.jpg deleted file mode 100644 index 356a500c0..000000000 Binary files a/images/scoreboard/wvcapitoshelleymoore.jpg and /dev/null differ diff --git a/images/scoreboard/wvjenkinsevan.jpg b/images/scoreboard/wvjenkinsevan.jpg deleted file mode 100755 index c1b7ee6e7..000000000 Binary files a/images/scoreboard/wvjenkinsevan.jpg and /dev/null differ diff --git a/images/scoreboard/wvmanchinjoeiii.jpg b/images/scoreboard/wvmanchinjoeiii.jpg deleted file mode 100644 index 22c1d381f..000000000 Binary files a/images/scoreboard/wvmanchinjoeiii.jpg and /dev/null differ diff --git a/images/scoreboard/wvmckinleydavidb.jpg b/images/scoreboard/wvmckinleydavidb.jpg deleted file mode 100644 index 2689af8c6..000000000 Binary files a/images/scoreboard/wvmckinleydavidb.jpg and /dev/null differ diff --git a/images/scoreboard/wvmooneyalex.jpg b/images/scoreboard/wvmooneyalex.jpg deleted file mode 100755 index 905137222..000000000 Binary files a/images/scoreboard/wvmooneyalex.jpg and /dev/null differ diff --git a/images/scoreboard/wvrahallnickjii.jpg b/images/scoreboard/wvrahallnickjii.jpg deleted file mode 100644 index e5ccd0255..000000000 Binary files a/images/scoreboard/wvrahallnickjii.jpg and /dev/null differ diff --git a/images/scoreboard/wvrockefellerjohndiv.jpg b/images/scoreboard/wvrockefellerjohndiv.jpg deleted file mode 100644 index a22e70470..000000000 Binary files a/images/scoreboard/wvrockefellerjohndiv.jpg and /dev/null differ diff --git a/images/scoreboard/wybarrassojohn.jpg b/images/scoreboard/wybarrassojohn.jpg deleted file mode 100644 index 5754161d6..000000000 Binary files a/images/scoreboard/wybarrassojohn.jpg and /dev/null differ diff --git a/images/scoreboard/wyenzimichaelb.jpg b/images/scoreboard/wyenzimichaelb.jpg deleted file mode 100644 index bec54386e..000000000 Binary files a/images/scoreboard/wyenzimichaelb.jpg and /dev/null differ diff --git a/images/scoreboard/wylummiscynthiam.jpg b/images/scoreboard/wylummiscynthiam.jpg deleted file mode 100644 index b38420116..000000000 Binary files a/images/scoreboard/wylummiscynthiam.jpg and /dev/null differ diff --git a/images/share/facebook.png b/images/share/facebook.png deleted file mode 100755 index 9ae6acc4a..000000000 Binary files a/images/share/facebook.png and /dev/null differ diff --git a/images/share/fb_white.png b/images/share/fb_white.png deleted file mode 100755 index c00561f19..000000000 Binary files a/images/share/fb_white.png and /dev/null differ diff --git a/images/share/google-plus.png b/images/share/google-plus.png deleted file mode 100755 index e4ac70348..000000000 Binary files a/images/share/google-plus.png and /dev/null differ diff --git a/images/share/pressthis.png b/images/share/pressthis.png deleted file mode 100644 index 0f5b0bd70..000000000 Binary files a/images/share/pressthis.png and /dev/null differ diff --git a/images/share/reddit.png b/images/share/reddit.png deleted file mode 100755 index 8d0cf7905..000000000 Binary files a/images/share/reddit.png and /dev/null differ diff --git a/images/share/tumblr.png b/images/share/tumblr.png deleted file mode 100755 index b1e29df6a..000000000 Binary files a/images/share/tumblr.png and /dev/null differ diff --git a/images/share/tw_white.png b/images/share/tw_white.png deleted file mode 100755 index e7d13897f..000000000 Binary files a/images/share/tw_white.png and /dev/null differ diff --git a/images/share/twitter-blue.png b/images/share/twitter-blue.png deleted file mode 100644 index 235d2dd5a..000000000 Binary files a/images/share/twitter-blue.png and /dev/null differ diff --git a/images/share/twitter.png b/images/share/twitter.png deleted file mode 100755 index b14f1d754..000000000 Binary files a/images/share/twitter.png and /dev/null differ diff --git a/images/share_images/anigif.gif b/images/share_images/anigif.gif deleted file mode 100755 index b9f38e536..000000000 Binary files a/images/share_images/anigif.gif and /dev/null differ diff --git a/images/share_images/battle1.png b/images/share_images/battle1.png deleted file mode 100755 index d50337e53..000000000 Binary files a/images/share_images/battle1.png and /dev/null differ diff --git a/images/share_images/battle2.png b/images/share_images/battle2.png deleted file mode 100755 index 7480bfc01..000000000 Binary files a/images/share_images/battle2.png and /dev/null differ diff --git a/images/share_images/battle3.png b/images/share_images/battle3.png deleted file mode 100755 index af02b5239..000000000 Binary files a/images/share_images/battle3.png and /dev/null differ diff --git a/images/share_images/map.png b/images/share_images/map.png deleted file mode 100644 index 96bff9553..000000000 Binary files a/images/share_images/map.png and /dev/null differ diff --git a/images/share_images/protest.png b/images/share_images/protest.png deleted file mode 100644 index 99230e364..000000000 Binary files a/images/share_images/protest.png and /dev/null differ diff --git a/images/share_images/urgent.png b/images/share_images/urgent.png deleted file mode 100644 index 86bc7229e..000000000 Binary files a/images/share_images/urgent.png and /dev/null differ diff --git a/images/share_images/van.png b/images/share_images/van.png deleted file mode 100644 index 0a4569866..000000000 Binary files a/images/share_images/van.png and /dev/null differ diff --git a/images/share_images/vansquare.png b/images/share_images/vansquare.png deleted file mode 100644 index 4942f4f2f..000000000 Binary files a/images/share_images/vansquare.png and /dev/null differ diff --git a/images/submit-button.png b/images/submit-button.png deleted file mode 100755 index fa8a6aa23..000000000 Binary files a/images/submit-button.png and /dev/null differ diff --git a/images/team-cable.png b/images/team-cable.png deleted file mode 100755 index bb409b346..000000000 Binary files a/images/team-cable.png and /dev/null differ diff --git a/images/team-cable/att.png b/images/team-cable/att.png deleted file mode 100755 index b1e9658c7..000000000 Binary files a/images/team-cable/att.png and /dev/null differ diff --git a/images/team-cable/charter.png b/images/team-cable/charter.png deleted file mode 100755 index d67a2833f..000000000 Binary files a/images/team-cable/charter.png and /dev/null differ diff --git a/images/team-cable/comcast.png b/images/team-cable/comcast.png deleted file mode 100755 index 30f681e79..000000000 Binary files a/images/team-cable/comcast.png and /dev/null differ diff --git a/images/team-cable/cox.png b/images/team-cable/cox.png deleted file mode 100755 index cc1dcf83f..000000000 Binary files a/images/team-cable/cox.png and /dev/null differ diff --git a/images/team-cable/ncta.png b/images/team-cable/ncta.png deleted file mode 100755 index 31d57e8ab..000000000 Binary files a/images/team-cable/ncta.png and /dev/null differ diff --git a/images/team-cable/time-warner.png b/images/team-cable/time-warner.png deleted file mode 100755 index 8e139856b..000000000 Binary files a/images/team-cable/time-warner.png and /dev/null differ diff --git a/images/team-cable/verizon.png b/images/team-cable/verizon.png deleted file mode 100755 index e2f856ee3..000000000 Binary files a/images/team-cable/verizon.png and /dev/null differ diff --git a/images/team-internet/ACLU.png b/images/team-internet/ACLU.png deleted file mode 100755 index 4109a2cee..000000000 Binary files a/images/team-internet/ACLU.png and /dev/null differ diff --git a/images/team-internet/DFA.png b/images/team-internet/DFA.png deleted file mode 100644 index 76b2f72d1..000000000 Binary files a/images/team-internet/DFA.png and /dev/null differ diff --git a/images/team-internet/WGAE.png b/images/team-internet/WGAE.png deleted file mode 100755 index e63b83ea3..000000000 Binary files a/images/team-internet/WGAE.png and /dev/null differ diff --git a/images/team-internet/WGAW.png b/images/team-internet/WGAW.png deleted file mode 100755 index 19b9875f3..000000000 Binary files a/images/team-internet/WGAW.png and /dev/null differ diff --git a/images/team-internet/access.png b/images/team-internet/access.png deleted file mode 100644 index 9d6315c28..000000000 Binary files a/images/team-internet/access.png and /dev/null differ diff --git a/images/team-internet/avg.png b/images/team-internet/avg.png deleted file mode 100644 index 4c636e933..000000000 Binary files a/images/team-internet/avg.png and /dev/null differ diff --git a/images/team-internet/bittorrent.png b/images/team-internet/bittorrent.png deleted file mode 100755 index ff46e6b73..000000000 Binary files a/images/team-internet/bittorrent.png and /dev/null differ diff --git a/images/team-internet/bluehost.png b/images/team-internet/bluehost.png deleted file mode 100644 index 2549c24e2..000000000 Binary files a/images/team-internet/bluehost.png and /dev/null differ diff --git a/images/team-internet/ccia.png b/images/team-internet/ccia.png deleted file mode 100644 index 5ccaef6ce..000000000 Binary files a/images/team-internet/ccia.png and /dev/null differ diff --git a/images/team-internet/centerformediajustice.png b/images/team-internet/centerformediajustice.png deleted file mode 100644 index c305f11b5..000000000 Binary files a/images/team-internet/centerformediajustice.png and /dev/null differ diff --git a/images/team-internet/cheapair.png b/images/team-internet/cheapair.png deleted file mode 100644 index 1be4a96f2..000000000 Binary files a/images/team-internet/cheapair.png and /dev/null differ diff --git a/images/team-internet/cheezburger.png b/images/team-internet/cheezburger.png deleted file mode 100755 index 3519c3b2a..000000000 Binary files a/images/team-internet/cheezburger.png and /dev/null differ diff --git a/images/team-internet/chess.png b/images/team-internet/chess.png deleted file mode 100644 index 7941e949a..000000000 Binary files a/images/team-internet/chess.png and /dev/null differ diff --git a/images/team-internet/chromastudios.png b/images/team-internet/chromastudios.png deleted file mode 100644 index 6723aa73a..000000000 Binary files a/images/team-internet/chromastudios.png and /dev/null differ diff --git a/images/team-internet/citysearch.png b/images/team-internet/citysearch.png deleted file mode 100644 index 56694fc96..000000000 Binary files a/images/team-internet/citysearch.png and /dev/null differ diff --git a/images/team-internet/colorofchange.png b/images/team-internet/colorofchange.png deleted file mode 100644 index 5365f9a0a..000000000 Binary files a/images/team-internet/colorofchange.png and /dev/null differ diff --git a/images/team-internet/commoncause.png b/images/team-internet/commoncause.png deleted file mode 100644 index 394d41d66..000000000 Binary files a/images/team-internet/commoncause.png and /dev/null differ diff --git a/images/team-internet/consumersunion.png b/images/team-internet/consumersunion.png deleted file mode 100644 index ffea30b66..000000000 Binary files a/images/team-internet/consumersunion.png and /dev/null differ diff --git a/images/team-internet/credoaction.png b/images/team-internet/credoaction.png deleted file mode 100755 index a3dd04d85..000000000 Binary files a/images/team-internet/credoaction.png and /dev/null differ diff --git a/images/team-internet/dailydot.png b/images/team-internet/dailydot.png deleted file mode 100644 index f13dc0ffe..000000000 Binary files a/images/team-internet/dailydot.png and /dev/null differ diff --git a/images/team-internet/dailykos.png b/images/team-internet/dailykos.png deleted file mode 100644 index 83f4764a4..000000000 Binary files a/images/team-internet/dailykos.png and /dev/null differ diff --git a/images/team-internet/democrats.png b/images/team-internet/democrats.png deleted file mode 100644 index 646cc4d93..000000000 Binary files a/images/team-internet/democrats.png and /dev/null differ diff --git a/images/team-internet/digg.png b/images/team-internet/digg.png deleted file mode 100755 index 59da6de0a..000000000 Binary files a/images/team-internet/digg.png and /dev/null differ diff --git a/images/team-internet/digitalocean.png b/images/team-internet/digitalocean.png deleted file mode 100644 index aaf5f7e32..000000000 Binary files a/images/team-internet/digitalocean.png and /dev/null differ diff --git a/images/team-internet/dreamhost.png b/images/team-internet/dreamhost.png deleted file mode 100644 index 2d078033a..000000000 Binary files a/images/team-internet/dreamhost.png and /dev/null differ diff --git a/images/team-internet/dropbox.png b/images/team-internet/dropbox.png deleted file mode 100644 index ff609db49..000000000 Binary files a/images/team-internet/dropbox.png and /dev/null differ diff --git a/images/team-internet/dwolla.png b/images/team-internet/dwolla.png deleted file mode 100755 index b7523e750..000000000 Binary files a/images/team-internet/dwolla.png and /dev/null differ diff --git a/images/team-internet/eff.png b/images/team-internet/eff.png deleted file mode 100644 index 442212e80..000000000 Binary files a/images/team-internet/eff.png and /dev/null differ diff --git a/images/team-internet/etsy.png b/images/team-internet/etsy.png deleted file mode 100755 index ae7e62b79..000000000 Binary files a/images/team-internet/etsy.png and /dev/null differ diff --git a/images/team-internet/fftf.png b/images/team-internet/fftf.png deleted file mode 100755 index c9bd3111d..000000000 Binary files a/images/team-internet/fftf.png and /dev/null differ diff --git a/images/team-internet/firedoglake.png b/images/team-internet/firedoglake.png deleted file mode 100644 index 212d181a5..000000000 Binary files a/images/team-internet/firedoglake.png and /dev/null differ diff --git a/images/team-internet/foursquare.png b/images/team-internet/foursquare.png deleted file mode 100755 index 0a0a01371..000000000 Binary files a/images/team-internet/foursquare.png and /dev/null differ diff --git a/images/team-internet/freerange.png b/images/team-internet/freerange.png deleted file mode 100644 index 9005ff7a9..000000000 Binary files a/images/team-internet/freerange.png and /dev/null differ diff --git a/images/team-internet/futureofmusic.png b/images/team-internet/futureofmusic.png deleted file mode 100644 index c2ca14b58..000000000 Binary files a/images/team-internet/futureofmusic.png and /dev/null differ diff --git a/images/team-internet/gandinet.png b/images/team-internet/gandinet.png deleted file mode 100755 index 7db524eac..000000000 Binary files a/images/team-internet/gandinet.png and /dev/null differ diff --git a/images/team-internet/gfycat.png b/images/team-internet/gfycat.png deleted file mode 100644 index 9b9f0f6a0..000000000 Binary files a/images/team-internet/gfycat.png and /dev/null differ diff --git a/images/team-internet/google.png b/images/team-internet/google.png deleted file mode 100644 index 96bcf4d4e..000000000 Binary files a/images/team-internet/google.png and /dev/null differ diff --git a/images/team-internet/greenpeace.png b/images/team-internet/greenpeace.png deleted file mode 100755 index 9857f82a4..000000000 Binary files a/images/team-internet/greenpeace.png and /dev/null differ diff --git a/images/team-internet/grooveshark.png b/images/team-internet/grooveshark.png deleted file mode 100644 index f8353d74e..000000000 Binary files a/images/team-internet/grooveshark.png and /dev/null differ diff --git a/images/team-internet/helpcom.png b/images/team-internet/helpcom.png deleted file mode 100644 index 0bf523a49..000000000 Binary files a/images/team-internet/helpcom.png and /dev/null differ diff --git a/images/team-internet/imgur.png b/images/team-internet/imgur.png deleted file mode 100755 index e7e81af78..000000000 Binary files a/images/team-internet/imgur.png and /dev/null differ diff --git a/images/team-internet/kickstarter.png b/images/team-internet/kickstarter.png deleted file mode 100755 index 4e8974bb4..000000000 Binary files a/images/team-internet/kickstarter.png and /dev/null differ diff --git a/images/team-internet/lesbianswhotech.png b/images/team-internet/lesbianswhotech.png deleted file mode 100644 index 3aff26f7a..000000000 Binary files a/images/team-internet/lesbianswhotech.png and /dev/null differ diff --git a/images/team-internet/mediamobilizingproject.png b/images/team-internet/mediamobilizingproject.png deleted file mode 100644 index 459eb5c00..000000000 Binary files a/images/team-internet/mediamobilizingproject.png and /dev/null differ diff --git a/images/team-internet/meetup.png b/images/team-internet/meetup.png deleted file mode 100755 index c32800178..000000000 Binary files a/images/team-internet/meetup.png and /dev/null differ diff --git a/images/team-internet/metafilter.png b/images/team-internet/metafilter.png deleted file mode 100644 index 488e412f4..000000000 Binary files a/images/team-internet/metafilter.png and /dev/null differ diff --git a/images/team-internet/missdream.png b/images/team-internet/missdream.png deleted file mode 100644 index 052535a48..000000000 Binary files a/images/team-internet/missdream.png and /dev/null differ diff --git a/images/team-internet/mozilla.png b/images/team-internet/mozilla.png deleted file mode 100755 index 8c82e7ecf..000000000 Binary files a/images/team-internet/mozilla.png and /dev/null differ diff --git a/images/team-internet/namecheap.png b/images/team-internet/namecheap.png deleted file mode 100755 index e9230ae48..000000000 Binary files a/images/team-internet/namecheap.png and /dev/null differ diff --git a/images/team-internet/netflix.png b/images/team-internet/netflix.png deleted file mode 100644 index 4ad919344..000000000 Binary files a/images/team-internet/netflix.png and /dev/null differ diff --git a/images/team-internet/newmediarights.png b/images/team-internet/newmediarights.png deleted file mode 100644 index e1b16f5c6..000000000 Binary files a/images/team-internet/newmediarights.png and /dev/null differ diff --git a/images/team-internet/nhmc.png b/images/team-internet/nhmc.png deleted file mode 100755 index 8d68f0de0..000000000 Binary files a/images/team-internet/nhmc.png and /dev/null differ diff --git a/images/team-internet/openmedia.png b/images/team-internet/openmedia.png deleted file mode 100644 index e2ff04ffe..000000000 Binary files a/images/team-internet/openmedia.png and /dev/null differ diff --git a/images/team-internet/other98.png b/images/team-internet/other98.png deleted file mode 100644 index 119b37a34..000000000 Binary files a/images/team-internet/other98.png and /dev/null differ diff --git a/images/team-internet/pccc.png b/images/team-internet/pccc.png deleted file mode 100644 index f13c067ec..000000000 Binary files a/images/team-internet/pccc.png and /dev/null differ diff --git a/images/team-internet/penamerica.png b/images/team-internet/penamerica.png deleted file mode 100644 index dfd50374e..000000000 Binary files a/images/team-internet/penamerica.png and /dev/null differ diff --git a/images/team-internet/pluralsight.png b/images/team-internet/pluralsight.png deleted file mode 100644 index 61325c4db..000000000 Binary files a/images/team-internet/pluralsight.png and /dev/null differ diff --git a/images/team-internet/popres.png b/images/team-internet/popres.png deleted file mode 100644 index 40cff5b79..000000000 Binary files a/images/team-internet/popres.png and /dev/null differ diff --git a/images/team-internet/presente.png b/images/team-internet/presente.png deleted file mode 100755 index ad8d9fbe8..000000000 Binary files a/images/team-internet/presente.png and /dev/null differ diff --git a/images/team-internet/progressivesunited.png b/images/team-internet/progressivesunited.png deleted file mode 100644 index 567c95084..000000000 Binary files a/images/team-internet/progressivesunited.png and /dev/null differ diff --git a/images/team-internet/reddit.png b/images/team-internet/reddit.png deleted file mode 100755 index a3f2f0399..000000000 Binary files a/images/team-internet/reddit.png and /dev/null differ diff --git a/images/team-internet/rootsaction.png b/images/team-internet/rootsaction.png deleted file mode 100644 index f4ade476a..000000000 Binary files a/images/team-internet/rootsaction.png and /dev/null differ diff --git a/images/team-internet/rootstrikers.png b/images/team-internet/rootstrikers.png deleted file mode 100644 index c2eeddf4b..000000000 Binary files a/images/team-internet/rootstrikers.png and /dev/null differ diff --git a/images/team-internet/sendgrid.png b/images/team-internet/sendgrid.png deleted file mode 100644 index 92bc5a83b..000000000 Binary files a/images/team-internet/sendgrid.png and /dev/null differ diff --git a/images/team-internet/shockwired.png b/images/team-internet/shockwired.png deleted file mode 100644 index 8a0d28768..000000000 Binary files a/images/team-internet/shockwired.png and /dev/null differ diff --git a/images/team-internet/sierraclub.png b/images/team-internet/sierraclub.png deleted file mode 100755 index 152dc470b..000000000 Binary files a/images/team-internet/sierraclub.png and /dev/null differ diff --git a/images/team-internet/startpage.png b/images/team-internet/startpage.png deleted file mode 100755 index ad247a4de..000000000 Binary files a/images/team-internet/startpage.png and /dev/null differ diff --git a/images/team-internet/stellar.png b/images/team-internet/stellar.png deleted file mode 100644 index c82ae8ce8..000000000 Binary files a/images/team-internet/stellar.png and /dev/null differ diff --git a/images/team-internet/sumofus.png b/images/team-internet/sumofus.png deleted file mode 100644 index 997745af2..000000000 Binary files a/images/team-internet/sumofus.png and /dev/null differ diff --git a/images/team-internet/tagged.png b/images/team-internet/tagged.png deleted file mode 100644 index a55495868..000000000 Binary files a/images/team-internet/tagged.png and /dev/null differ diff --git a/images/team-internet/thenation.png b/images/team-internet/thenation.png deleted file mode 100755 index 197fb3311..000000000 Binary files a/images/team-internet/thenation.png and /dev/null differ diff --git a/images/team-internet/tumblr.png b/images/team-internet/tumblr.png deleted file mode 100644 index 8ebc5c9a8..000000000 Binary files a/images/team-internet/tumblr.png and /dev/null differ diff --git a/images/team-internet/upworthy.png b/images/team-internet/upworthy.png deleted file mode 100755 index ae3bc7e53..000000000 Binary files a/images/team-internet/upworthy.png and /dev/null differ diff --git a/images/team-internet/urbandictionary.png b/images/team-internet/urbandictionary.png deleted file mode 100644 index 8eedcaee6..000000000 Binary files a/images/team-internet/urbandictionary.png and /dev/null differ diff --git a/images/team-internet/vhx.png b/images/team-internet/vhx.png deleted file mode 100644 index 940b5cf37..000000000 Binary files a/images/team-internet/vhx.png and /dev/null differ diff --git a/images/team-internet/vimeo.png b/images/team-internet/vimeo.png deleted file mode 100755 index 3eaf66e65..000000000 Binary files a/images/team-internet/vimeo.png and /dev/null differ diff --git a/images/team-internet/voqal.png b/images/team-internet/voqal.png deleted file mode 100644 index 897b342da..000000000 Binary files a/images/team-internet/voqal.png and /dev/null differ diff --git a/images/team-internet/wam.png b/images/team-internet/wam.png deleted file mode 100644 index c5a1000ae..000000000 Binary files a/images/team-internet/wam.png and /dev/null differ diff --git a/images/team-internet/wikia.png b/images/team-internet/wikia.png deleted file mode 100644 index 2f3689732..000000000 Binary files a/images/team-internet/wikia.png and /dev/null differ diff --git a/images/team-internet/wordpress.png b/images/team-internet/wordpress.png deleted file mode 100755 index 92ceb3a60..000000000 Binary files a/images/team-internet/wordpress.png and /dev/null differ diff --git a/images/teaminternet.png b/images/teaminternet.png deleted file mode 100755 index 34399ca06..000000000 Binary files a/images/teaminternet.png and /dev/null differ diff --git a/images/textarea-fade.png b/images/textarea-fade.png deleted file mode 100755 index accfeb320..000000000 Binary files a/images/textarea-fade.png and /dev/null differ diff --git a/images/thumbsdown.png b/images/thumbsdown.png deleted file mode 100755 index 839d15667..000000000 Binary files a/images/thumbsdown.png and /dev/null differ diff --git a/images/thumbsdownleft.png b/images/thumbsdownleft.png deleted file mode 100755 index 2083569f2..000000000 Binary files a/images/thumbsdownleft.png and /dev/null differ diff --git a/images/thumbsdownwhite.png b/images/thumbsdownwhite.png deleted file mode 100755 index 86a4cf2a6..000000000 Binary files a/images/thumbsdownwhite.png and /dev/null differ diff --git a/images/tools/border-crossing.jpg b/images/tools/border-crossing.jpg deleted file mode 100644 index 01f141f9f..000000000 Binary files a/images/tools/border-crossing.jpg and /dev/null differ diff --git a/images/tools/calendar.png b/images/tools/calendar.png deleted file mode 100755 index 2099ec2e1..000000000 Binary files a/images/tools/calendar.png and /dev/null differ diff --git a/images/tools/developer.jpg b/images/tools/developer.jpg deleted file mode 100755 index c1f57b68e..000000000 Binary files a/images/tools/developer.jpg and /dev/null differ diff --git a/images/tools/mockup1.gif b/images/tools/mockup1.gif deleted file mode 100755 index 6b1ea4382..000000000 Binary files a/images/tools/mockup1.gif and /dev/null differ diff --git a/images/tools/mockup2.gif b/images/tools/mockup2.gif deleted file mode 100755 index d08a4bc0f..000000000 Binary files a/images/tools/mockup2.gif and /dev/null differ diff --git a/images/tools/mockup3.gif b/images/tools/mockup3.gif deleted file mode 100755 index 3ef0bd4fc..000000000 Binary files a/images/tools/mockup3.gif and /dev/null differ diff --git a/images/tools/modal.png b/images/tools/modal.png deleted file mode 100755 index 760152133..000000000 Binary files a/images/tools/modal.png and /dev/null differ diff --git a/images/tools/push.png b/images/tools/push.png deleted file mode 100755 index 20ada5b0f..000000000 Binary files a/images/tools/push.png and /dev/null differ diff --git a/images/tools/rally.jpg b/images/tools/rally.jpg deleted file mode 100755 index d3c47d609..000000000 Binary files a/images/tools/rally.jpg and /dev/null differ diff --git a/images/tshirt-background.png b/images/tshirt-background.png deleted file mode 100644 index 225c07a73..000000000 Binary files a/images/tshirt-background.png and /dev/null differ diff --git a/images/twittercard.jpg b/images/twittercard.jpg deleted file mode 100755 index 57ecd4ec2..000000000 Binary files a/images/twittercard.jpg and /dev/null differ diff --git a/images/urinternetsux.png b/images/urinternetsux.png deleted file mode 100755 index bb372e91a..000000000 Binary files a/images/urinternetsux.png and /dev/null differ diff --git a/images/usmap.png b/images/usmap.png deleted file mode 100755 index bdaf72f43..000000000 Binary files a/images/usmap.png and /dev/null differ diff --git a/images/video.png b/images/video.png deleted file mode 100755 index db92e2004..000000000 Binary files a/images/video.png and /dev/null differ diff --git a/images/vigil.png b/images/vigil.png deleted file mode 100644 index f8c40e270..000000000 Binary files a/images/vigil.png and /dev/null differ diff --git a/images/worker.png b/images/worker.png deleted file mode 100755 index aec836e72..000000000 Binary files a/images/worker.png and /dev/null differ diff --git a/index.html b/index.html deleted file mode 100755 index 0431f5fa4..000000000 --- a/index.html +++ /dev/null @@ -1,951 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Join the Battle for Net Neutrality - - - - - - - - - - - - - - - - Fork me on GitHub - - -
-
- - - - - - - - -
-
-
-

- Write Congress now! -

-

- Tell them: save our Internet, not Comcast profits. -

-
-
- -
- - -
- - - - - - - - - - - -
- - - - - - -
- - - - -
-
- -
- -
-
WRITE YOUR OWN
- -
- -
-
-
- - -

- Fight for the Future, Demand Progress or Free Press Action Fund will contact you about future campaigns. Privacy -

- - - - - - -
-
-
-
-
- -
-

- - - - - - - - - - -
- - -
- - - - - - - -
-

- They are Team Cable -

- - - - -

- Cable companies are famous for high prices and poor service. Several rank as the most hated companies in America. Now, they're attacking the Internet–their one competitor and our only refuge–with plans to charge websites arbitrary fees and slow (to a crawl) any sites that won't pay up. If they win, the Internet dies. -

-
- -
-

- We are Team Internet -

-

- We believe in the free and open Internet, with no arbitrary fees or slow lanes for sites that can't pay. All of the people, companies, and organizations below have taken a stand for "Title II reclassification," the only option that lets the FCC stop Team Cable from breaking the key principles of the Internet we love. -

-

- Load more - - -
- - - -
- -
-
-
- -
-
Companies
-
    -
    -
    -
    Organizations
    -
      -
      -
      -
      People
      -
        -
        - -
        -
        -
        - -
        -

        - Understand the battle -

        -

        - Leave it to comedians. If you're looking to understand Team Cable's plans for the Internet, watch this video. Nobody explains it better than John Oliver. -

        -
        - -
        -
        - - -
        - -
        -
        -
        - -
        -

        What is net neutrality?

        -

        Net Neutrality is the Internet’s guiding principle: It preserves our right to communicate freely online.

        -

        Net Neutrality means that the cable/telecom companies must provide us with open networks — and should not block or discriminate against any applications or content that ride over those networks. Just as your phone company cannot decide who you could call and what you say on that call, your ISP should not be concerned with what content you view or post online.

        -

        Net Neutrality is what enables the Internet to be such a hotbed for innovation. If you bring a new service online, the cable/telecom companies should deliver it just like they’d deliver content from a corporate behemoth like Google or NBC.

        -

        Net Neutrality is what gives every startup the same chance to reach customers and users as any existing company. Simply, without Net Neutrality, startups and small business will be subject to discrimination based on a pay-to-play Internet, and the open Internet and the economic growth it has represented will be at risk.

        - -

        What are we fighting against?

        -

        On May 15, 2014, the Federal Communications Commission proposed rules that would permit rampant discrimination online, undermining Net Neutrality. The FCC’s proposal would be a huge boon for the cable companies and would undermine the Internet as we know it.

        -

        Under the proposed rules, cable giants like AT&T, Comcast, and Verizon would be able to create a two-tiered Internet, with slow lanes (for most of us) and fast lanes (for wealthy corporations that are willing pay fees in exchange for fast service).

        -

        Cable companies would have the power to discriminate against online content and applications — they could pick winners and losers, shake sites down for fees, block content for political reasons, and make it easier for Internet users to view cable content. (For instance, Comcast owns NBC, and so has incentives to make it easier to view NBC content than that of other providers.)

        - -

        What are we fighting for?

        -

        After public outcry, the FCC left the door open for the only proposal that can preserve Net Neutrality: reclassifying Internet access as a "common carrier" under Title II of the Communications Act.

        -

        Anything other than Title II is an attack on our rights to connect and communicate.

        -

        The FCC has opened up a comment period for us to weigh in on its proposal, but it ends on Sept. 15. After that, the FCC will deliberate and decide what, if any, new rules to issue — likely before the end of the year.

        - -

        What does the other side say?

        -

        The other side — mostly, the cable companies — wants the right to control how you access content, and they’ll say and do just about anything to try to make sure they can pick and choose which sites will get preferential treatment.

        -

        To enforce their will, they’re employing every trick in the book: They’ve bought armies of lobbyists, set up fake grassroots groups, and donated millions of dollars to politicians. And they make things up.

        -

        First, they wrongly claim that Title II will reduce investment in infrastructure, but they have no evidence. They also claim that the FCC can ensure Net Neutrality without using Title II. That’s also false. In fact, Title II is the only way to ensure real net neutrality. -

        - -

        How will we win?

        -

        We’ll win by making sure that those in power understand that the American people overwhelmingly support Net Neutrality and that America’s growing Internet economy requires Net Neutrality to thrive.

        -

        More than 4 million people have already spoken out in support of Net Neutrality — more than have ever weighed in on an issue in front of the FCC — and upwards of 99% of us are on the same side!

        -

        While more elected officials are taking up our cause, including President Obama, we need to keep up the pressure through the fall if we’re going to win.

        -

        The cable companies are powerful and vicious and they won’t back down. Neither can we. Join the Internet Slowdown on Sept. 10 and click here for more things you can do to fight back.

        -

        *Adapted in part from posts by Free Press Action Fund and others. Please click here for more comprehensive information:
        http://www.savetheinternet.com/net-neutrality-what-you-need-know-now

        -
        -
        -
        - -
        - -
        -

        - Political scoreboard -

        -

        - Team Cable has the money, so they have the power. They've been lobbying Congress and the FCC for years, and now they're calling in their favors. Here's where our leaders stand. We're losing. But public pressure works. -

        - - - -
        -

        - Team Cable -

        - Unknown -

        - Team Internet -

        -
        - -
        - - - -
        -
        -
        $
        -
        5x
        -
        -
        -
        $
        -
        1x
        -
        -
        - - -

        - Over the past ten years, Team Cable has out-lobbyied Team Internet 5 to 1. Source: Sunlight Foundation -

        - - - -
        - - - -
        -

        - Share these, now. -

        -

        - We need as many people as possible to see this site, write Congress and the FCC, and keep fighting until we win. Can you post these images everywhere? -

        -
        -
        -
        -
        -
        -

        - Site owners: join us for action! -

        -

        - If you have a site or blog, you can run your own campaign for net neutrality. - Embed our action widget on your page with just a few lines of code, and your - visitors will be able to contact the FCC, Congress and the White House in one - step. Try it! -

        - Get the code! - -
        - -
        -

        - Get the t-shirt -

        -

        - Are you on Team Internet? Show it off with a t-shirt or hoodie. Proceeds will let us distribute these shirts en masse to the members of Congress, staffers and FCC employees who are fighting from the inside. -

        -
        - BUY -
        - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/infographic/index.html b/infographic/index.html deleted file mode 100755 index ddc85ab4f..000000000 --- a/infographic/index.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/js/battle.js b/js/battle.js deleted file mode 100755 index 4ea43d2a3..000000000 --- a/js/battle.js +++ /dev/null @@ -1,728 +0,0 @@ -// Alert for IE<9 -if (!window.jQuery) { - alert('Sorry! Your browser is super outdated, and might have viruses. Please upgrade to Firefox, Chrome, or a newer version of IE - immediately.'); -} - -;(function ($) { - var templates = {}; - - function jQueryDotTemplate (target, values) { - if (!templates[target]) { - templates[target] = $(target).html(); - } - - var $html = $('
        ' + templates[target] + '
        '); - - for (var i in values) { - $html.find('.class-' + i).addClass(values[i]); - $html.find('.href-' + i).attr('href', values[i]); - $html.find('.src-' + i).attr('src', values[i]); - $html.find('.target-' + i).attr('target', values[i]); - $html.find('.text-' + i).text(values[i]); - } - - return $html.children(); - } - - $.template = jQueryDotTemplate; -})(jQuery); - -var photoCloud = { - - // array of submissions from api - submissions: [], - processing: false, - processed: 0, - limit: 500, - page: 0, - nodeCount: 0, - thumbSize: 60, - rows: 10, - centerOffset: null, - bubbleWidth: 250, - bubblePopDelay: 300, - bubblePopTimer: null, - stopRandomBubble: false, - bubbleRandomInterval: 5000, - xhr: false, - $el: $('#wall-scroller'), - - init: function() { - this.centerOffset = this.$el.offset(); - $('section.wall').css('height', this.rows * this.thumbSize + 'px'); - - this.load(function() { - for (var i = 0; i < this.submissions.length; i++) - this.newNode(this.submissions[i]); - this.nodeCount = this.processed; - }.bind(this)); - - - this.$el.on('click', 'a', function(e) { - e.preventDefault(); - return false; // nobody gets a link - if (this.submissions[e.target.id.substr(7)].link) - window.open(this.sanitize(this.submissions[e.target.id.substr(7)].link)); - }.bind(this)); - - this.$el.on('mouseover', 'a', function(e) { - this.stopRandomBubble = true; - this.showBubble(e.target.id.substr(7)); - }.bind(this)); - this.$el.on('mouseout', 'a', function(e) { - this.stopRandomBubble = false; - this.hideBubbles(); - }.bind(this)); - - setInterval(this.showRandomBubble.bind(this), this.bubbleRandomInterval); - }, - - load: function(callback) { - this.processing = true; - - if (this.xhr) { - this.xhr.abort(); - } - - this.xhr = $.ajax({ - url: '//participants.battleforthenet.com/participants', - data: 'limit='+this.limit+'&skip='+(this.page * this.limit), - dataType: 'json', - type: 'get', - success: function(data) { - this.page++; - this.processing = false; - this.submissions = this.submissions.concat(data); - if (data.length == 0) - { - console.log('OMG EMPTY - starting over'); - this.processed = 0; - this.page = 0; - } - callback(); - }.bind(this) - }) - }, - - loadMore: function(start) { - start || (start = 0); - - this.stopRandomBubble = true; - - var doReplaceNodeAfterDelay = function(id, data) { - setTimeout(function() { - this.replaceNode(id, data); - - if (id >= this.nodeCount - 1) - this.stopRandomBubble = false; - - }.bind(this), id*10); - }.bind(this); - - for (var i = start; i < this.nodeCount; i++) - { - if (this.processed + i < this.submissions.length - 1) - { - doReplaceNodeAfterDelay(i, this.submissions[this.processed + i]); - } - else - { - console.log('STARVED - need to get more people: ', this.submissions.length); - return this.load(function() { - this.loadMore(i); - }.bind(this)); - } - } - }, - - newNode: function(data) { - var maxRandomDelay = 5000; - - var randomDelay = function(id, data, offsets) { - setTimeout(function() { - this.loadImageAndDoCallback(this.sanitize(data.avatar.replace('http:', '')), data._id, function() { - this.insertNodeElement(id, data, offsets); - }.bind(this)); - }.bind(this), Math.floor(Math.random() * maxRandomDelay)); - }.bind(this); - - var offsets = this.getOffsetsByIndex(this.processed); - - if (offsets.OUT_OF_BOUNDS) - return; - - randomDelay(this.processed, data, offsets); - this.processed++; - }, - - replaceNode: function(id, data) { - var offsets = this.getOffsetsByIndex(id); - - if (offsets.OUT_OF_BOUNDS) - return; - - this.loadImageAndDoCallback(this.sanitize(data.avatar.replace('http:', '')), data._id, function() { - $('#avatar_'+id).css('opacity', 0); - $('#bubble_'+id).css('opacity', 0); - $('#pointy_'+id).css('opacity', 0); - setTimeout(function() { - $('#avatar_'+id).remove(); - $('#bubble_'+id).remove(); - $('#pointy_'+id).remove(); - this.insertNodeElement(id, data, offsets); - }.bind(this), 1000); - }.bind(this)); - - this.processed++; - }, - - loadImageAndDoCallback: function(src, id, callback) { - var image = new Image(); - image.src = src; - image.onload = callback; - image.onerror = function() { - if (src.indexOf('twimg.com') != -1) - this.reportBrokenImage(id); - callback() - }.bind(this); - }, - - insertNodeElement: function(id, data, offsets) { - var a = $('', { - id: 'avatar_'+id, - class: data.link ? /*'link'*/ '' : '', - style: 'left:'+offsets.left+'px; \ - top:'+offsets.top+'px; \ - width:'+this.thumbSize+'px; \ - height:'+this.thumbSize+'px; \ - background-image: url('+this.sanitize(data.avatar.replace('http:', ''))+'); \ - background-size: '+this.thumbSize+'px auto;' - }); - a.attr({ - href: '#', - target: '_blank' - }); - a.appendTo(this.$el); - setTimeout(function() { - a.css('opacity', 1); - }, 10); - - var bOffsetX = offsets.left-(this.bubbleWidth/2)+(this.thumbSize/2); - var bOffsetY = (offsets.top*-1)+this.thumbSize+14; - - if (bOffsetX + this.centerOffset.left < 10) - bOffsetX = (this.centerOffset.left*-1)+10; - else if (bOffsetX + this.bubbleWidth > this.centerOffset.left+(this.thumbSize/2)) - bOffsetX = this.centerOffset.left-this.bubbleWidth+(this.thumbSize/2)+8; - - var div = $('
        ', { - id: 'bubble_'+id, - class: 'bubble', - style: 'left:'+bOffsetX+'px; \ - bottom:'+bOffsetY+'px; \ - width:'+this.bubbleWidth+'px;' - }); - div.html(''+this.sanitize(data.blurb)+''+this.sanitize(data.name)+''); - div.appendTo(this.$el); - - var aOffsetX = offsets.left+(this.thumbSize/2); - var aOffsetY = offsets.top-26; - - if (aOffsetX + this.centerOffset.left < 33) - aOffsetX = (this.centerOffset.left*-1)+33; - else if (aOffsetX > this.centerOffset.left) - aOffsetX = this.centerOffset.left+15; - - var arrow = $('
        ', { - id: 'pointy_'+id, - class: 'arrow', - style: 'left:'+aOffsetX+'px; \ - top:'+aOffsetY+'px;' - }); - arrow.appendTo(this.$el); - }, - - showRandomBubble: function() { - if (this.stopRandomBubble) - return false; - - var links = this.$el.find('a'); - var random = Math.floor(Math.random() * links.length); - this.showBubble(random); - }, - - hideBubbles: function() { - if (this.bubblePopTimer) - clearTimeout(this.bubblePopTimer); - this.bubblePopTimer = null; - this.$el.find('a').removeClass('hovered'); - $('div.arrow').css('opacity', 0); - $('div.bubble').css('opacity', 0); - }, - - showBubble: function(id) { - this.hideBubbles(); - this.bubblePopTimer = setTimeout(function() { - $('#avatar_'+id).addClass('hovered'); - $('#bubble_'+id).css('opacity', 1); - $('#pointy_'+id).css('opacity', 1); - }, this.bubblePopDelay); - }, - - getOffsetsByIndex: function(index) - { - var leftMult, col, row; - var size = this.thumbSize; - if (index % 2 == 1) - { - leftMult = 1; - row = (((index-1)/2)%this.rows); - col = Math.floor(((index-1)/2)/this.rows)+1; - } - else - { - leftMult = -1; - row = ((index/2)%this.rows); - col = Math.floor((index/2)/this.rows)+1; - } - var info = { - left: ((leftMult*col*size)-((size/2)*leftMult)), - top: (row*size) - }; - if (this.centerOffset.left + info.left + this.thumbSize < 0) - info.OUT_OF_BOUNDS = true; - - return info; - }, - - sanitize: function(str) - { - // str = "TEST LOL javascript: FUCK javascript: shit babghah"; - str = str.replace(/\Everywhere.'); - } - } - }); - - $('.political select')[0].selectedIndex = 0; - - $('#subscribe').click(function(e) { - e.preventDefault(); - - $.ajax('https://action.fightforthefuture.org/api/movements/1/salsa', { - type: 'POST', - data: { - 'csrfmiddlewaretoken': 'Hs3unIicI0ztSKnejzAn8CmPS4YnBCpW', - 'member[language]': 'en', - 'salsa': true, - 'language_id': 'en', - 'member[movement_id]': 1, - 'member[user_agent]': '', - 'member[ip_address]': '', - 'guard': '', - 'action': 1, - 'hp_enabled': true, - 'hp_disabled': false, - 'member[first_name]': '', - 'member[email]': $('#email').val(), - 'member[street_address]': '', - 'member[postcode]': '', - 'tag': 'nocompromiseprotest' - }, - complete: function(xhr, status) { - $('.signup').css('visibility', 'hidden'); - $('.signup-thanks').show(); - } - }); - - }); - - if ($('a.break').length) { - $('a.break').click(function(e) { - e.preventDefault(); - window.open($('a.break').attr('href')); - }); - setTimeout(function() { - $('a.break').css('opacity', 1); - }, 2000); - } - - if (window.location.href.indexOf('#PARTICIPANT') != -1) - $('#participantModal').modal('show'); - - // ShareProgress Facebook button override - /* - $('a.share.facebook').click(function(e) { - e.preventDefault(); - $('#sp_fb a').click(); - }); - - // ShareProgress Twitter button override - $('a.share.twitter').click(function(e) { - e.preventDefault(); - $('#sp_tw a').click(); - }); - */ - - // Wall Under - $('.wall-under .columns .show_all a').click(function(e) { - e.preventDefault(); - $('.wall-under .columns').removeClass('obscured'); - var biggest_height = 0; - $('.wall-under .columns > div').each(function() { - var height = $(this).innerHeight(); - if (height > biggest_height) - biggest_height = height; - }); - $('.wall-under .columns > div.listing').each(function() { - $(this).css('height', biggest_height +'px'); - }); - $( ".wall-under .columns" ).animate({ height: biggest_height+'px'}, 1000, function() { - // Animation complete. - }); - }); - - // Questions and Answers - $('.faqs .columns .show_all a').click(function(e) { - console.log('clicked'+ this); - $('.faqs .columns').removeClass('obscured'); - var biggest_height = 0; - $('.faqs .columns > div').each(function() { - var height = $(this).innerHeight(); - if (height > biggest_height) - biggest_height = height; - }); - $('.faqs .columns > div.listing').each(function() { - $(this).css('height', biggest_height +'px'); - }); - $( ".faqs .columns" ).animate({ height: biggest_height+'px'}, 1000, function() { - // Animation complete. - }); - }); - - // Questions and Answers - $('.questions-answers .columns .show_all a').click(function(e) { - console.log('clicked'+ this); - $('.questions-answers .columns').removeClass('obscured'); - var biggest_height = 0; - $('.questions-answers .columns > div').each(function() { - var height = $(this).innerHeight(); - if (height > biggest_height) - biggest_height = height; - }); - $('.questions-answers .columns > div.listing').each(function() { - $(this).css('height', biggest_height +'px'); - }); - $( ".questions-answers .columns" ).animate({ height: biggest_height+'px'}, 1000, function() { - // Animation complete. - }); - }); - - // Myths Debunked - $('.myths .columns .show_all a').click(function(e) { - console.log('clicked'+ this); - $('.myths .columns').removeClass('obscured'); - var biggest_height = 0; - $('.myths .columns > div').each(function() { - var height = $(this).innerHeight(); - if (height > biggest_height) - biggest_height = height; - }); - $('.myths .columns > div.listing').each(function() { - $(this).css('height', biggest_height +'px'); - }); - $( ".myths .columns" ).animate({ height: biggest_height+'px'}, 1000, function() { - // Animation complete. - }); - }); - - // Letter Debunked - $('.letter-under .columns .show_all a').click(function(e) { - console.log('clicked'+ this); - $('.letter-under .columns').removeClass('obscured'); - var biggest_height = 0; - $('.letter-under .columns > div').each(function() { - var height = $(this).innerHeight(); - if (height > biggest_height) - biggest_height = height; - }); - $('.letter-under .columns > div.listing').each(function() { - $(this).css('height', biggest_height +'px'); - }); - $( ".letter-under .columns" ).animate({ height: biggest_height+'px'}, 1000, function() { - // Animation complete. - }); - }); - - - var formFields = [ - "action_comment", - "address1", - "email", - "name", - "zip" - ]; - - // Prevent tabbing to textarea. - $('form textarea').on('focus', function(e) { - $(this).blur(); - }); - - // Slide to new hash targets. - $('a').each(function(i) { - if (!$(this).attr('href') || !$(this).attr('href').match(/^#/)) { - return; - } - $(this).on('click', function(e) { - if (this.href.match(/#home/)) { - return; - } - - e.preventDefault(); - - var target = '#' + this.href.split('#')[1]; - - if (target == '#') - return false; - - window.location.hash = target; - - $(target).velocity('scroll', {duration: 777, offset: -66}, function() { - location.hash = target; - }); - }); - }); - - $(window) - .on('hashchange', function() { - var $navigation = $('#navigation a'); - $navigation.removeClass('selected'); - var hash = location.hash || '#home'; - if (hash.indexOf('?') != -1) - hash = hash.substr(0, hash.indexOf('?')); - for (var i =0; i< $navigation.length; i++) - if ($($navigation[i]).attr('href').indexOf(hash) != -1) - $($navigation[i]).addClass('selected') - /* - console.log('hash: ', hash); - var $selected = $navigation.filter('[href=' + hash + ']'); - if ($selected.length !== 0) { - $selected = $navigation.first(); - } - $selected.addClass('selected'); - */ - }) - .trigger('hashchange'); - - - // MODAL // - // Save comment. - $('#editModal .modal-footer button').on('click', function(e) { - e.preventDefault(); - - var comment = $('#editModal textarea').val(); - $('#what-to-do form textarea').val(comment); - - $('#editModal').modal('hide'); - }); - - function postUser(form) { - var ok = true; - var doc = {}; - /* - formFields.forEach(function(field) { - if ($("input[name=" + field + "]", $form)[0] && $("input[name=" + field + "]", $form).val() === "") { - ok = false; - } else { - doc[field] = $("input[name=" + field + "]", $form).val(); - } - }); - - doc['action_comment'] = $("[name=action_comment]").val(); - doc['country'] = $('#country').val(); - doc['org'] = window.org; - */ - $.post(form.attr('action'), form.serialize(), function(data){ - /* - $action_widget = document.getElementById('action_widget'); - $action_widget.className = ( $action_widget.className == 'share-widget' )? '' : 'share-widget'; - */ - }); - - /* - if (ok) { - $.ajax({ - url: "//queue.battleforthenet.com/submit", - // url: "http://debbie:3019/submit", // JL TEST ~ - type: "post", - dataType: "json", - data: doc, - success: function(res) { - userID = res.userID; - } - }); - } - */ - return ok; - } - - $("form[name=petition]").submit(function(e) { - e.preventDefault(); - if (postUser($(this))) { - window.cachedData = $('#what-to-do form').serialize(); - $("input:not([type=image],[type=button],[type=submit],[type=hidden])").val(''); - /* - if (!$('body').hasClass('embed')) - $('#participantModal').modal('show'); - else - $('#thanksModal').modal('show'); - */ - $('#thanksModal').modal('show'); - } else { - alert('Please complete the rest of the form. Thanks!'); - } - }); - - window.authSuccess = function() { - var newData = $('#participant_form').serialize(); - var combinedData = window.cachedData + '&' + newData; - $.ajax({ - url: '//api.battleforthenet.com/participant/create', - type: 'post', - xhrFields: { - withCredentials: true - }, - data: combinedData, - success: function(res) { - $('#participantModal').modal('hide'); - $('#thanksModal').modal('show'); - } - }) - }; - - window.authFailure = function() { - // ... - }; - - $('#participantModal .modal-footer').on('click', function(e) { - var disabled = $(this).find('a').attr('disabled'); - if (disabled) { - e.preventDefault(); - $('#participant_link').focus(); - $('#participant_link').select(); - } - }); - - // Send 20% of forms to FP page. - window.org = ''; - /* - if (Math.random() < 0.20) { - $('.call-to-action').addClass('fp'); - window.org = 'fp'; - } - */ - - // Support IE9+ - function getInternetExplorerVersion() - // Returns the version of Internet Explorer or a -1 - // (indicating the use of another browser). - { - var rv = -1; // Return value assumes failure. - if (navigator.appName == 'Microsoft Internet Explorer') - { - var ua = navigator.userAgent; - var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); - if (re.exec(ua) != null) - rv = parseFloat( RegExp.$1 ); - } - return rv; - } - if (navigator.userAgent.match('MSIE')) { - // Fading modals aren't supported. - $('.modal.fade').removeClass('fade'); - - var version = getInternetExplorerVersion(); - if (version < 10) { - $('body').addClass('oldie'); - $('input, textarea').placeholder(); - } - } - - if ($('.listing').length) { - $.ajax({ - url: '//participants.battleforthenet.com/participants/listed', - dataType: 'json', - type: 'get', - success: function(data) { - for (var i=data.length-1; i>=0; i--) - { - if (!data[i].listing) - continue; - - var li = $('
      • ', { - id: 'listing_'+data[i]._id - }); - var html = '' + photoCloud.sanitize(data[i].name) + ''; - - if (data[i].link) - html = '' + photoCloud.sanitize(data[i].name) + ''; - - li.html(html); - li.appendTo($('.listing.'+data[i].listing+ ' ul')); - } - } - }); - } - - // Starting the count animation - setTimeout(function() { - if (!window.countUp) { - return; - } - - var baseline = 4400000; - var calls = 80603; - var comments = 451387; - var numAnim = new countUp("animated-count", baseline, baseline + calls + comments, 0, 5.87); - numAnim.start(); - }, 2500); - -})(jQuery); diff --git a/js/min/battle-min.js b/js/min/battle-min.js deleted file mode 100644 index 12cf45f75..000000000 --- a/js/min/battle-min.js +++ /dev/null @@ -1 +0,0 @@ -window.jQuery||alert("Sorry! Your browser is super outdated, and might have viruses. Please upgrade to Firefox, Chrome, or a newer version of IE - immediately."),function($){function t(t,i){e[t]||(e[t]=$(t).html());var s=$("
        "+e[t]+"
        ");for(var n in i)s.find(".class-"+n).addClass(i[n]),s.find(".href-"+n).attr("href",i[n]),s.find(".src-"+n).attr("src",i[n]),s.find(".target-"+n).attr("target",i[n]),s.find(".text-"+n).text(i[n]);return s.children()}var e={};$.template=t}(jQuery);var photoCloud={submissions:[],processing:!1,processed:0,limit:500,page:0,nodeCount:0,thumbSize:60,rows:10,centerOffset:null,bubbleWidth:250,bubblePopDelay:300,bubblePopTimer:null,stopRandomBubble:!1,bubbleRandomInterval:5e3,xhr:!1,$el:$("#wall-scroller"),init:function(){this.centerOffset=this.$el.offset(),$("section.wall").css("height",this.rows*this.thumbSize+"px"),this.load(function(){for(var t=0;t=this.nodeCount-1&&(this.stopRandomBubble=!1)}.bind(this),10*t)}.bind(this),i=t;i",{id:"avatar_"+t,"class":e.link?"":"",style:"left:"+i.left+"px; top:"+i.top+"px; width:"+this.thumbSize+"px; height:"+this.thumbSize+"px; background-image: url("+this.sanitize(e.avatar.replace("http:",""))+"); background-size: "+this.thumbSize+"px auto;"});s.attr({href:"#",target:"_blank"}),s.appendTo(this.$el),setTimeout(function(){s.css("opacity",1)},10);var n=i.left-this.bubbleWidth/2+this.thumbSize/2,o=-1*i.top+this.thumbSize+14;n+this.centerOffset.left<10?n=-1*this.centerOffset.left+10:n+this.bubbleWidth>this.centerOffset.left+this.thumbSize/2&&(n=this.centerOffset.left-this.bubbleWidth+this.thumbSize/2+8);var a=$("
        ",{id:"bubble_"+t,"class":"bubble",style:"left:"+n+"px; bottom:"+o+"px; width:"+this.bubbleWidth+"px;"});a.html(""+this.sanitize(e.blurb)+""+this.sanitize(e.name)+""),a.appendTo(this.$el);var r=i.left+this.thumbSize/2,l=i.top-26;r+this.centerOffset.left<33?r=-1*this.centerOffset.left+33:r>this.centerOffset.left&&(r=this.centerOffset.left+15);var c=$("
        ",{id:"pointy_"+t,"class":"arrow",style:"left:"+r+"px; top:"+l+"px;"});c.appendTo(this.$el)},showRandomBubble:function(){if(this.stopRandomBubble)return!1;var t=this.$el.find("a"),e=Math.floor(Math.random()*t.length);this.showBubble(e)},hideBubbles:function(){this.bubblePopTimer&&clearTimeout(this.bubblePopTimer),this.bubblePopTimer=null,this.$el.find("a").removeClass("hovered"),$("div.arrow").css("opacity",0),$("div.bubble").css("opacity",0)},showBubble:function(t){this.hideBubbles(),this.bubblePopTimer=setTimeout(function(){$("#avatar_"+t).addClass("hovered"),$("#bubble_"+t).css("opacity",1),$("#pointy_"+t).css("opacity",1)},this.bubblePopDelay)},getOffsetsByIndex:function(t){var e,i,s,n=this.thumbSize;t%2==1?(e=1,s=(t-1)/2%this.rows,i=Math.floor((t-1)/2/this.rows)+1):(e=-1,s=t/2%this.rows,i=Math.floor(t/2/this.rows)+1);var o={left:e*i*n-n/2*e,top:s*n};return this.centerOffset.left+o.left+this.thumbSize<0&&(o.OUT_OF_BOUNDS=!0),o},sanitize:function(t){return t=t.replace(/\Everywhere."))}}),$("a.break").length&&($("a.break").click(function(t){t.preventDefault(),window.open($("a.break").attr("href"))}),setTimeout(function(){$("a.break").css("opacity",1)},2e3)),-1!=window.location.href.indexOf("#PARTICIPANT")&&$("#participantModal").modal("show"),$("a.share.facebook").click(function(t){t.preventDefault(),$("#sp_fb a").click()}),$("a.share.twitter").click(function(t){t.preventDefault(),$("#sp_tw a").click()}),$(".wall-under .columns .show_all a").click(function(t){t.preventDefault(),$(".wall-under .columns").removeClass("obscured");var e=0;$(".wall-under .columns > div").each(function(){var t=$(this).innerHeight();t>e&&(e=t)}),$(".wall-under .columns > div.listing").each(function(){$(this).css("height",e+"px")}),$(".wall-under .columns").animate({height:e+"px"},1e3,function(){})}),$(".faqs .columns .show_all a").click(function(t){console.log("clicked"+this),$(".faqs .columns").removeClass("obscured");var e=0;$(".faqs .columns > div").each(function(){var t=$(this).innerHeight();t>e&&(e=t)}),$(".faqs .columns > div.listing").each(function(){$(this).css("height",e+"px")}),$(".faqs .columns").animate({height:e+"px"},1e3,function(){})}),$(".questions-answers .columns .show_all a").click(function(t){console.log("clicked"+this),$(".questions-answers .columns").removeClass("obscured");var e=0;$(".questions-answers .columns > div").each(function(){var t=$(this).innerHeight();t>e&&(e=t)}),$(".questions-answers .columns > div.listing").each(function(){$(this).css("height",e+"px")}),$(".questions-answers .columns").animate({height:e+"px"},1e3,function(){})}),$(".myths .columns .show_all a").click(function(t){console.log("clicked"+this),$(".myths .columns").removeClass("obscured");var e=0;$(".myths .columns > div").each(function(){var t=$(this).innerHeight();t>e&&(e=t)}),$(".myths .columns > div.listing").each(function(){$(this).css("height",e+"px")}),$(".myths .columns").animate({height:e+"px"},1e3,function(){})}),$(".letter-under .columns .show_all a").click(function(t){console.log("clicked"+this),$(".letter-under .columns").removeClass("obscured");var e=0;$(".letter-under .columns > div").each(function(){var t=$(this).innerHeight();t>e&&(e=t)}),$(".letter-under .columns > div.listing").each(function(){$(this).css("height",e+"px")}),$(".letter-under .columns").animate({height:e+"px"},1e3,function(){})});var i=["action_comment","address1","email","name","zip"];if($("form textarea").on("focus",function(t){$(this).blur()}),$("a").each(function(t){$(this).attr("href")&&$(this).attr("href").match(/^#/)&&$(this).on("click",function(t){if(!this.href.match(/#home/)){t.preventDefault();var e="#"+this.href.split("#")[1];$(e).velocity("scroll",{duration:777,offset:-66},function(){location.hash=e})}})}),$(window).on("hashchange",function(){var t=$("#navigation a");t.removeClass("selected");var e=location.hash||"#home",i=t.filter("[href="+e+"]");0===i.length&&(i=t.first()),i.addClass("selected")}).trigger("hashchange"),$("#editModal .modal-footer button").on("click",function(t){t.preventDefault();var e=$("#editModal textarea").val();$("#what-to-do form textarea").val(e),$("#editModal").modal("hide")}),$("form[name=petition]").submit(function(e){e.preventDefault(),t($(this))?(window.cachedData=$("#what-to-do form").serialize(),$("input:not([type=image],[type=button],[type=submit])").val(""),$("body").hasClass("embed")?$("#thanksModal").modal("show"):$("#participantModal").modal("show")):alert("Please complete the rest of the form. Thanks!")}),window.authSuccess=function(){var t=$("#participant_form").serialize(),e=window.cachedData+"&"+t;$.ajax({url:"//api.battleforthenet.com/participant/create",type:"post",xhrFields:{withCredentials:!0},data:e,success:function(t){$("#participantModal").modal("hide"),$("#thanksModal").modal("show")}})},window.authFailure=function(){},$("#participantModal .modal-footer").on("click",function(t){var e=$(this).find("a").attr("disabled");e&&(t.preventDefault(),$("#participant_link").focus(),$("#participant_link").select())}),window.org="",Math.random()<.2&&($(".call-to-action").addClass("fp"),window.org="fp"),navigator.userAgent.match("MSIE")){$(".modal.fade").removeClass("fade");var s=e();10>s&&($("body").addClass("oldie"),$("input, textarea").placeholder())}$(".listing").length&&$.ajax({url:"//participants.battleforthenet.com/participants/listed",dataType:"json",type:"get",success:function(t){for(var e=t.length-1;e>=0;e--)if(t[e].listing){var i=$("
      • ",{id:"listing_"+t[e]._id}),s=""+photoCloud.sanitize(t[e].name)+"";t[e].link&&(s=''+photoCloud.sanitize(t[e].name)+""),i.html(s),i.appendTo($(".listing."+t[e].listing+" ul"))}}}),setTimeout(function(){if(window.countUp){var t=44e5,e=80603,i=451387,s=new countUp("animated-count",t,t+e+i,0,5.87);s.start()}},2500)}(jQuery); \ No newline at end of file diff --git a/js/min/waypoints.min.js b/js/min/waypoints.min.js deleted file mode 100644 index 35e40fba2..000000000 --- a/js/min/waypoints.min.js +++ /dev/null @@ -1 +0,0 @@ -jQuery(function(a){a("#what-to-do").waypoint(function(e){"up"===e&&(a("#navigation ul li:last-child a").removeClass("highlight-green"),a("#join-the-slowdown header a").removeClass("break")),"down"===e&&(a("#navigation ul li:last-child a").addClass("highlight-green"),a("#join-the-slowdown header a").addClass("break"))})}); \ No newline at end of file diff --git a/js/scoreboard.js b/js/scoreboard.js deleted file mode 100755 index c87458d23..000000000 --- a/js/scoreboard.js +++ /dev/null @@ -1,330 +0,0 @@ -jQuery(function($) { - // Political Scoreboard - var $isotope = $('.isotope'); - var $politicalSelect = $('.political select'); - var spreadsheetKey = $isotope.data('spreadsheet-key'); - var spreadsheetUrl = 'https://spreadsheets.google.com/feeds/list/' + spreadsheetKey + '/default/public/values?alt=json'; - - var isFrontpage = $isotope.data('frontpage'); - var spreadsheetData = []; - var players = []; - - var state = location.href.match(/state=([\w-_\s\+]+)/i); - if (state) - { - state = state[1].replace('+', ' ').replace('%20', ' '); - $politicalSelect.val(state) - } - - $.getJSON(spreadsheetUrl, function(response) { - - spreadsheetData = response.feed.entry; - // Parse & sort by weight - - showPlayers(spreadsheetData, true, state); - - // Resort based on teams, every resize. - $(window).on('resize', function onResize() { - regenerateWeights(players); - $isotope.isotope('updateSortData').isotope(); - }); - - $politicalSelect.on('change', function() { - var whichState = $(this).val(); - var subset = []; - - if (whichState == 'key') - return $isotope.isotope({ - filter: function() { - if (!isFrontpage) - return true; - - return frontpage = $(this).find('.frontpage').text()==1; - } - }); - else if (whichState == 'team-internet') - return $isotope.isotope({ filter: '.team-internet' }); - else if (whichState == 'team-cable') - return $isotope.isotope({ filter: '.team-cable' }); - else if (whichState == 'undecided') - return $isotope.isotope({ filter: function() { - return !$(this).hasClass('team-internet') && !$(this).hasClass('team-cable') - } }); - else if (whichState == 'all') - return $isotope.isotope({ filter: function() { - return true - } }); - - $isotope.isotope({ - filter: function() { - // `this` is the item element. Get text of element's .number - var state = $(this).find('.state').text(); - // return true to show, false to hide - return state == whichState; - } - }); - - return; - - }); - }); - - function showPlayers(data, showGeneral, state) { - $isotope.html(''); - players = []; - - for (var i in data) { - var player = data[i]; - - player = { - frontpage: +player.gsx$frontpage.$t, - name: player.gsx$name.$t, - organization: player.gsx$organization.$t, - image: '/images/scoreboard/' + player.gsx$imagepleasedontedit.$t, - weight: player.gsx$weight.$t, - team: player.gsx$team.$t || 'undecided', - siteactive: player.gsx$siteactive.$t, - size: player.gsx$size.$t, - meta: player.gsx$meta.$t, - twitter: player.gsx$twitter.$t, - sharetext: player.gsx$sharetext.$t, - subdomain: player.gsx$subdomain.$t, - state: player.gsx$state.$t, - }; - - // Only hand picked players should show on the homepage. - //if (!isFrontpage || player.frontpage === 1 || !showGeneral) { - players.push(player); - //} - } - - players = players.sort(function(a, b) { - var weightA = a.weight, - weightB = b.weight; - - if (a.organization === 'Senate') { - weightA += 10; - } - - if (b.organization === 'Senate') { - weightB += 10; - } - - return weightB - weightA; - }); - - // Create elements - var $els = $('
        '); - for (var i in players) { - var player = players[i]; - var $el = $.template('#player', player); - - if (player.twitter) { - var shareText; - if (player.sharetext) { - shareText = encodeURIComponent(player.sharetext); - } else { - shareText = '.@' + player.twitter + '%20whose%20side%20are%20you%20on?%20%23TeamInternet%20or%20%23TeamCable?%20Ask%20the%20FCC%20for%20Title%20II%20reclassification!'; - } - - var url = 'https://twitter.com/intent/tweet?text=' + shareText + '&url=https://www.battleforthenet.com&related=fightfortheftr'; - - var $twitterOverlay = $.template('#twitter-overlay', { - twitter: url - }); - - $el.append($twitterOverlay); - } - - $el.data('meta', player); - - $el.appendTo($els); - } - $els.appendTo($isotope); - - // Sort based on teams. - regenerateWeights(players); - - // Initialize isotope. - $isotope.isotope({ - filter: function() { - - if (!state) - { - - if (!isFrontpage) - return true; - - return frontpage = $(this).find('.frontpage').text() == 1; - } - else - { - var filterState = $(this).find('.state').text(); - // return true to show, false to hide - return filterState == state; - } - }, - getSortData: { - weight: function(el) { - var meta = $(el).data('meta'); - return -meta.weightGenerated || -meta.weight; - } - }, - itemSelector: '.politician', - masonry: { - columnWidth: 150, - isFitWidth: true - }, - sortBy: 'weight' - }); - } - - // Political Scoreboard logic - function regenerateWeights(players) { - var across = Math.floor($('#political').width() / 150), - eligible = Math.ceil(across); - - // We can't sort with less than 3 columns. - if (across < 3) { - return _.each(players, function(player) { - player.weightGenerated = null; - }); - } - - // Create a map, for hit detection. - var map = []; - _.times(across, function() { - map.push([]); - }); - - var position = { - x: 0, - y: 0 - }, - remaining = players.length, - weight = 10000; - - // Add flag to each player. - _.each(players, function(player) { - player.positioned = false; - }); - - - // Place each player. - while (remaining > 0) { - var availability = getSpatialAvailability(position, map); - if (!availability) { - position = movePosition(position, map); - continue; - } - - var player, - query = { - positioned: false - }; - - if (availability === 'small') { - query.size = 'small'; - } - - if (position.x <= eligible - 1) { - query.team = 'team-cable'; - } else if (position.x >= across - eligible) { - query.team = 'team-internet'; - } else { - query.team = 'undecided'; - } - - player = _.findWhere(players, query); - - if (!player) { - if (query.team === 'undecided') { - if ((position.x + 1) / across > .5) { - query.team = 'undecided'; - } else { - query.team = 'team-cable'; - } - } else { - query.team = 'team-internet'; - } - } - - player = _.findWhere(players, query); - - if (!player) { - delete query.team; - player = _.findWhere(players, query); - } - - player.weightGenerated = weight--; - - player.positioned = true; - - map[position.x][position.y] = true; - if (player.size === 'large') { - map[position.x + 1][position.y] = true; - map[position.x][position.y + 1] = true; - map[position.x + 1][position.y + 1] = true; - } - - // printMap(position, map); - - position = movePosition(position, map); - - remaining--; - } - } - - function printMap(position, map) { - var width = map.length; - - console.log(''); - - var msg; - for (var y = 0, yMax = map[0].length; y < yMax; y++) { - msg = y + ': '; - for (var x = 0, xMax = map.length; x < xMax; x++) { - var value = map[x][y]; - - var character; - if (x === position.x && y === position.y) { - character = '* '; - } else if (value === undefined) { - character = '- '; - } else if (value === true) { - character = 'x '; - } - - msg += character; - } - console.log(msg + '\n'); - } - } - - function movePosition(position, map) { - position.x++; - - if (position.x === map.length) { - position.x = 0; - position.y++; - } - - return position; - } - - function getSpatialAvailability(position, map) { - if (map[position.x][position.y]) { - return false; - } - - if (!map[position.x][position.y + 1] && - map[position.x + 1] && - !map[position.x + 1][position.y] && - !map[position.x + 1][position.y + 1] - ) { - return 'large'; - } - - return 'small'; - } -}); diff --git a/js/tools.js b/js/tools.js deleted file mode 100755 index c5fdf9d79..000000000 --- a/js/tools.js +++ /dev/null @@ -1,56 +0,0 @@ -(function($) { - - $('#subscribe').click(function(e) { - e.preventDefault(); - - $.ajax('https://action.fightforthefuture.org/api/movements/1/salsa', { - type: 'POST', - data: { - 'csrfmiddlewaretoken': 'Hs3unIicI0ztSKnejzAn8CmPS4YnBCpW', - 'member[language]': 'en', - 'salsa': true, - 'language_id': 'en', - 'member[movement_id]': 1, - 'member[user_agent]': '', - 'member[ip_address]': '', - 'guard': '', - 'action': 1, - 'hp_enabled': true, - 'hp_disabled': false, - 'member[first_name]': '', - 'member[email]': $('#email').val(), - 'member[street_address]': '', - 'member[postcode]': '', - 'tag': 'battle-for-the-net-dev' - }, - complete: function(xhr, status) { - $('.signup').css('visibility', 'hidden'); - $('.signup-thanks').show(); - } - }); - - }); - /* - - */ - // Slide to new hash targets. - $('a').each(function(i) { - if (!$(this).attr('href') || !$(this).attr('href').match(/^#/)) { - return; - } - $(this).on('click', function(e) { - if (this.href.match(/#home/)) { - return; - } - - e.preventDefault(); - - var target = '#' + this.href.split('#')[1]; - $(target).velocity('scroll', {duration: 777, offset: -66}, function() { - location.hash = target; - }); - }); - }); - - -})(jQuery); diff --git a/js/vendor/isotope.pkgd.js b/js/vendor/isotope.pkgd.js deleted file mode 100644 index 135a6da65..000000000 --- a/js/vendor/isotope.pkgd.js +++ /dev/null @@ -1,3890 +0,0 @@ -/*! - * Isotope PACKAGED v2.0.0 - * Filter & sort magical layouts - * http://isotope.metafizzy.co - */ - -/** - * Bridget makes jQuery widgets - * v1.0.1 - */ - -( function( window ) { - - - -// -------------------------- utils -------------------------- // - -var slice = Array.prototype.slice; - -function noop() {} - -// -------------------------- definition -------------------------- // - -function defineBridget( $ ) { - -// bail if no jQuery -if ( !$ ) { - return; -} - -// -------------------------- addOptionMethod -------------------------- // - -/** - * adds option method -> $().plugin('option', {...}) - * @param {Function} PluginClass - constructor class - */ -function addOptionMethod( PluginClass ) { - // don't overwrite original option method - if ( PluginClass.prototype.option ) { - return; - } - - // option setter - PluginClass.prototype.option = function( opts ) { - // bail out if not an object - if ( !$.isPlainObject( opts ) ){ - return; - } - this.options = $.extend( true, this.options, opts ); - }; -} - - -// -------------------------- plugin bridge -------------------------- // - -// helper function for logging errors -// $.error breaks jQuery chaining -var logError = typeof console === 'undefined' ? noop : - function( message ) { - console.error( message ); - }; - -/** - * jQuery plugin bridge, access methods like $elem.plugin('method') - * @param {String} namespace - plugin name - * @param {Function} PluginClass - constructor class - */ -function bridge( namespace, PluginClass ) { - // add to jQuery fn namespace - $.fn[ namespace ] = function( options ) { - if ( typeof options === 'string' ) { - // call plugin method when first argument is a string - // get arguments for method - var args = slice.call( arguments, 1 ); - - for ( var i=0, len = this.length; i < len; i++ ) { - var elem = this[i]; - var instance = $.data( elem, namespace ); - if ( !instance ) { - logError( "cannot call methods on " + namespace + " prior to initialization; " + - "attempted to call '" + options + "'" ); - continue; - } - if ( !$.isFunction( instance[options] ) || options.charAt(0) === '_' ) { - logError( "no such method '" + options + "' for " + namespace + " instance" ); - continue; - } - - // trigger method with arguments - var returnValue = instance[ options ].apply( instance, args ); - - // break look and return first value if provided - if ( returnValue !== undefined ) { - return returnValue; - } - } - // return this if no return value - return this; - } else { - return this.each( function() { - var instance = $.data( this, namespace ); - if ( instance ) { - // apply options & init - instance.option( options ); - instance._init(); - } else { - // initialize new instance - instance = new PluginClass( this, options ); - $.data( this, namespace, instance ); - } - }); - } - }; - -} - -// -------------------------- bridget -------------------------- // - -/** - * converts a Prototypical class into a proper jQuery plugin - * the class must have a ._init method - * @param {String} namespace - plugin name, used in $().pluginName - * @param {Function} PluginClass - constructor class - */ -$.bridget = function( namespace, PluginClass ) { - addOptionMethod( PluginClass ); - bridge( namespace, PluginClass ); -}; - -return $.bridget; - -} - -// transport -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'jquery-bridget/jquery.bridget',[ 'jquery' ], defineBridget ); -} else { - // get jquery from browser global - defineBridget( window.jQuery ); -} - -})( window ); - -/*! - * eventie v1.0.5 - * event binding helper - * eventie.bind( elem, 'click', myFn ) - * eventie.unbind( elem, 'click', myFn ) - * MIT license - */ - -/*jshint browser: true, undef: true, unused: true */ -/*global define: false, module: false */ - -( function( window ) { - - - -var docElem = document.documentElement; - -var bind = function() {}; - -function getIEEvent( obj ) { - var event = window.event; - // add event.target - event.target = event.target || event.srcElement || obj; - return event; -} - -if ( docElem.addEventListener ) { - bind = function( obj, type, fn ) { - obj.addEventListener( type, fn, false ); - }; -} else if ( docElem.attachEvent ) { - bind = function( obj, type, fn ) { - obj[ type + fn ] = fn.handleEvent ? - function() { - var event = getIEEvent( obj ); - fn.handleEvent.call( fn, event ); - } : - function() { - var event = getIEEvent( obj ); - fn.call( obj, event ); - }; - obj.attachEvent( "on" + type, obj[ type + fn ] ); - }; -} - -var unbind = function() {}; - -if ( docElem.removeEventListener ) { - unbind = function( obj, type, fn ) { - obj.removeEventListener( type, fn, false ); - }; -} else if ( docElem.detachEvent ) { - unbind = function( obj, type, fn ) { - obj.detachEvent( "on" + type, obj[ type + fn ] ); - try { - delete obj[ type + fn ]; - } catch ( err ) { - // can't delete window object properties - obj[ type + fn ] = undefined; - } - }; -} - -var eventie = { - bind: bind, - unbind: unbind -}; - -// ----- module definition ----- // - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'eventie/eventie',eventie ); -} else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = eventie; -} else { - // browser global - window.eventie = eventie; -} - -})( this ); - -/*! - * docReady - * Cross browser DOMContentLoaded event emitter - */ - -/*jshint browser: true, strict: true, undef: true, unused: true*/ -/*global define: false */ - -( function( window ) { - - - -var document = window.document; -// collection of functions to be triggered on ready -var queue = []; - -function docReady( fn ) { - // throw out non-functions - if ( typeof fn !== 'function' ) { - return; - } - - if ( docReady.isReady ) { - // ready now, hit it - fn(); - } else { - // queue function when ready - queue.push( fn ); - } -} - -docReady.isReady = false; - -// triggered on various doc ready events -function init( event ) { - // bail if IE8 document is not ready just yet - var isIE8NotReady = event.type === 'readystatechange' && document.readyState !== 'complete'; - if ( docReady.isReady || isIE8NotReady ) { - return; - } - docReady.isReady = true; - - // process queue - for ( var i=0, len = queue.length; i < len; i++ ) { - var fn = queue[i]; - fn(); - } -} - -function defineDocReady( eventie ) { - eventie.bind( document, 'DOMContentLoaded', init ); - eventie.bind( document, 'readystatechange', init ); - eventie.bind( window, 'load', init ); - - return docReady; -} - -// transport -if ( typeof define === 'function' && define.amd ) { - // AMD - // if RequireJS, then doc is already ready - docReady.isReady = typeof requirejs === 'function'; - define( 'doc-ready/doc-ready',[ 'eventie/eventie' ], defineDocReady ); -} else { - // browser global - window.docReady = defineDocReady( window.eventie ); -} - -})( this ); - -/*! - * EventEmitter v4.2.7 - git.io/ee - * Oliver Caldwell - * MIT license - * @preserve - */ - -(function () { - - - /** - * Class for managing events. - * Can be extended to provide event functionality in other classes. - * - * @class EventEmitter Manages event registering and emitting. - */ - function EventEmitter() {} - - // Shortcuts to improve speed and size - var proto = EventEmitter.prototype; - var exports = this; - var originalGlobalValue = exports.EventEmitter; - - /** - * Finds the index of the listener for the event in it's storage array. - * - * @param {Function[]} listeners Array of listeners to search through. - * @param {Function} listener Method to look for. - * @return {Number} Index of the specified listener, -1 if not found - * @api private - */ - function indexOfListener(listeners, listener) { - var i = listeners.length; - while (i--) { - if (listeners[i].listener === listener) { - return i; - } - } - - return -1; - } - - /** - * Alias a method while keeping the context correct, to allow for overwriting of target method. - * - * @param {String} name The name of the target method. - * @return {Function} The aliased method - * @api private - */ - function alias(name) { - return function aliasClosure() { - return this[name].apply(this, arguments); - }; - } - - /** - * Returns the listener array for the specified event. - * Will initialise the event object and listener arrays if required. - * Will return an object if you use a regex search. The object contains keys for each matched event. So /ba[rz]/ might return an object containing bar and baz. But only if you have either defined them with defineEvent or added some listeners to them. - * Each property in the object response is an array of listener functions. - * - * @param {String|RegExp} evt Name of the event to return the listeners from. - * @return {Function[]|Object} All listener functions for the event. - */ - proto.getListeners = function getListeners(evt) { - var events = this._getEvents(); - var response; - var key; - - // Return a concatenated array of all matching events if - // the selector is a regular expression. - if (evt instanceof RegExp) { - response = {}; - for (key in events) { - if (events.hasOwnProperty(key) && evt.test(key)) { - response[key] = events[key]; - } - } - } - else { - response = events[evt] || (events[evt] = []); - } - - return response; - }; - - /** - * Takes a list of listener objects and flattens it into a list of listener functions. - * - * @param {Object[]} listeners Raw listener objects. - * @return {Function[]} Just the listener functions. - */ - proto.flattenListeners = function flattenListeners(listeners) { - var flatListeners = []; - var i; - - for (i = 0; i < listeners.length; i += 1) { - flatListeners.push(listeners[i].listener); - } - - return flatListeners; - }; - - /** - * Fetches the requested listeners via getListeners but will always return the results inside an object. This is mainly for internal use but others may find it useful. - * - * @param {String|RegExp} evt Name of the event to return the listeners from. - * @return {Object} All listener functions for an event in an object. - */ - proto.getListenersAsObject = function getListenersAsObject(evt) { - var listeners = this.getListeners(evt); - var response; - - if (listeners instanceof Array) { - response = {}; - response[evt] = listeners; - } - - return response || listeners; - }; - - /** - * Adds a listener function to the specified event. - * The listener will not be added if it is a duplicate. - * If the listener returns true then it will be removed after it is called. - * If you pass a regular expression as the event name then the listener will be added to all events that match it. - * - * @param {String|RegExp} evt Name of the event to attach the listener to. - * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.addListener = function addListener(evt, listener) { - var listeners = this.getListenersAsObject(evt); - var listenerIsWrapped = typeof listener === 'object'; - var key; - - for (key in listeners) { - if (listeners.hasOwnProperty(key) && indexOfListener(listeners[key], listener) === -1) { - listeners[key].push(listenerIsWrapped ? listener : { - listener: listener, - once: false - }); - } - } - - return this; - }; - - /** - * Alias of addListener - */ - proto.on = alias('addListener'); - - /** - * Semi-alias of addListener. It will add a listener that will be - * automatically removed after it's first execution. - * - * @param {String|RegExp} evt Name of the event to attach the listener to. - * @param {Function} listener Method to be called when the event is emitted. If the function returns true then it will be removed after calling. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.addOnceListener = function addOnceListener(evt, listener) { - return this.addListener(evt, { - listener: listener, - once: true - }); - }; - - /** - * Alias of addOnceListener. - */ - proto.once = alias('addOnceListener'); - - /** - * Defines an event name. This is required if you want to use a regex to add a listener to multiple events at once. If you don't do this then how do you expect it to know what event to add to? Should it just add to every possible match for a regex? No. That is scary and bad. - * You need to tell it what event names should be matched by a regex. - * - * @param {String} evt Name of the event to create. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.defineEvent = function defineEvent(evt) { - this.getListeners(evt); - return this; - }; - - /** - * Uses defineEvent to define multiple events. - * - * @param {String[]} evts An array of event names to define. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.defineEvents = function defineEvents(evts) { - for (var i = 0; i < evts.length; i += 1) { - this.defineEvent(evts[i]); - } - return this; - }; - - /** - * Removes a listener function from the specified event. - * When passed a regular expression as the event name, it will remove the listener from all events that match it. - * - * @param {String|RegExp} evt Name of the event to remove the listener from. - * @param {Function} listener Method to remove from the event. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.removeListener = function removeListener(evt, listener) { - var listeners = this.getListenersAsObject(evt); - var index; - var key; - - for (key in listeners) { - if (listeners.hasOwnProperty(key)) { - index = indexOfListener(listeners[key], listener); - - if (index !== -1) { - listeners[key].splice(index, 1); - } - } - } - - return this; - }; - - /** - * Alias of removeListener - */ - proto.off = alias('removeListener'); - - /** - * Adds listeners in bulk using the manipulateListeners method. - * If you pass an object as the second argument you can add to multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. You can also pass it an event name and an array of listeners to be added. - * You can also pass it a regular expression to add the array of listeners to all events that match it. - * Yeah, this function does quite a bit. That's probably a bad thing. - * - * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add to multiple events at once. - * @param {Function[]} [listeners] An optional array of listener functions to add. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.addListeners = function addListeners(evt, listeners) { - // Pass through to manipulateListeners - return this.manipulateListeners(false, evt, listeners); - }; - - /** - * Removes listeners in bulk using the manipulateListeners method. - * If you pass an object as the second argument you can remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. - * You can also pass it an event name and an array of listeners to be removed. - * You can also pass it a regular expression to remove the listeners from all events that match it. - * - * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to remove from multiple events at once. - * @param {Function[]} [listeners] An optional array of listener functions to remove. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.removeListeners = function removeListeners(evt, listeners) { - // Pass through to manipulateListeners - return this.manipulateListeners(true, evt, listeners); - }; - - /** - * Edits listeners in bulk. The addListeners and removeListeners methods both use this to do their job. You should really use those instead, this is a little lower level. - * The first argument will determine if the listeners are removed (true) or added (false). - * If you pass an object as the second argument you can add/remove from multiple events at once. The object should contain key value pairs of events and listeners or listener arrays. - * You can also pass it an event name and an array of listeners to be added/removed. - * You can also pass it a regular expression to manipulate the listeners of all events that match it. - * - * @param {Boolean} remove True if you want to remove listeners, false if you want to add. - * @param {String|Object|RegExp} evt An event name if you will pass an array of listeners next. An object if you wish to add/remove from multiple events at once. - * @param {Function[]} [listeners] An optional array of listener functions to add/remove. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.manipulateListeners = function manipulateListeners(remove, evt, listeners) { - var i; - var value; - var single = remove ? this.removeListener : this.addListener; - var multiple = remove ? this.removeListeners : this.addListeners; - - // If evt is an object then pass each of it's properties to this method - if (typeof evt === 'object' && !(evt instanceof RegExp)) { - for (i in evt) { - if (evt.hasOwnProperty(i) && (value = evt[i])) { - // Pass the single listener straight through to the singular method - if (typeof value === 'function') { - single.call(this, i, value); - } - else { - // Otherwise pass back to the multiple function - multiple.call(this, i, value); - } - } - } - } - else { - // So evt must be a string - // And listeners must be an array of listeners - // Loop over it and pass each one to the multiple method - i = listeners.length; - while (i--) { - single.call(this, evt, listeners[i]); - } - } - - return this; - }; - - /** - * Removes all listeners from a specified event. - * If you do not specify an event then all listeners will be removed. - * That means every event will be emptied. - * You can also pass a regex to remove all events that match it. - * - * @param {String|RegExp} [evt] Optional name of the event to remove all listeners for. Will remove from every event if not passed. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.removeEvent = function removeEvent(evt) { - var type = typeof evt; - var events = this._getEvents(); - var key; - - // Remove different things depending on the state of evt - if (type === 'string') { - // Remove all listeners for the specified event - delete events[evt]; - } - else if (evt instanceof RegExp) { - // Remove all events matching the regex. - for (key in events) { - if (events.hasOwnProperty(key) && evt.test(key)) { - delete events[key]; - } - } - } - else { - // Remove all listeners in all events - delete this._events; - } - - return this; - }; - - /** - * Alias of removeEvent. - * - * Added to mirror the node API. - */ - proto.removeAllListeners = alias('removeEvent'); - - /** - * Emits an event of your choice. - * When emitted, every listener attached to that event will be executed. - * If you pass the optional argument array then those arguments will be passed to every listener upon execution. - * Because it uses `apply`, your array of arguments will be passed as if you wrote them out separately. - * So they will not arrive within the array on the other side, they will be separate. - * You can also pass a regular expression to emit to all events that match it. - * - * @param {String|RegExp} evt Name of the event to emit and execute listeners for. - * @param {Array} [args] Optional array of arguments to be passed to each listener. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.emitEvent = function emitEvent(evt, args) { - var listeners = this.getListenersAsObject(evt); - var listener; - var i; - var key; - var response; - - for (key in listeners) { - if (listeners.hasOwnProperty(key)) { - i = listeners[key].length; - - while (i--) { - // If the listener returns true then it shall be removed from the event - // The function is executed either with a basic call or an apply if there is an args array - listener = listeners[key][i]; - - if (listener.once === true) { - this.removeListener(evt, listener.listener); - } - - response = listener.listener.apply(this, args || []); - - if (response === this._getOnceReturnValue()) { - this.removeListener(evt, listener.listener); - } - } - } - } - - return this; - }; - - /** - * Alias of emitEvent - */ - proto.trigger = alias('emitEvent'); - - /** - * Subtly different from emitEvent in that it will pass its arguments on to the listeners, as opposed to taking a single array of arguments to pass on. - * As with emitEvent, you can pass a regex in place of the event name to emit to all events that match it. - * - * @param {String|RegExp} evt Name of the event to emit and execute listeners for. - * @param {...*} Optional additional arguments to be passed to each listener. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.emit = function emit(evt) { - var args = Array.prototype.slice.call(arguments, 1); - return this.emitEvent(evt, args); - }; - - /** - * Sets the current value to check against when executing listeners. If a - * listeners return value matches the one set here then it will be removed - * after execution. This value defaults to true. - * - * @param {*} value The new value to check for when executing listeners. - * @return {Object} Current instance of EventEmitter for chaining. - */ - proto.setOnceReturnValue = function setOnceReturnValue(value) { - this._onceReturnValue = value; - return this; - }; - - /** - * Fetches the current value to check against when executing listeners. If - * the listeners return value matches this one then it should be removed - * automatically. It will return true by default. - * - * @return {*|Boolean} The current value to check for or the default, true. - * @api private - */ - proto._getOnceReturnValue = function _getOnceReturnValue() { - if (this.hasOwnProperty('_onceReturnValue')) { - return this._onceReturnValue; - } - else { - return true; - } - }; - - /** - * Fetches the events object and creates one if required. - * - * @return {Object} The events storage object. - * @api private - */ - proto._getEvents = function _getEvents() { - return this._events || (this._events = {}); - }; - - /** - * Reverts the global {@link EventEmitter} to its previous value and returns a reference to this version. - * - * @return {Function} Non conflicting EventEmitter class. - */ - EventEmitter.noConflict = function noConflict() { - exports.EventEmitter = originalGlobalValue; - return EventEmitter; - }; - - // Expose the class either via AMD, CommonJS or the global object - if (typeof define === 'function' && define.amd) { - define('eventEmitter/EventEmitter',[],function () { - return EventEmitter; - }); - } - else if (typeof module === 'object' && module.exports){ - module.exports = EventEmitter; - } - else { - this.EventEmitter = EventEmitter; - } -}.call(this)); - -/*! - * getStyleProperty v1.0.3 - * original by kangax - * http://perfectionkills.com/feature-testing-css-properties/ - */ - -/*jshint browser: true, strict: true, undef: true */ -/*global define: false, exports: false, module: false */ - -( function( window ) { - - - -var prefixes = 'Webkit Moz ms Ms O'.split(' '); -var docElemStyle = document.documentElement.style; - -function getStyleProperty( propName ) { - if ( !propName ) { - return; - } - - // test standard property first - if ( typeof docElemStyle[ propName ] === 'string' ) { - return propName; - } - - // capitalize - propName = propName.charAt(0).toUpperCase() + propName.slice(1); - - // test vendor specific properties - var prefixed; - for ( var i=0, len = prefixes.length; i < len; i++ ) { - prefixed = prefixes[i] + propName; - if ( typeof docElemStyle[ prefixed ] === 'string' ) { - return prefixed; - } - } -} - -// transport -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'get-style-property/get-style-property',[],function() { - return getStyleProperty; - }); -} else if ( typeof exports === 'object' ) { - // CommonJS for Component - module.exports = getStyleProperty; -} else { - // browser global - window.getStyleProperty = getStyleProperty; -} - -})( window ); - -/** - * getSize v1.1.7 - * measure size of elements - */ - -/*jshint browser: true, strict: true, undef: true, unused: true */ -/*global define: false, exports: false, require: false, module: false */ - -( function( window, undefined ) { - - - -// -------------------------- helpers -------------------------- // - -var getComputedStyle = window.getComputedStyle; -var getStyle = getComputedStyle ? - function( elem ) { - return getComputedStyle( elem, null ); - } : - function( elem ) { - return elem.currentStyle; - }; - -// get a number from a string, not a percentage -function getStyleSize( value ) { - var num = parseFloat( value ); - // not a percent like '100%', and a number - var isValid = value.indexOf('%') === -1 && !isNaN( num ); - return isValid && num; -} - -// -------------------------- measurements -------------------------- // - -var measurements = [ - 'paddingLeft', - 'paddingRight', - 'paddingTop', - 'paddingBottom', - 'marginLeft', - 'marginRight', - 'marginTop', - 'marginBottom', - 'borderLeftWidth', - 'borderRightWidth', - 'borderTopWidth', - 'borderBottomWidth' -]; - -function getZeroSize() { - var size = { - width: 0, - height: 0, - innerWidth: 0, - innerHeight: 0, - outerWidth: 0, - outerHeight: 0 - }; - for ( var i=0, len = measurements.length; i < len; i++ ) { - var measurement = measurements[i]; - size[ measurement ] = 0; - } - return size; -} - - - -function defineGetSize( getStyleProperty ) { - -// -------------------------- box sizing -------------------------- // - -var boxSizingProp = getStyleProperty('boxSizing'); -var isBoxSizeOuter; - -/** - * WebKit measures the outer-width on style.width on border-box elems - * IE & Firefox measures the inner-width - */ -( function() { - if ( !boxSizingProp ) { - return; - } - - var div = document.createElement('div'); - div.style.width = '200px'; - div.style.padding = '1px 2px 3px 4px'; - div.style.borderStyle = 'solid'; - div.style.borderWidth = '1px 2px 3px 4px'; - div.style[ boxSizingProp ] = 'border-box'; - - var body = document.body || document.documentElement; - body.appendChild( div ); - var style = getStyle( div ); - - isBoxSizeOuter = getStyleSize( style.width ) === 200; - body.removeChild( div ); -})(); - - -// -------------------------- getSize -------------------------- // - -function getSize( elem ) { - // use querySeletor if elem is string - if ( typeof elem === 'string' ) { - elem = document.querySelector( elem ); - } - - // do not proceed on non-objects - if ( !elem || typeof elem !== 'object' || !elem.nodeType ) { - return; - } - - var style = getStyle( elem ); - - // if hidden, everything is 0 - if ( style.display === 'none' ) { - return getZeroSize(); - } - - var size = {}; - size.width = elem.offsetWidth; - size.height = elem.offsetHeight; - - var isBorderBox = size.isBorderBox = !!( boxSizingProp && - style[ boxSizingProp ] && style[ boxSizingProp ] === 'border-box' ); - - // get all measurements - for ( var i=0, len = measurements.length; i < len; i++ ) { - var measurement = measurements[i]; - var value = style[ measurement ]; - value = mungeNonPixel( elem, value ); - var num = parseFloat( value ); - // any 'auto', 'medium' value will be 0 - size[ measurement ] = !isNaN( num ) ? num : 0; - } - - var paddingWidth = size.paddingLeft + size.paddingRight; - var paddingHeight = size.paddingTop + size.paddingBottom; - var marginWidth = size.marginLeft + size.marginRight; - var marginHeight = size.marginTop + size.marginBottom; - var borderWidth = size.borderLeftWidth + size.borderRightWidth; - var borderHeight = size.borderTopWidth + size.borderBottomWidth; - - var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; - - // overwrite width and height if we can get it from style - var styleWidth = getStyleSize( style.width ); - if ( styleWidth !== false ) { - size.width = styleWidth + - // add padding and border unless it's already including it - ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth ); - } - - var styleHeight = getStyleSize( style.height ); - if ( styleHeight !== false ) { - size.height = styleHeight + - // add padding and border unless it's already including it - ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight ); - } - - size.innerWidth = size.width - ( paddingWidth + borderWidth ); - size.innerHeight = size.height - ( paddingHeight + borderHeight ); - - size.outerWidth = size.width + marginWidth; - size.outerHeight = size.height + marginHeight; - - return size; -} - -// IE8 returns percent values, not pixels -// taken from jQuery's curCSS -function mungeNonPixel( elem, value ) { - // IE8 and has percent value - if ( getComputedStyle || value.indexOf('%') === -1 ) { - return value; - } - var style = elem.style; - // Remember the original values - var left = style.left; - var rs = elem.runtimeStyle; - var rsLeft = rs && rs.left; - - // Put in the new values to get a computed value out - if ( rsLeft ) { - rs.left = elem.currentStyle.left; - } - style.left = value; - value = style.pixelLeft; - - // Revert the changed values - style.left = left; - if ( rsLeft ) { - rs.left = rsLeft; - } - - return value; -} - -return getSize; - -} - -// transport -if ( typeof define === 'function' && define.amd ) { - // AMD for RequireJS - define( 'get-size/get-size',[ 'get-style-property/get-style-property' ], defineGetSize ); -} else if ( typeof exports === 'object' ) { - // CommonJS for Component - module.exports = defineGetSize( require('get-style-property') ); -} else { - // browser global - window.getSize = defineGetSize( window.getStyleProperty ); -} - -})( window ); - -/** - * matchesSelector helper v1.0.1 - * - * @name matchesSelector - * @param {Element} elem - * @param {String} selector - */ - -/*jshint browser: true, strict: true, undef: true, unused: true */ -/*global define: false */ - -( function( global, ElemProto ) { - - - - var matchesMethod = ( function() { - // check un-prefixed - if ( ElemProto.matchesSelector ) { - return 'matchesSelector'; - } - // check vendor prefixes - var prefixes = [ 'webkit', 'moz', 'ms', 'o' ]; - - for ( var i=0, len = prefixes.length; i < len; i++ ) { - var prefix = prefixes[i]; - var method = prefix + 'MatchesSelector'; - if ( ElemProto[ method ] ) { - return method; - } - } - })(); - - // ----- match ----- // - - function match( elem, selector ) { - return elem[ matchesMethod ]( selector ); - } - - // ----- appendToFragment ----- // - - function checkParent( elem ) { - // not needed if already has parent - if ( elem.parentNode ) { - return; - } - var fragment = document.createDocumentFragment(); - fragment.appendChild( elem ); - } - - // ----- query ----- // - - // fall back to using QSA - // thx @jonathantneal https://gist.github.com/3062955 - function query( elem, selector ) { - // append to fragment if no parent - checkParent( elem ); - - // match elem with all selected elems of parent - var elems = elem.parentNode.querySelectorAll( selector ); - for ( var i=0, len = elems.length; i < len; i++ ) { - // return true if match - if ( elems[i] === elem ) { - return true; - } - } - // otherwise return false - return false; - } - - // ----- matchChild ----- // - - function matchChild( elem, selector ) { - checkParent( elem ); - return match( elem, selector ); - } - - // ----- matchesSelector ----- // - - var matchesSelector; - - if ( matchesMethod ) { - // IE9 supports matchesSelector, but doesn't work on orphaned elems - // check for that - var div = document.createElement('div'); - var supportsOrphans = match( div, 'div' ); - matchesSelector = supportsOrphans ? match : matchChild; - } else { - matchesSelector = query; - } - - // transport - if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'matches-selector/matches-selector',[],function() { - return matchesSelector; - }); - } else { - // browser global - window.matchesSelector = matchesSelector; - } - -})( this, Element.prototype ); - -/** - * Outlayer Item - */ - -( function( window ) { - - - -// ----- get style ----- // - -var getComputedStyle = window.getComputedStyle; -var getStyle = getComputedStyle ? - function( elem ) { - return getComputedStyle( elem, null ); - } : - function( elem ) { - return elem.currentStyle; - }; - - -// extend objects -function extend( a, b ) { - for ( var prop in b ) { - a[ prop ] = b[ prop ]; - } - return a; -} - -function isEmptyObj( obj ) { - for ( var prop in obj ) { - return false; - } - prop = null; - return true; -} - -// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/ -function toDash( str ) { - return str.replace( /([A-Z])/g, function( $1 ){ - return '-' + $1.toLowerCase(); - }); -} - -// -------------------------- Outlayer definition -------------------------- // - -function outlayerItemDefinition( EventEmitter, getSize, getStyleProperty ) { - -// -------------------------- CSS3 support -------------------------- // - -var transitionProperty = getStyleProperty('transition'); -var transformProperty = getStyleProperty('transform'); -var supportsCSS3 = transitionProperty && transformProperty; -var is3d = !!getStyleProperty('perspective'); - -var transitionEndEvent = { - WebkitTransition: 'webkitTransitionEnd', - MozTransition: 'transitionend', - OTransition: 'otransitionend', - transition: 'transitionend' -}[ transitionProperty ]; - -// properties that could have vendor prefix -var prefixableProperties = [ - 'transform', - 'transition', - 'transitionDuration', - 'transitionProperty' -]; - -// cache all vendor properties -var vendorProperties = ( function() { - var cache = {}; - for ( var i=0, len = prefixableProperties.length; i < len; i++ ) { - var prop = prefixableProperties[i]; - var supportedProp = getStyleProperty( prop ); - if ( supportedProp && supportedProp !== prop ) { - cache[ prop ] = supportedProp; - } - } - return cache; -})(); - -// -------------------------- Item -------------------------- // - -function Item( element, layout ) { - if ( !element ) { - return; - } - - this.element = element; - // parent layout class, i.e. Masonry, Isotope, or Packery - this.layout = layout; - this.position = { - x: 0, - y: 0 - }; - - this._create(); -} - -// inherit EventEmitter -extend( Item.prototype, EventEmitter.prototype ); - -Item.prototype._create = function() { - // transition objects - this._transn = { - ingProperties: {}, - clean: {}, - onEnd: {} - }; - - this.css({ - position: 'absolute' - }); -}; - -// trigger specified handler for event type -Item.prototype.handleEvent = function( event ) { - var method = 'on' + event.type; - if ( this[ method ] ) { - this[ method ]( event ); - } -}; - -Item.prototype.getSize = function() { - this.size = getSize( this.element ); -}; - -/** - * apply CSS styles to element - * @param {Object} style - */ -Item.prototype.css = function( style ) { - var elemStyle = this.element.style; - - for ( var prop in style ) { - // use vendor property if available - var supportedProp = vendorProperties[ prop ] || prop; - elemStyle[ supportedProp ] = style[ prop ]; - } -}; - - // measure position, and sets it -Item.prototype.getPosition = function() { - var style = getStyle( this.element ); - var layoutOptions = this.layout.options; - var isOriginLeft = layoutOptions.isOriginLeft; - var isOriginTop = layoutOptions.isOriginTop; - var x = parseInt( style[ isOriginLeft ? 'left' : 'right' ], 10 ); - var y = parseInt( style[ isOriginTop ? 'top' : 'bottom' ], 10 ); - - // clean up 'auto' or other non-integer values - x = isNaN( x ) ? 0 : x; - y = isNaN( y ) ? 0 : y; - // remove padding from measurement - var layoutSize = this.layout.size; - x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight; - y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom; - - this.position.x = x; - this.position.y = y; -}; - -// set settled position, apply padding -Item.prototype.layoutPosition = function() { - var layoutSize = this.layout.size; - var layoutOptions = this.layout.options; - var style = {}; - - if ( layoutOptions.isOriginLeft ) { - style.left = ( this.position.x + layoutSize.paddingLeft ) + 'px'; - // reset other property - style.right = ''; - } else { - style.right = ( this.position.x + layoutSize.paddingRight ) + 'px'; - style.left = ''; - } - - if ( layoutOptions.isOriginTop ) { - style.top = ( this.position.y + layoutSize.paddingTop ) + 'px'; - style.bottom = ''; - } else { - style.bottom = ( this.position.y + layoutSize.paddingBottom ) + 'px'; - style.top = ''; - } - - this.css( style ); - this.emitEvent( 'layout', [ this ] ); -}; - - -// transform translate function -var translate = is3d ? - function( x, y ) { - return 'translate3d(' + x + 'px, ' + y + 'px, 0)'; - } : - function( x, y ) { - return 'translate(' + x + 'px, ' + y + 'px)'; - }; - - -Item.prototype._transitionTo = function( x, y ) { - this.getPosition(); - // get current x & y from top/left - var curX = this.position.x; - var curY = this.position.y; - - var compareX = parseInt( x, 10 ); - var compareY = parseInt( y, 10 ); - var didNotMove = compareX === this.position.x && compareY === this.position.y; - - // save end position - this.setPosition( x, y ); - - // if did not move and not transitioning, just go to layout - if ( didNotMove && !this.isTransitioning ) { - this.layoutPosition(); - return; - } - - var transX = x - curX; - var transY = y - curY; - var transitionStyle = {}; - // flip cooridinates if origin on right or bottom - var layoutOptions = this.layout.options; - transX = layoutOptions.isOriginLeft ? transX : -transX; - transY = layoutOptions.isOriginTop ? transY : -transY; - transitionStyle.transform = translate( transX, transY ); - - this.transition({ - to: transitionStyle, - onTransitionEnd: { - transform: this.layoutPosition - }, - isCleaning: true - }); -}; - -// non transition + transform support -Item.prototype.goTo = function( x, y ) { - this.setPosition( x, y ); - this.layoutPosition(); -}; - -// use transition and transforms if supported -Item.prototype.moveTo = supportsCSS3 ? - Item.prototype._transitionTo : Item.prototype.goTo; - -Item.prototype.setPosition = function( x, y ) { - this.position.x = parseInt( x, 10 ); - this.position.y = parseInt( y, 10 ); -}; - -// ----- transition ----- // - -/** - * @param {Object} style - CSS - * @param {Function} onTransitionEnd - */ - -// non transition, just trigger callback -Item.prototype._nonTransition = function( args ) { - this.css( args.to ); - if ( args.isCleaning ) { - this._removeStyles( args.to ); - } - for ( var prop in args.onTransitionEnd ) { - args.onTransitionEnd[ prop ].call( this ); - } -}; - -/** - * proper transition - * @param {Object} args - arguments - * @param {Object} to - style to transition to - * @param {Object} from - style to start transition from - * @param {Boolean} isCleaning - removes transition styles after transition - * @param {Function} onTransitionEnd - callback - */ -Item.prototype._transition = function( args ) { - // redirect to nonTransition if no transition duration - if ( !parseFloat( this.layout.options.transitionDuration ) ) { - this._nonTransition( args ); - return; - } - - var _transition = this._transn; - // keep track of onTransitionEnd callback by css property - for ( var prop in args.onTransitionEnd ) { - _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ]; - } - // keep track of properties that are transitioning - for ( prop in args.to ) { - _transition.ingProperties[ prop ] = true; - // keep track of properties to clean up when transition is done - if ( args.isCleaning ) { - _transition.clean[ prop ] = true; - } - } - - // set from styles - if ( args.from ) { - this.css( args.from ); - // force redraw. http://blog.alexmaccaw.com/css-transitions - var h = this.element.offsetHeight; - // hack for JSHint to hush about unused var - h = null; - } - // enable transition - this.enableTransition( args.to ); - // set styles that are transitioning - this.css( args.to ); - - this.isTransitioning = true; - -}; - -var itemTransitionProperties = transformProperty && ( toDash( transformProperty ) + - ',opacity' ); - -Item.prototype.enableTransition = function(/* style */) { - // only enable if not already transitioning - // bug in IE10 were re-setting transition style will prevent - // transitionend event from triggering - if ( this.isTransitioning ) { - return; - } - - // make transition: foo, bar, baz from style object - // TODO uncomment this bit when IE10 bug is resolved - // var transitionValue = []; - // for ( var prop in style ) { - // // dash-ify camelCased properties like WebkitTransition - // transitionValue.push( toDash( prop ) ); - // } - // enable transition styles - // HACK always enable transform,opacity for IE10 - this.css({ - transitionProperty: itemTransitionProperties, - transitionDuration: this.layout.options.transitionDuration - }); - // listen for transition end event - this.element.addEventListener( transitionEndEvent, this, false ); -}; - -Item.prototype.transition = Item.prototype[ transitionProperty ? '_transition' : '_nonTransition' ]; - -// ----- events ----- // - -Item.prototype.onwebkitTransitionEnd = function( event ) { - this.ontransitionend( event ); -}; - -Item.prototype.onotransitionend = function( event ) { - this.ontransitionend( event ); -}; - -// properties that I munge to make my life easier -var dashedVendorProperties = { - '-webkit-transform': 'transform', - '-moz-transform': 'transform', - '-o-transform': 'transform' -}; - -Item.prototype.ontransitionend = function( event ) { - // disregard bubbled events from children - if ( event.target !== this.element ) { - return; - } - var _transition = this._transn; - // get property name of transitioned property, convert to prefix-free - var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName; - - // remove property that has completed transitioning - delete _transition.ingProperties[ propertyName ]; - // check if any properties are still transitioning - if ( isEmptyObj( _transition.ingProperties ) ) { - // all properties have completed transitioning - this.disableTransition(); - } - // clean style - if ( propertyName in _transition.clean ) { - // clean up style - this.element.style[ event.propertyName ] = ''; - delete _transition.clean[ propertyName ]; - } - // trigger onTransitionEnd callback - if ( propertyName in _transition.onEnd ) { - var onTransitionEnd = _transition.onEnd[ propertyName ]; - onTransitionEnd.call( this ); - delete _transition.onEnd[ propertyName ]; - } - - this.emitEvent( 'transitionEnd', [ this ] ); -}; - -Item.prototype.disableTransition = function() { - this.removeTransitionStyles(); - this.element.removeEventListener( transitionEndEvent, this, false ); - this.isTransitioning = false; -}; - -/** - * removes style property from element - * @param {Object} style -**/ -Item.prototype._removeStyles = function( style ) { - // clean up transition styles - var cleanStyle = {}; - for ( var prop in style ) { - cleanStyle[ prop ] = ''; - } - this.css( cleanStyle ); -}; - -var cleanTransitionStyle = { - transitionProperty: '', - transitionDuration: '' -}; - -Item.prototype.removeTransitionStyles = function() { - // remove transition - this.css( cleanTransitionStyle ); -}; - -// ----- show/hide/remove ----- // - -// remove element from DOM -Item.prototype.removeElem = function() { - this.element.parentNode.removeChild( this.element ); - this.emitEvent( 'remove', [ this ] ); -}; - -Item.prototype.remove = function() { - // just remove element if no transition support or no transition - if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) { - this.removeElem(); - return; - } - - // start transition - var _this = this; - this.on( 'transitionEnd', function() { - _this.removeElem(); - return true; // bind once - }); - this.hide(); -}; - -Item.prototype.reveal = function() { - delete this.isHidden; - // remove display: none - this.css({ display: '' }); - - var options = this.layout.options; - this.transition({ - from: options.hiddenStyle, - to: options.visibleStyle, - isCleaning: true - }); -}; - -Item.prototype.hide = function() { - // set flag - this.isHidden = true; - // remove display: none - this.css({ display: '' }); - - var options = this.layout.options; - this.transition({ - from: options.visibleStyle, - to: options.hiddenStyle, - // keep hidden stuff hidden - isCleaning: true, - onTransitionEnd: { - opacity: function() { - // check if still hidden - // during transition, item may have been un-hidden - if ( this.isHidden ) { - this.css({ display: 'none' }); - } - } - } - }); -}; - -Item.prototype.destroy = function() { - this.css({ - position: '', - left: '', - right: '', - top: '', - bottom: '', - transition: '', - transform: '' - }); -}; - -return Item; - -} - -// -------------------------- transport -------------------------- // - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'outlayer/item',[ - 'eventEmitter/EventEmitter', - 'get-size/get-size', - 'get-style-property/get-style-property' - ], - outlayerItemDefinition ); -} else { - // browser global - window.Outlayer = {}; - window.Outlayer.Item = outlayerItemDefinition( - window.EventEmitter, - window.getSize, - window.getStyleProperty - ); -} - -})( window ); - -/*! - * Outlayer v1.2.0 - * the brains and guts of a layout library - * MIT license - */ - -( function( window ) { - - - -// ----- vars ----- // - -var document = window.document; -var console = window.console; -var jQuery = window.jQuery; - -var noop = function() {}; - -// -------------------------- helpers -------------------------- // - -// extend objects -function extend( a, b ) { - for ( var prop in b ) { - a[ prop ] = b[ prop ]; - } - return a; -} - - -var objToString = Object.prototype.toString; -function isArray( obj ) { - return objToString.call( obj ) === '[object Array]'; -} - -// turn element or nodeList into an array -function makeArray( obj ) { - var ary = []; - if ( isArray( obj ) ) { - // use object if already an array - ary = obj; - } else if ( obj && typeof obj.length === 'number' ) { - // convert nodeList to array - for ( var i=0, len = obj.length; i < len; i++ ) { - ary.push( obj[i] ); - } - } else { - // array of single index - ary.push( obj ); - } - return ary; -} - -// http://stackoverflow.com/a/384380/182183 -var isElement = ( typeof HTMLElement === 'object' ) ? - function isElementDOM2( obj ) { - return obj instanceof HTMLElement; - } : - function isElementQuirky( obj ) { - return obj && typeof obj === 'object' && - obj.nodeType === 1 && typeof obj.nodeName === 'string'; - }; - -// index of helper cause IE8 -var indexOf = Array.prototype.indexOf ? function( ary, obj ) { - return ary.indexOf( obj ); - } : function( ary, obj ) { - for ( var i=0, len = ary.length; i < len; i++ ) { - if ( ary[i] === obj ) { - return i; - } - } - return -1; - }; - -function removeFrom( obj, ary ) { - var index = indexOf( ary, obj ); - if ( index !== -1 ) { - ary.splice( index, 1 ); - } -} - -// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/ -function toDashed( str ) { - return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) { - return $1 + '-' + $2; - }).toLowerCase(); -} - - -function outlayerDefinition( eventie, docReady, EventEmitter, getSize, matchesSelector, Item ) { - -// -------------------------- Outlayer -------------------------- // - -// globally unique identifiers -var GUID = 0; -// internal store of all Outlayer intances -var instances = {}; - - -/** - * @param {Element, String} element - * @param {Object} options - * @constructor - */ -function Outlayer( element, options ) { - // use element as selector string - if ( typeof element === 'string' ) { - element = document.querySelector( element ); - } - - // bail out if not proper element - if ( !element || !isElement( element ) ) { - if ( console ) { - console.error( 'Bad ' + this.constructor.namespace + ' element: ' + element ); - } - return; - } - - this.element = element; - - // options - this.options = extend( {}, this.constructor.defaults ); - this.option( options ); - - // add id for Outlayer.getFromElement - var id = ++GUID; - this.element.outlayerGUID = id; // expando - instances[ id ] = this; // associate via id - - // kick it off - this._create(); - - if ( this.options.isInitLayout ) { - this.layout(); - } -} - -// settings are for internal use only -Outlayer.namespace = 'outlayer'; -Outlayer.Item = Item; - -// default options -Outlayer.defaults = { - containerStyle: { - position: 'relative' - }, - isInitLayout: true, - isOriginLeft: true, - isOriginTop: true, - isResizeBound: true, - isResizingContainer: true, - // item options - transitionDuration: '0.4s', - hiddenStyle: { - opacity: 0, - transform: 'scale(0.001)' - }, - visibleStyle: { - opacity: 1, - transform: 'scale(1)' - } -}; - -// inherit EventEmitter -extend( Outlayer.prototype, EventEmitter.prototype ); - -/** - * set options - * @param {Object} opts - */ -Outlayer.prototype.option = function( opts ) { - extend( this.options, opts ); -}; - -Outlayer.prototype._create = function() { - // get items from children - this.reloadItems(); - // elements that affect layout, but are not laid out - this.stamps = []; - this.stamp( this.options.stamp ); - // set container style - extend( this.element.style, this.options.containerStyle ); - - // bind resize method - if ( this.options.isResizeBound ) { - this.bindResize(); - } -}; - -// goes through all children again and gets bricks in proper order -Outlayer.prototype.reloadItems = function() { - // collection of item elements - this.items = this._itemize( this.element.children ); -}; - - -/** - * turn elements into Outlayer.Items to be used in layout - * @param {Array or NodeList or HTMLElement} elems - * @returns {Array} items - collection of new Outlayer Items - */ -Outlayer.prototype._itemize = function( elems ) { - - var itemElems = this._filterFindItemElements( elems ); - var Item = this.constructor.Item; - - // create new Outlayer Items for collection - var items = []; - for ( var i=0, len = itemElems.length; i < len; i++ ) { - var elem = itemElems[i]; - var item = new Item( elem, this ); - items.push( item ); - } - - return items; -}; - -/** - * get item elements to be used in layout - * @param {Array or NodeList or HTMLElement} elems - * @returns {Array} items - item elements - */ -Outlayer.prototype._filterFindItemElements = function( elems ) { - // make array of elems - elems = makeArray( elems ); - var itemSelector = this.options.itemSelector; - var itemElems = []; - - for ( var i=0, len = elems.length; i < len; i++ ) { - var elem = elems[i]; - // check that elem is an actual element - if ( !isElement( elem ) ) { - continue; - } - // filter & find items if we have an item selector - if ( itemSelector ) { - // filter siblings - if ( matchesSelector( elem, itemSelector ) ) { - itemElems.push( elem ); - } - // find children - var childElems = elem.querySelectorAll( itemSelector ); - // concat childElems to filterFound array - for ( var j=0, jLen = childElems.length; j < jLen; j++ ) { - itemElems.push( childElems[j] ); - } - } else { - itemElems.push( elem ); - } - } - - return itemElems; -}; - -/** - * getter method for getting item elements - * @returns {Array} elems - collection of item elements - */ -Outlayer.prototype.getItemElements = function() { - var elems = []; - for ( var i=0, len = this.items.length; i < len; i++ ) { - elems.push( this.items[i].element ); - } - return elems; -}; - -// ----- init & layout ----- // - -/** - * lays out all items - */ -Outlayer.prototype.layout = function() { - this._resetLayout(); - this._manageStamps(); - - // don't animate first layout - var isInstant = this.options.isLayoutInstant !== undefined ? - this.options.isLayoutInstant : !this._isLayoutInited; - this.layoutItems( this.items, isInstant ); - - // flag for initalized - this._isLayoutInited = true; -}; - -// _init is alias for layout -Outlayer.prototype._init = Outlayer.prototype.layout; - -/** - * logic before any new layout - */ -Outlayer.prototype._resetLayout = function() { - this.getSize(); -}; - - -Outlayer.prototype.getSize = function() { - this.size = getSize( this.element ); -}; - -/** - * get measurement from option, for columnWidth, rowHeight, gutter - * if option is String -> get element from selector string, & get size of element - * if option is Element -> get size of element - * else use option as a number - * - * @param {String} measurement - * @param {String} size - width or height - * @private - */ -Outlayer.prototype._getMeasurement = function( measurement, size ) { - var option = this.options[ measurement ]; - var elem; - if ( !option ) { - // default to 0 - this[ measurement ] = 0; - } else { - // use option as an element - if ( typeof option === 'string' ) { - elem = this.element.querySelector( option ); - } else if ( isElement( option ) ) { - elem = option; - } - // use size of element, if element - this[ measurement ] = elem ? getSize( elem )[ size ] : option; - } -}; - -/** - * layout a collection of item elements - * @api public - */ -Outlayer.prototype.layoutItems = function( items, isInstant ) { - items = this._getItemsForLayout( items ); - - this._layoutItems( items, isInstant ); - - this._postLayout(); -}; - -/** - * get the items to be laid out - * you may want to skip over some items - * @param {Array} items - * @returns {Array} items - */ -Outlayer.prototype._getItemsForLayout = function( items ) { - var layoutItems = []; - for ( var i=0, len = items.length; i < len; i++ ) { - var item = items[i]; - if ( !item.isIgnored ) { - layoutItems.push( item ); - } - } - return layoutItems; -}; - -/** - * layout items - * @param {Array} items - * @param {Boolean} isInstant - */ -Outlayer.prototype._layoutItems = function( items, isInstant ) { - var _this = this; - function onItemsLayout() { - _this.emitEvent( 'layoutComplete', [ _this, items ] ); - } - - if ( !items || !items.length ) { - // no items, emit event with empty array - onItemsLayout(); - return; - } - - // emit layoutComplete when done - this._itemsOn( items, 'layout', onItemsLayout ); - - var queue = []; - - for ( var i=0, len = items.length; i < len; i++ ) { - var item = items[i]; - // get x/y object from method - var position = this._getItemLayoutPosition( item ); - // enqueue - position.item = item; - position.isInstant = isInstant || item.isLayoutInstant; - queue.push( position ); - } - - this._processLayoutQueue( queue ); -}; - -/** - * get item layout position - * @param {Outlayer.Item} item - * @returns {Object} x and y position - */ -Outlayer.prototype._getItemLayoutPosition = function( /* item */ ) { - return { - x: 0, - y: 0 - }; -}; - -/** - * iterate over array and position each item - * Reason being - separating this logic prevents 'layout invalidation' - * thx @paul_irish - * @param {Array} queue - */ -Outlayer.prototype._processLayoutQueue = function( queue ) { - for ( var i=0, len = queue.length; i < len; i++ ) { - var obj = queue[i]; - this._positionItem( obj.item, obj.x, obj.y, obj.isInstant ); - } -}; - -/** - * Sets position of item in DOM - * @param {Outlayer.Item} item - * @param {Number} x - horizontal position - * @param {Number} y - vertical position - * @param {Boolean} isInstant - disables transitions - */ -Outlayer.prototype._positionItem = function( item, x, y, isInstant ) { - if ( isInstant ) { - // if not transition, just set CSS - item.goTo( x, y ); - } else { - item.moveTo( x, y ); - } -}; - -/** - * Any logic you want to do after each layout, - * i.e. size the container - */ -Outlayer.prototype._postLayout = function() { - this.resizeContainer(); -}; - -Outlayer.prototype.resizeContainer = function() { - if ( !this.options.isResizingContainer ) { - return; - } - var size = this._getContainerSize(); - if ( size ) { - this._setContainerMeasure( size.width, true ); - this._setContainerMeasure( size.height, false ); - } -}; - -/** - * Sets width or height of container if returned - * @returns {Object} size - * @param {Number} width - * @param {Number} height - */ -Outlayer.prototype._getContainerSize = noop; - -/** - * @param {Number} measure - size of width or height - * @param {Boolean} isWidth - */ -Outlayer.prototype._setContainerMeasure = function( measure, isWidth ) { - if ( measure === undefined ) { - return; - } - - var elemSize = this.size; - // add padding and border width if border box - if ( elemSize.isBorderBox ) { - measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight + - elemSize.borderLeftWidth + elemSize.borderRightWidth : - elemSize.paddingBottom + elemSize.paddingTop + - elemSize.borderTopWidth + elemSize.borderBottomWidth; - } - - measure = Math.max( measure, 0 ); - this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px'; -}; - -/** - * trigger a callback for a collection of items events - * @param {Array} items - Outlayer.Items - * @param {String} eventName - * @param {Function} callback - */ -Outlayer.prototype._itemsOn = function( items, eventName, callback ) { - var doneCount = 0; - var count = items.length; - // event callback - var _this = this; - function tick() { - doneCount++; - if ( doneCount === count ) { - callback.call( _this ); - } - return true; // bind once - } - // bind callback - for ( var i=0, len = items.length; i < len; i++ ) { - var item = items[i]; - item.on( eventName, tick ); - } -}; - -// -------------------------- ignore & stamps -------------------------- // - - -/** - * keep item in collection, but do not lay it out - * ignored items do not get skipped in layout - * @param {Element} elem - */ -Outlayer.prototype.ignore = function( elem ) { - var item = this.getItem( elem ); - if ( item ) { - item.isIgnored = true; - } -}; - -/** - * return item to layout collection - * @param {Element} elem - */ -Outlayer.prototype.unignore = function( elem ) { - var item = this.getItem( elem ); - if ( item ) { - delete item.isIgnored; - } -}; - -/** - * adds elements to stamps - * @param {NodeList, Array, Element, or String} elems - */ -Outlayer.prototype.stamp = function( elems ) { - elems = this._find( elems ); - if ( !elems ) { - return; - } - - this.stamps = this.stamps.concat( elems ); - // ignore - for ( var i=0, len = elems.length; i < len; i++ ) { - var elem = elems[i]; - this.ignore( elem ); - } -}; - -/** - * removes elements to stamps - * @param {NodeList, Array, or Element} elems - */ -Outlayer.prototype.unstamp = function( elems ) { - elems = this._find( elems ); - if ( !elems ){ - return; - } - - for ( var i=0, len = elems.length; i < len; i++ ) { - var elem = elems[i]; - // filter out removed stamp elements - removeFrom( elem, this.stamps ); - this.unignore( elem ); - } - -}; - -/** - * finds child elements - * @param {NodeList, Array, Element, or String} elems - * @returns {Array} elems - */ -Outlayer.prototype._find = function( elems ) { - if ( !elems ) { - return; - } - // if string, use argument as selector string - if ( typeof elems === 'string' ) { - elems = this.element.querySelectorAll( elems ); - } - elems = makeArray( elems ); - return elems; -}; - -Outlayer.prototype._manageStamps = function() { - if ( !this.stamps || !this.stamps.length ) { - return; - } - - this._getBoundingRect(); - - for ( var i=0, len = this.stamps.length; i < len; i++ ) { - var stamp = this.stamps[i]; - this._manageStamp( stamp ); - } -}; - -// update boundingLeft / Top -Outlayer.prototype._getBoundingRect = function() { - // get bounding rect for container element - var boundingRect = this.element.getBoundingClientRect(); - var size = this.size; - this._boundingRect = { - left: boundingRect.left + size.paddingLeft + size.borderLeftWidth, - top: boundingRect.top + size.paddingTop + size.borderTopWidth, - right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ), - bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth ) - }; -}; - -/** - * @param {Element} stamp -**/ -Outlayer.prototype._manageStamp = noop; - -/** - * get x/y position of element relative to container element - * @param {Element} elem - * @returns {Object} offset - has left, top, right, bottom - */ -Outlayer.prototype._getElementOffset = function( elem ) { - var boundingRect = elem.getBoundingClientRect(); - var thisRect = this._boundingRect; - var size = getSize( elem ); - var offset = { - left: boundingRect.left - thisRect.left - size.marginLeft, - top: boundingRect.top - thisRect.top - size.marginTop, - right: thisRect.right - boundingRect.right - size.marginRight, - bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom - }; - return offset; -}; - -// -------------------------- resize -------------------------- // - -// enable event handlers for listeners -// i.e. resize -> onresize -Outlayer.prototype.handleEvent = function( event ) { - var method = 'on' + event.type; - if ( this[ method ] ) { - this[ method ]( event ); - } -}; - -/** - * Bind layout to window resizing - */ -Outlayer.prototype.bindResize = function() { - // bind just one listener - if ( this.isResizeBound ) { - return; - } - eventie.bind( window, 'resize', this ); - this.isResizeBound = true; -}; - -/** - * Unbind layout to window resizing - */ -Outlayer.prototype.unbindResize = function() { - if ( this.isResizeBound ) { - eventie.unbind( window, 'resize', this ); - } - this.isResizeBound = false; -}; - -// original debounce by John Hann -// http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/ - -// this fires every resize -Outlayer.prototype.onresize = function() { - if ( this.resizeTimeout ) { - clearTimeout( this.resizeTimeout ); - } - - var _this = this; - function delayed() { - _this.resize(); - delete _this.resizeTimeout; - } - - this.resizeTimeout = setTimeout( delayed, 100 ); -}; - -// debounced, layout on resize -Outlayer.prototype.resize = function() { - // don't trigger if size did not change - // or if resize was unbound. See #9 - if ( !this.isResizeBound || !this.needsResizeLayout() ) { - return; - } - - this.layout(); -}; - -/** - * check if layout is needed post layout - * @returns Boolean - */ -Outlayer.prototype.needsResizeLayout = function() { - var size = getSize( this.element ); - // check that this.size and size are there - // IE8 triggers resize on body size change, so they might not be - var hasSizes = this.size && size; - return hasSizes && size.innerWidth !== this.size.innerWidth; -}; - -// -------------------------- methods -------------------------- // - -/** - * add items to Outlayer instance - * @param {Array or NodeList or Element} elems - * @returns {Array} items - Outlayer.Items -**/ -Outlayer.prototype.addItems = function( elems ) { - var items = this._itemize( elems ); - // add items to collection - if ( items.length ) { - this.items = this.items.concat( items ); - } - return items; -}; - -/** - * Layout newly-appended item elements - * @param {Array or NodeList or Element} elems - */ -Outlayer.prototype.appended = function( elems ) { - var items = this.addItems( elems ); - if ( !items.length ) { - return; - } - // layout and reveal just the new items - this.layoutItems( items, true ); - this.reveal( items ); -}; - -/** - * Layout prepended elements - * @param {Array or NodeList or Element} elems - */ -Outlayer.prototype.prepended = function( elems ) { - var items = this._itemize( elems ); - if ( !items.length ) { - return; - } - // add items to beginning of collection - var previousItems = this.items.slice(0); - this.items = items.concat( previousItems ); - // start new layout - this._resetLayout(); - this._manageStamps(); - // layout new stuff without transition - this.layoutItems( items, true ); - this.reveal( items ); - // layout previous items - this.layoutItems( previousItems ); -}; - -/** - * reveal a collection of items - * @param {Array of Outlayer.Items} items - */ -Outlayer.prototype.reveal = function( items ) { - var len = items && items.length; - if ( !len ) { - return; - } - for ( var i=0; i < len; i++ ) { - var item = items[i]; - item.reveal(); - } -}; - -/** - * hide a collection of items - * @param {Array of Outlayer.Items} items - */ -Outlayer.prototype.hide = function( items ) { - var len = items && items.length; - if ( !len ) { - return; - } - for ( var i=0; i < len; i++ ) { - var item = items[i]; - item.hide(); - } -}; - -/** - * get Outlayer.Item, given an Element - * @param {Element} elem - * @param {Function} callback - * @returns {Outlayer.Item} item - */ -Outlayer.prototype.getItem = function( elem ) { - // loop through items to get the one that matches - for ( var i=0, len = this.items.length; i < len; i++ ) { - var item = this.items[i]; - if ( item.element === elem ) { - // return item - return item; - } - } -}; - -/** - * get collection of Outlayer.Items, given Elements - * @param {Array} elems - * @returns {Array} items - Outlayer.Items - */ -Outlayer.prototype.getItems = function( elems ) { - if ( !elems || !elems.length ) { - return; - } - var items = []; - for ( var i=0, len = elems.length; i < len; i++ ) { - var elem = elems[i]; - var item = this.getItem( elem ); - if ( item ) { - items.push( item ); - } - } - - return items; -}; - -/** - * remove element(s) from instance and DOM - * @param {Array or NodeList or Element} elems - */ -Outlayer.prototype.remove = function( elems ) { - elems = makeArray( elems ); - - var removeItems = this.getItems( elems ); - // bail if no items to remove - if ( !removeItems || !removeItems.length ) { - return; - } - - this._itemsOn( removeItems, 'remove', function() { - this.emitEvent( 'removeComplete', [ this, removeItems ] ); - }); - - for ( var i=0, len = removeItems.length; i < len; i++ ) { - var item = removeItems[i]; - item.remove(); - // remove item from collection - removeFrom( item, this.items ); - } -}; - -// ----- destroy ----- // - -// remove and disable Outlayer instance -Outlayer.prototype.destroy = function() { - // clean up dynamic styles - var style = this.element.style; - style.height = ''; - style.position = ''; - style.width = ''; - // destroy items - for ( var i=0, len = this.items.length; i < len; i++ ) { - var item = this.items[i]; - item.destroy(); - } - - this.unbindResize(); - - delete this.element.outlayerGUID; - // remove data for jQuery - if ( jQuery ) { - jQuery.removeData( this.element, this.constructor.namespace ); - } - -}; - -// -------------------------- data -------------------------- // - -/** - * get Outlayer instance from element - * @param {Element} elem - * @returns {Outlayer} - */ -Outlayer.data = function( elem ) { - var id = elem && elem.outlayerGUID; - return id && instances[ id ]; -}; - - -// -------------------------- create Outlayer class -------------------------- // - -/** - * create a layout class - * @param {String} namespace - */ -Outlayer.create = function( namespace, options ) { - // sub-class Outlayer - function Layout() { - Outlayer.apply( this, arguments ); - } - // inherit Outlayer prototype, use Object.create if there - if ( Object.create ) { - Layout.prototype = Object.create( Outlayer.prototype ); - } else { - extend( Layout.prototype, Outlayer.prototype ); - } - // set contructor, used for namespace and Item - Layout.prototype.constructor = Layout; - - Layout.defaults = extend( {}, Outlayer.defaults ); - // apply new options - extend( Layout.defaults, options ); - // keep prototype.settings for backwards compatibility (Packery v1.2.0) - Layout.prototype.settings = {}; - - Layout.namespace = namespace; - - Layout.data = Outlayer.data; - - // sub-class Item - Layout.Item = function LayoutItem() { - Item.apply( this, arguments ); - }; - - Layout.Item.prototype = new Item(); - - // -------------------------- declarative -------------------------- // - - /** - * allow user to initialize Outlayer via .js-namespace class - * options are parsed from data-namespace-option attribute - */ - docReady( function() { - var dashedNamespace = toDashed( namespace ); - var elems = document.querySelectorAll( '.js-' + dashedNamespace ); - var dataAttr = 'data-' + dashedNamespace + '-options'; - - for ( var i=0, len = elems.length; i < len; i++ ) { - var elem = elems[i]; - var attr = elem.getAttribute( dataAttr ); - var options; - try { - options = attr && JSON.parse( attr ); - } catch ( error ) { - // log error, do not initialize - if ( console ) { - console.error( 'Error parsing ' + dataAttr + ' on ' + - elem.nodeName.toLowerCase() + ( elem.id ? '#' + elem.id : '' ) + ': ' + - error ); - } - continue; - } - // initialize - var instance = new Layout( elem, options ); - // make available via $().data('layoutname') - if ( jQuery ) { - jQuery.data( elem, namespace, instance ); - } - } - }); - - // -------------------------- jQuery bridge -------------------------- // - - // make into jQuery plugin - if ( jQuery && jQuery.bridget ) { - jQuery.bridget( namespace, Layout ); - } - - return Layout; -}; - -// ----- fin ----- // - -// back in global -Outlayer.Item = Item; - -return Outlayer; - -} - -// -------------------------- transport -------------------------- // - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'outlayer/outlayer',[ - 'eventie/eventie', - 'doc-ready/doc-ready', - 'eventEmitter/EventEmitter', - 'get-size/get-size', - 'matches-selector/matches-selector', - './item' - ], - outlayerDefinition ); -} else { - // browser global - window.Outlayer = outlayerDefinition( - window.eventie, - window.docReady, - window.EventEmitter, - window.getSize, - window.matchesSelector, - window.Outlayer.Item - ); -} - -})( window ); - -/** - * Isotope Item -**/ - -( function( window ) { - - - -// -------------------------- Item -------------------------- // - -function itemDefinition( Outlayer ) { - -// sub-class Outlayer Item -function Item() { - Outlayer.Item.apply( this, arguments ); -} - -Item.prototype = new Outlayer.Item(); - -Item.prototype._create = function() { - // assign id, used for original-order sorting - this.id = this.layout.itemGUID++; - Outlayer.Item.prototype._create.call( this ); - this.sortData = {}; -}; - -Item.prototype.updateSortData = function() { - if ( this.isIgnored ) { - return; - } - // default sorters - this.sortData.id = this.id; - // for backward compatibility - this.sortData['original-order'] = this.id; - this.sortData.random = Math.random(); - // go thru getSortData obj and apply the sorters - var getSortData = this.layout.options.getSortData; - var sorters = this.layout._sorters; - for ( var key in getSortData ) { - var sorter = sorters[ key ]; - this.sortData[ key ] = sorter( this.element, this ); - } -}; - -return Item; - -} - -// -------------------------- transport -------------------------- // - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'isotope/js/item',[ - 'outlayer/outlayer' - ], - itemDefinition ); -} else { - // browser global - window.Isotope = window.Isotope || {}; - window.Isotope.Item = itemDefinition( - window.Outlayer - ); -} - -})( window ); - -( function( window ) { - - - -// -------------------------- -------------------------- // - -function layoutModeDefinition( getSize, Outlayer ) { - - // layout mode class - function LayoutMode( isotope ) { - this.isotope = isotope; - // link properties - if ( isotope ) { - this.options = isotope.options[ this.namespace ]; - this.element = isotope.element; - this.items = isotope.filteredItems; - this.size = isotope.size; - } - } - - /** - * some methods should just defer to default Outlayer method - * and reference the Isotope instance as `this` - **/ - ( function() { - var facadeMethods = [ - '_resetLayout', - '_getItemLayoutPosition', - '_manageStamp', - '_getContainerSize', - '_getElementOffset', - 'needsResizeLayout' - ]; - - for ( var i=0, len = facadeMethods.length; i < len; i++ ) { - var methodName = facadeMethods[i]; - LayoutMode.prototype[ methodName ] = getOutlayerMethod( methodName ); - } - - function getOutlayerMethod( methodName ) { - return function() { - return Outlayer.prototype[ methodName ].apply( this.isotope, arguments ); - }; - } - })(); - - // ----- ----- // - - // for horizontal layout modes, check vertical size - LayoutMode.prototype.needsVerticalResizeLayout = function() { - // don't trigger if size did not change - var size = getSize( this.isotope.element ); - // check that this.size and size are there - // IE8 triggers resize on body size change, so they might not be - var hasSizes = this.isotope.size && size; - return hasSizes && size.innerHeight !== this.isotope.size.innerHeight; - }; - - // ----- measurements ----- // - - LayoutMode.prototype._getMeasurement = function() { - this.isotope._getMeasurement.apply( this, arguments ); - }; - - LayoutMode.prototype.getColumnWidth = function() { - this.getSegmentSize( 'column', 'Width' ); - }; - - LayoutMode.prototype.getRowHeight = function() { - this.getSegmentSize( 'row', 'Height' ); - }; - - /** - * get columnWidth or rowHeight - * segment: 'column' or 'row' - * size 'Width' or 'Height' - **/ - LayoutMode.prototype.getSegmentSize = function( segment, size ) { - var segmentName = segment + size; - var outerSize = 'outer' + size; - // columnWidth / outerWidth // rowHeight / outerHeight - this._getMeasurement( segmentName, outerSize ); - // got rowHeight or columnWidth, we can chill - if ( this[ segmentName ] ) { - return; - } - // fall back to item of first element - var firstItemSize = this.getFirstItemSize(); - this[ segmentName ] = firstItemSize && firstItemSize[ outerSize ] || - // or size of container - this.isotope.size[ 'inner' + size ]; - }; - - LayoutMode.prototype.getFirstItemSize = function() { - var firstItem = this.isotope.filteredItems[0]; - return firstItem && firstItem.element && getSize( firstItem.element ); - }; - - // ----- methods that should reference isotope ----- // - - LayoutMode.prototype.layout = function() { - this.isotope.layout.apply( this.isotope, arguments ); - }; - - LayoutMode.prototype.getSize = function() { - this.isotope.getSize(); - this.size = this.isotope.size; - }; - - // -------------------------- create -------------------------- // - - LayoutMode.modes = {}; - - LayoutMode.create = function( namespace, options ) { - - function Mode() { - LayoutMode.apply( this, arguments ); - } - - Mode.prototype = new LayoutMode(); - - // default options - if ( options ) { - Mode.options = options; - } - - Mode.prototype.namespace = namespace; - // register in Isotope - LayoutMode.modes[ namespace ] = Mode; - - return Mode; - }; - - - return LayoutMode; - -} - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'isotope/js/layout-mode',[ - 'get-size/get-size', - 'outlayer/outlayer' - ], - layoutModeDefinition ); -} else { - // browser global - window.Isotope = window.Isotope || {}; - window.Isotope.LayoutMode = layoutModeDefinition( - window.getSize, - window.Outlayer - ); -} - - -})( window ); - -/*! - * Masonry v3.1.5 - * Cascading grid layout library - * http://masonry.desandro.com - * MIT License - * by David DeSandro - */ - -( function( window ) { - - - -// -------------------------- helpers -------------------------- // - -var indexOf = Array.prototype.indexOf ? - function( items, value ) { - return items.indexOf( value ); - } : - function ( items, value ) { - for ( var i=0, len = items.length; i < len; i++ ) { - var item = items[i]; - if ( item === value ) { - return i; - } - } - return -1; - }; - -// -------------------------- masonryDefinition -------------------------- // - -// used for AMD definition and requires -function masonryDefinition( Outlayer, getSize ) { - // create an Outlayer layout class - var Masonry = Outlayer.create('masonry'); - - Masonry.prototype._resetLayout = function() { - this.getSize(); - this._getMeasurement( 'columnWidth', 'outerWidth' ); - this._getMeasurement( 'gutter', 'outerWidth' ); - this.measureColumns(); - - // reset column Y - var i = this.cols; - this.colYs = []; - while (i--) { - this.colYs.push( 0 ); - } - - this.maxY = 0; - }; - - Masonry.prototype.measureColumns = function() { - this.getContainerWidth(); - // if columnWidth is 0, default to outerWidth of first item - if ( !this.columnWidth ) { - var firstItem = this.items[0]; - var firstItemElem = firstItem && firstItem.element; - // columnWidth fall back to item of first element - this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth || - // if first elem has no width, default to size of container - this.containerWidth; - } - - this.columnWidth += this.gutter; - - this.cols = Math.floor( ( this.containerWidth + this.gutter ) / this.columnWidth ); - this.cols = Math.max( this.cols, 1 ); - }; - - Masonry.prototype.getContainerWidth = function() { - // container is parent if fit width - var container = this.options.isFitWidth ? this.element.parentNode : this.element; - // check that this.size and size are there - // IE8 triggers resize on body size change, so they might not be - var size = getSize( container ); - this.containerWidth = size && size.innerWidth; - }; - - Masonry.prototype._getItemLayoutPosition = function( item ) { - item.getSize(); - // how many columns does this brick span - var remainder = item.size.outerWidth % this.columnWidth; - var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil'; - // round if off by 1 pixel, otherwise use ceil - var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth ); - colSpan = Math.min( colSpan, this.cols ); - - var colGroup = this._getColGroup( colSpan ); - // get the minimum Y value from the columns - var minimumY = Math.min.apply( Math, colGroup ); - var shortColIndex = indexOf( colGroup, minimumY ); - - // position the brick - var position = { - x: this.columnWidth * shortColIndex, - y: minimumY - }; - - // apply setHeight to necessary columns - var setHeight = minimumY + item.size.outerHeight; - var setSpan = this.cols + 1 - colGroup.length; - for ( var i = 0; i < setSpan; i++ ) { - this.colYs[ shortColIndex + i ] = setHeight; - } - - return position; - }; - - /** - * @param {Number} colSpan - number of columns the element spans - * @returns {Array} colGroup - */ - Masonry.prototype._getColGroup = function( colSpan ) { - if ( colSpan < 2 ) { - // if brick spans only one column, use all the column Ys - return this.colYs; - } - - var colGroup = []; - // how many different places could this brick fit horizontally - var groupCount = this.cols + 1 - colSpan; - // for each group potential horizontal position - for ( var i = 0; i < groupCount; i++ ) { - // make an array of colY values for that one group - var groupColYs = this.colYs.slice( i, i + colSpan ); - // and get the max value of the array - colGroup[i] = Math.max.apply( Math, groupColYs ); - } - return colGroup; - }; - - Masonry.prototype._manageStamp = function( stamp ) { - var stampSize = getSize( stamp ); - var offset = this._getElementOffset( stamp ); - // get the columns that this stamp affects - var firstX = this.options.isOriginLeft ? offset.left : offset.right; - var lastX = firstX + stampSize.outerWidth; - var firstCol = Math.floor( firstX / this.columnWidth ); - firstCol = Math.max( 0, firstCol ); - var lastCol = Math.floor( lastX / this.columnWidth ); - // lastCol should not go over if multiple of columnWidth #425 - lastCol -= lastX % this.columnWidth ? 0 : 1; - lastCol = Math.min( this.cols - 1, lastCol ); - // set colYs to bottom of the stamp - var stampMaxY = ( this.options.isOriginTop ? offset.top : offset.bottom ) + - stampSize.outerHeight; - for ( var i = firstCol; i <= lastCol; i++ ) { - this.colYs[i] = Math.max( stampMaxY, this.colYs[i] ); - } - }; - - Masonry.prototype._getContainerSize = function() { - this.maxY = Math.max.apply( Math, this.colYs ); - var size = { - height: this.maxY - }; - - if ( this.options.isFitWidth ) { - size.width = this._getContainerFitWidth(); - } - - return size; - }; - - Masonry.prototype._getContainerFitWidth = function() { - var unusedCols = 0; - // count unused columns - var i = this.cols; - while ( --i ) { - if ( this.colYs[i] !== 0 ) { - break; - } - unusedCols++; - } - // fit container to columns that have been used - return ( this.cols - unusedCols ) * this.columnWidth - this.gutter; - }; - - Masonry.prototype.needsResizeLayout = function() { - var previousWidth = this.containerWidth; - this.getContainerWidth(); - return previousWidth !== this.containerWidth; - }; - - return Masonry; -} - -// -------------------------- transport -------------------------- // - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'masonry/masonry',[ - 'outlayer/outlayer', - 'get-size/get-size' - ], - masonryDefinition ); -} else { - // browser global - window.Masonry = masonryDefinition( - window.Outlayer, - window.getSize - ); -} - -})( window ); - -/*! - * Masonry layout mode - * sub-classes Masonry - * http://masonry.desandro.com - */ - -( function( window ) { - - - -// -------------------------- helpers -------------------------- // - -// extend objects -function extend( a, b ) { - for ( var prop in b ) { - a[ prop ] = b[ prop ]; - } - return a; -} - -// -------------------------- masonryDefinition -------------------------- // - -// used for AMD definition and requires -function masonryDefinition( LayoutMode, Masonry ) { - // create an Outlayer layout class - var MasonryMode = LayoutMode.create('masonry'); - - // save on to these methods - var _getElementOffset = MasonryMode.prototype._getElementOffset; - var layout = MasonryMode.prototype.layout; - var _getMeasurement = MasonryMode.prototype._getMeasurement; - - // sub-class Masonry - extend( MasonryMode.prototype, Masonry.prototype ); - - // set back, as it was overwritten by Masonry - MasonryMode.prototype._getElementOffset = _getElementOffset; - MasonryMode.prototype.layout = layout; - MasonryMode.prototype._getMeasurement = _getMeasurement; - - var measureColumns = MasonryMode.prototype.measureColumns; - MasonryMode.prototype.measureColumns = function() { - // set items, used if measuring first item - this.items = this.isotope.filteredItems; - measureColumns.call( this ); - }; - - // HACK copy over isOriginLeft/Top options - var _manageStamp = MasonryMode.prototype._manageStamp; - MasonryMode.prototype._manageStamp = function() { - this.options.isOriginLeft = this.isotope.options.isOriginLeft; - this.options.isOriginTop = this.isotope.options.isOriginTop; - _manageStamp.apply( this, arguments ); - }; - - return MasonryMode; -} - -// -------------------------- transport -------------------------- // - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'isotope/js/layout-modes/masonry',[ - '../layout-mode', - 'masonry/masonry' - ], - masonryDefinition ); -} else { - // browser global - masonryDefinition( - window.Isotope.LayoutMode, - window.Masonry - ); -} - -})( window ); - -( function( window ) { - - - -function fitRowsDefinition( LayoutMode ) { - -var FitRows = LayoutMode.create('fitRows'); - -FitRows.prototype._resetLayout = function() { - this.x = 0; - this.y = 0; - this.maxY = 0; -}; - -FitRows.prototype._getItemLayoutPosition = function( item ) { - item.getSize(); - - // if this element cannot fit in the current row - if ( this.x !== 0 && item.size.outerWidth + this.x > this.isotope.size.innerWidth ) { - this.x = 0; - this.y = this.maxY; - } - - var position = { - x: this.x, - y: this.y - }; - - this.maxY = Math.max( this.maxY, this.y + item.size.outerHeight ); - this.x += item.size.outerWidth; - - return position; -}; - -FitRows.prototype._getContainerSize = function() { - return { height: this.maxY }; -}; - -return FitRows; - -} - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'isotope/js/layout-modes/fit-rows',[ - '../layout-mode' - ], - fitRowsDefinition ); -} else { - // browser global - fitRowsDefinition( - window.Isotope.LayoutMode - ); -} - -})( window ); - -( function( window ) { - - - -function verticalDefinition( LayoutMode ) { - -var Vertical = LayoutMode.create( 'vertical', { - horizontalAlignment: 0 -}); - -Vertical.prototype._resetLayout = function() { - this.y = 0; -}; - -Vertical.prototype._getItemLayoutPosition = function( item ) { - item.getSize(); - var x = ( this.isotope.size.innerWidth - item.size.outerWidth ) * - this.options.horizontalAlignment; - var y = this.y; - this.y += item.size.outerHeight; - return { x: x, y: y }; -}; - -Vertical.prototype._getContainerSize = function() { - return { height: this.y }; -}; - -return Vertical; - -} - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( 'isotope/js/layout-modes/vertical',[ - '../layout-mode' - ], - verticalDefinition ); -} else { - // browser global - verticalDefinition( - window.Isotope.LayoutMode - ); -} - -})( window ); - -/*! - * Isotope v2.0.0 - * Filter & sort magical layouts - * http://isotope.metafizzy.co - */ - -( function( window ) { - - - -// -------------------------- vars -------------------------- // - -var jQuery = window.jQuery; - -// -------------------------- helpers -------------------------- // - -// extend objects -function extend( a, b ) { - for ( var prop in b ) { - a[ prop ] = b[ prop ]; - } - return a; -} - -var trim = String.prototype.trim ? - function( str ) { - return str.trim(); - } : - function( str ) { - return str.replace( /^\s+|\s+$/g, '' ); - }; - -var docElem = document.documentElement; - -var getText = docElem.textContent ? - function( elem ) { - return elem.textContent; - } : - function( elem ) { - return elem.innerText; - }; - -var objToString = Object.prototype.toString; -function isArray( obj ) { - return objToString.call( obj ) === '[object Array]'; -} - -// index of helper cause IE8 -var indexOf = Array.prototype.indexOf ? function( ary, obj ) { - return ary.indexOf( obj ); - } : function( ary, obj ) { - for ( var i=0, len = ary.length; i < len; i++ ) { - if ( ary[i] === obj ) { - return i; - } - } - return -1; - }; - -// turn element or nodeList into an array -function makeArray( obj ) { - var ary = []; - if ( isArray( obj ) ) { - // use object if already an array - ary = obj; - } else if ( obj && typeof obj.length === 'number' ) { - // convert nodeList to array - for ( var i=0, len = obj.length; i < len; i++ ) { - ary.push( obj[i] ); - } - } else { - // array of single index - ary.push( obj ); - } - return ary; -} - -function removeFrom( obj, ary ) { - var index = indexOf( ary, obj ); - if ( index !== -1 ) { - ary.splice( index, 1 ); - } -} - -// -------------------------- isotopeDefinition -------------------------- // - -// used for AMD definition and requires -function isotopeDefinition( Outlayer, getSize, matchesSelector, Item, LayoutMode ) { - // create an Outlayer layout class - var Isotope = Outlayer.create( 'isotope', { - layoutMode: "masonry", - isJQueryFiltering: true, - sortAscending: true - }); - - Isotope.Item = Item; - Isotope.LayoutMode = LayoutMode; - - Isotope.prototype._create = function() { - this.itemGUID = 0; - // functions that sort items - this._sorters = {}; - this._getSorters(); - // call super - Outlayer.prototype._create.call( this ); - - // create layout modes - this.modes = {}; - // start filteredItems with all items - this.filteredItems = this.items; - // keep of track of sortBys - this.sortHistory = [ 'original-order' ]; - // create from registered layout modes - for ( var name in LayoutMode.modes ) { - this._initLayoutMode( name ); - } - }; - - Isotope.prototype.reloadItems = function() { - // reset item ID counter - this.itemGUID = 0; - // call super - Outlayer.prototype.reloadItems.call( this ); - }; - - Isotope.prototype._itemize = function() { - var items = Outlayer.prototype._itemize.apply( this, arguments ); - // assign ID for original-order - for ( var i=0, len = items.length; i < len; i++ ) { - var item = items[i]; - item.id = this.itemGUID++; - } - this._updateItemsSortData( items ); - return items; - }; - - - // -------------------------- layout -------------------------- // - - Isotope.prototype._initLayoutMode = function( name ) { - var Mode = LayoutMode.modes[ name ]; - // set mode options - // HACK extend initial options, back-fill in default options - var initialOpts = this.options[ name ] || {}; - this.options[ name ] = Mode.options ? - extend( Mode.options, initialOpts ) : initialOpts; - // init layout mode instance - this.modes[ name ] = new Mode( this ); - }; - - - Isotope.prototype.layout = function() { - // if first time doing layout, do all magic - if ( !this._isLayoutInited && this.options.isInitLayout ) { - this.arrange(); - return; - } - this._layout(); - }; - - // private method to be used in layout() & magic() - Isotope.prototype._layout = function() { - // don't animate first layout - var isInstant = this._getIsInstant(); - // layout flow - this._resetLayout(); - this._manageStamps(); - this.layoutItems( this.filteredItems, isInstant ); - - // flag for initalized - this._isLayoutInited = true; - }; - - // filter + sort + layout - Isotope.prototype.arrange = function( opts ) { - // set any options pass - this.option( opts ); - this._getIsInstant(); - // filter, sort, and layout - this.filteredItems = this._filter( this.items ); - this._sort(); - this._layout(); - }; - // alias to _init for main plugin method - Isotope.prototype._init = Isotope.prototype.arrange; - - // HACK - // Don't animate/transition first layout - // Or don't animate/transition other layouts - Isotope.prototype._getIsInstant = function() { - var isInstant = this.options.isLayoutInstant !== undefined ? - this.options.isLayoutInstant : !this._isLayoutInited; - this._isInstant = isInstant; - return isInstant; - }; - - // -------------------------- filter -------------------------- // - - Isotope.prototype._filter = function( items ) { - var filter = this.options.filter; - filter = filter || '*'; - var matches = []; - var hiddenMatched = []; - var visibleUnmatched = []; - - var test = this._getFilterTest( filter ); - - // test each item - for ( var i=0, len = items.length; i < len; i++ ) { - var item = items[i]; - if ( item.isIgnored ) { - continue; - } - // add item to either matched or unmatched group - var isMatched = test( item ); - // item.isFilterMatched = isMatched; - // add to matches if its a match - if ( isMatched ) { - matches.push( item ); - } - // add to additional group if item needs to be hidden or revealed - if ( isMatched && item.isHidden ) { - hiddenMatched.push( item ); - } else if ( !isMatched && !item.isHidden ) { - visibleUnmatched.push( item ); - } - } - - var _this = this; - function hideReveal() { - _this.reveal( hiddenMatched ); - _this.hide( visibleUnmatched ); - } - - if ( this._isInstant ) { - this._noTransition( hideReveal ); - } else { - hideReveal(); - } - - return matches; - }; - - // get a jQuery, function, or a matchesSelector test given the filter - Isotope.prototype._getFilterTest = function( filter ) { - if ( jQuery && this.options.isJQueryFiltering ) { - // use jQuery - return function( item ) { - return jQuery( item.element ).is( filter ); - }; - } - if ( typeof filter === 'function' ) { - // use filter as function - return function( item ) { - return filter( item.element ); - }; - } - // default, use filter as selector string - return function( item ) { - return matchesSelector( item.element, filter ); - }; - }; - - // -------------------------- sorting -------------------------- // - - /** - * @params {Array} elems - * @public - */ - Isotope.prototype.updateSortData = function( elems ) { - this._getSorters(); - // update item sort data - // default to all items if none are passed in - elems = makeArray( elems ); - var items = this.getItems( elems ); - // if no items found, update all items - items = items.length ? items : this.items; - this._updateItemsSortData( items ); - }; - - Isotope.prototype._getSorters = function() { - var getSortData = this.options.getSortData; - for ( var key in getSortData ) { - var sorter = getSortData[ key ]; - this._sorters[ key ] = mungeSorter( sorter ); - } - }; - - /** - * @params {Array} items - of Isotope.Items - * @private - */ - Isotope.prototype._updateItemsSortData = function( items ) { - for ( var i=0, len = items.length; i < len; i++ ) { - var item = items[i]; - item.updateSortData(); - } - }; - - // ----- munge sorter ----- // - - // encapsulate this, as we just need mungeSorter - // other functions in here are just for munging - var mungeSorter = ( function() { - // add a magic layer to sorters for convienent shorthands - // `.foo-bar` will use the text of .foo-bar querySelector - // `[foo-bar]` will use attribute - // you can also add parser - // `.foo-bar parseInt` will parse that as a number - function mungeSorter( sorter ) { - // if not a string, return function or whatever it is - if ( typeof sorter !== 'string' ) { - return sorter; - } - // parse the sorter string - var args = trim( sorter ).split(' '); - var query = args[0]; - // check if query looks like [an-attribute] - var attrMatch = query.match( /^\[(.+)\]$/ ); - var attr = attrMatch && attrMatch[1]; - var getValue = getValueGetter( attr, query ); - // use second argument as a parser - var parser = Isotope.sortDataParsers[ args[1] ]; - // parse the value, if there was a parser - sorter = parser ? function( elem ) { - return elem && parser( getValue( elem ) ); - } : - // otherwise just return value - function( elem ) { - return elem && getValue( elem ); - }; - - return sorter; - } - - // get an attribute getter, or get text of the querySelector - function getValueGetter( attr, query ) { - var getValue; - // if query looks like [foo-bar], get attribute - if ( attr ) { - getValue = function( elem ) { - return elem.getAttribute( attr ); - }; - } else { - // otherwise, assume its a querySelector, and get its text - getValue = function( elem ) { - var child = elem.querySelector( query ); - return child && getText( child ); - }; - } - return getValue; - } - - return mungeSorter; - })(); - - // parsers used in getSortData shortcut strings - Isotope.sortDataParsers = { - 'parseInt': function( val ) { - return parseInt( val, 10 ); - }, - 'parseFloat': function( val ) { - return parseFloat( val ); - } - }; - - // ----- sort method ----- // - - // sort filteredItem order - Isotope.prototype._sort = function() { - var sortByOpt = this.options.sortBy; - if ( !sortByOpt ) { - return; - } - // concat all sortBy and sortHistory - var sortBys = [].concat.apply( sortByOpt, this.sortHistory ); - // sort magic - var itemSorter = getItemSorter( sortBys, this.options.sortAscending ); - this.filteredItems.sort( itemSorter ); - // keep track of sortBy History - if ( sortByOpt !== this.sortHistory[0] ) { - // add to front, oldest goes in last - this.sortHistory.unshift( sortByOpt ); - } - }; - - // returns a function used for sorting - function getItemSorter( sortBys, sortAsc ) { - return function sorter( itemA, itemB ) { - // cycle through all sortKeys - for ( var i = 0, len = sortBys.length; i < len; i++ ) { - var sortBy = sortBys[i]; - var a = itemA.sortData[ sortBy ]; - var b = itemB.sortData[ sortBy ]; - if ( a > b || a < b ) { - // if sortAsc is an object, use the value given the sortBy key - var isAscending = sortAsc[ sortBy ] !== undefined ? sortAsc[ sortBy ] : sortAsc; - var direction = isAscending ? 1 : -1; - return ( a > b ? 1 : -1 ) * direction; - } - } - return 0; - }; - } - - // -------------------------- methods -------------------------- // - - // get layout mode - Isotope.prototype._mode = function() { - var layoutMode = this.options.layoutMode; - var mode = this.modes[ layoutMode ]; - if ( !mode ) { - // TODO console.error - throw new Error( 'No layout mode: ' + layoutMode ); - } - // HACK sync mode's options - // any options set after init for layout mode need to be synced - mode.options = this.options[ layoutMode ]; - return mode; - }; - - Isotope.prototype._resetLayout = function() { - // trigger original reset layout - Outlayer.prototype._resetLayout.call( this ); - this._mode()._resetLayout(); - }; - - Isotope.prototype._getItemLayoutPosition = function( item ) { - return this._mode()._getItemLayoutPosition( item ); - }; - - Isotope.prototype._manageStamp = function( stamp ) { - this._mode()._manageStamp( stamp ); - }; - - Isotope.prototype._getContainerSize = function() { - return this._mode()._getContainerSize(); - }; - - Isotope.prototype.needsResizeLayout = function() { - return this._mode().needsResizeLayout(); - }; - - // -------------------------- adding & removing -------------------------- // - - // HEADS UP overwrites default Outlayer appended - Isotope.prototype.appended = function( elems ) { - var items = this.addItems( elems ); - if ( !items.length ) { - return; - } - var filteredItems = this._filterRevealAdded( items ); - // add to filteredItems - this.filteredItems = this.filteredItems.concat( filteredItems ); - }; - - // HEADS UP overwrites default Outlayer prepended - Isotope.prototype.prepended = function( elems ) { - var items = this._itemize( elems ); - if ( !items.length ) { - return; - } - // add items to beginning of collection - var previousItems = this.items.slice(0); - this.items = items.concat( previousItems ); - // start new layout - this._resetLayout(); - this._manageStamps(); - // layout new stuff without transition - var filteredItems = this._filterRevealAdded( items ); - // layout previous items - this.layoutItems( previousItems ); - // add to filteredItems - this.filteredItems = filteredItems.concat( this.filteredItems ); - }; - - Isotope.prototype._filterRevealAdded = function( items ) { - var filteredItems = this._noTransition( function() { - return this._filter( items ); - }); - // layout and reveal just the new items - this.layoutItems( filteredItems, true ); - this.reveal( filteredItems ); - return items; - }; - - /** - * Filter, sort, and layout newly-appended item elements - * @param {Array or NodeList or Element} elems - */ - Isotope.prototype.insert = function( elems ) { - var items = this.addItems( elems ); - if ( !items.length ) { - return; - } - // append item elements - var i, item; - var len = items.length; - for ( i=0; i < len; i++ ) { - item = items[i]; - this.element.appendChild( item.element ); - } - // filter new stuff - /* - // this way adds hides new filtered items with NO transition - // so user can't see if new hidden items have been inserted - var filteredInsertItems; - this._noTransition( function() { - filteredInsertItems = this._filter( items ); - // hide all new items - this.hide( filteredInsertItems ); - }); - // */ - // this way hides new filtered items with transition - // so user at least sees that something has been added - var filteredInsertItems = this._filter( items ); - // hide all newitems - this._noTransition( function() { - this.hide( filteredInsertItems ); - }); - // */ - // set flag - for ( i=0; i < len; i++ ) { - items[i].isLayoutInstant = true; - } - this.arrange(); - // reset flag - for ( i=0; i < len; i++ ) { - delete items[i].isLayoutInstant; - } - this.reveal( filteredInsertItems ); - }; - - var _remove = Isotope.prototype.remove; - Isotope.prototype.remove = function( elems ) { - elems = makeArray( elems ); - var removeItems = this.getItems( elems ); - // do regular thing - _remove.call( this, elems ); - // bail if no items to remove - if ( !removeItems || !removeItems.length ) { - return; - } - // remove elems from filteredItems - for ( var i=0, len = removeItems.length; i < len; i++ ) { - var item = removeItems[i]; - // remove item from collection - removeFrom( item, this.filteredItems ); - } - }; - - /** - * trigger fn without transition - * kind of hacky to have this in the first place - * @param {Function} fn - * @returns ret - * @private - */ - Isotope.prototype._noTransition = function( fn ) { - // save transitionDuration before disabling - var transitionDuration = this.options.transitionDuration; - // disable transition - this.options.transitionDuration = 0; - // do it - var returnValue = fn.call( this ); - // re-enable transition for reveal - this.options.transitionDuration = transitionDuration; - return returnValue; - }; - - // ----- ----- // - - return Isotope; -} - -// -------------------------- transport -------------------------- // - -if ( typeof define === 'function' && define.amd ) { - // AMD - define( [ - 'outlayer/outlayer', - 'get-size/get-size', - 'matches-selector/matches-selector', - 'isotope/js/item', - 'isotope/js/layout-mode', - // include default layout modes - 'isotope/js/layout-modes/masonry', - 'isotope/js/layout-modes/fit-rows', - 'isotope/js/layout-modes/vertical' - ], - isotopeDefinition ); -} else { - // browser global - window.Isotope = isotopeDefinition( - window.Outlayer, - window.getSize, - window.matchesSelector, - window.Isotope.Item, - window.Isotope.LayoutMode - ); -} - -})( window ); - diff --git a/js/vendor/jquery.js b/js/vendor/jquery.js deleted file mode 100644 index 9f7b3d389..000000000 --- a/js/vendor/jquery.js +++ /dev/null @@ -1,9190 +0,0 @@ -/*! - * jQuery JavaScript Library v2.1.1 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-05-01T17:11Z - */ - -(function( global, factory ) { - - if ( typeof module === "object" && typeof module.exports === "object" ) { - // For CommonJS and CommonJS-like environments where a proper window is present, - // execute the factory and get jQuery - // For environments that do not inherently posses a window with a document - // (such as Node.js), expose a jQuery-making factory as module.exports - // This accentuates the need for the creation of a real window - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Can't do this because several apps including ASP.NET trace -// the stack via arguments.caller.callee and Firefox dies if -// you try to trace through "use strict" call chains. (#13335) -// Support: Firefox 18+ -// - -var arr = []; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var support = {}; - - - -var - // Use the correct document accordingly with window argument (sandbox) - document = window.document, - - version = "2.1.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android<4.1 - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - - // Matches dashed string for camelizing - rmsPrefix = /^-ms-/, - rdashAlpha = /-([\da-z])/gi, - - // Used by jQuery.camelCase as callback to replace() - fcamelCase = function( all, letter ) { - return letter.toUpperCase(); - }; - -jQuery.fn = jQuery.prototype = { - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // Start with an empty selector - selector: "", - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - return num != null ? - - // Return just the one element from the set - ( num < 0 ? this[ num + this.length ] : this[ num ] ) : - - // Return all the elements in a clean array - slice.call( this ); - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - ret.context = this.context; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - // (You can seed the arguments with an array of args, but this is - // only used internally.) - each: function( callback, args ) { - return jQuery.each( this, callback, args ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map(this, function( elem, i ) { - return callback.call( elem, i, elem ); - })); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(null); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[0] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !jQuery.isFunction(target) ) { - target = {}; - } - - // extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) { - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { - if ( copyIsArray ) { - copyIsArray = false; - clone = src && jQuery.isArray(src) ? src : []; - - } else { - clone = src && jQuery.isPlainObject(src) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend({ - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - // See test/unit/core.js for details concerning isFunction. - // Since version 1.3, DOM methods and functions like alert - // aren't supported. They return false on IE (#2968). - isFunction: function( obj ) { - return jQuery.type(obj) === "function"; - }, - - isArray: Array.isArray, - - isWindow: function( obj ) { - return obj != null && obj === obj.window; - }, - - isNumeric: function( obj ) { - // parseFloat NaNs numeric-cast false positives (null|true|false|"") - // ...but misinterprets leading-number strings, particularly hex literals ("0x...") - // subtraction forces infinities to NaN - return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; - }, - - isPlainObject: function( obj ) { - // Not plain objects: - // - Any object or value whose internal [[Class]] property is not "[object Object]" - // - DOM nodes - // - window - if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.constructor && - !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { - return false; - } - - // If the function hasn't returned already, we're confident that - // |obj| is a plain object, created by {} or constructed with new Object - return true; - }, - - isEmptyObject: function( obj ) { - var name; - for ( name in obj ) { - return false; - } - return true; - }, - - type: function( obj ) { - if ( obj == null ) { - return obj + ""; - } - // Support: Android < 4.0, iOS < 6 (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call(obj) ] || "object" : - typeof obj; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - var script, - indirect = eval; - - code = jQuery.trim( code ); - - if ( code ) { - // If the code includes a valid, prologue position - // strict mode pragma, execute code by injecting a - // script tag into the document. - if ( code.indexOf("use strict") === 1 ) { - script = document.createElement("script"); - script.text = code; - document.head.appendChild( script ).parentNode.removeChild( script ); - } else { - // Otherwise, avoid the DOM node creation, insertion - // and removal by using an indirect global eval - indirect( code ); - } - } - }, - - // Convert dashed to camelCase; used by the css and data modules - // Microsoft forgot to hump their vendor prefix (#9572) - camelCase: function( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); - }, - - nodeName: function( elem, name ) { - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - }, - - // args is for internal usage only - each: function( obj, callback, args ) { - var value, - i = 0, - length = obj.length, - isArray = isArraylike( obj ); - - if ( args ) { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.apply( obj[ i ], args ); - - if ( value === false ) { - break; - } - } - } - - // A special, fast, case for the most common use of each - } else { - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } else { - for ( i in obj ) { - value = callback.call( obj[ i ], i, obj[ i ] ); - - if ( value === false ) { - break; - } - } - } - } - - return obj; - }, - - // Support: Android<4.1 - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArraylike( Object(arr) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var value, - i = 0, - length = elems.length, - isArray = isArraylike( elems ), - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArray ) { - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // Bind a function to a context, optionally partially applying any - // arguments. - proxy: function( fn, context ) { - var tmp, args, proxy; - - if ( typeof context === "string" ) { - tmp = fn[ context ]; - context = fn; - fn = tmp; - } - - // Quick check to determine if target is callable, in the spec - // this throws a TypeError, but we will just return undefined. - if ( !jQuery.isFunction( fn ) ) { - return undefined; - } - - // Simulated bind - args = slice.call( arguments, 2 ); - proxy = function() { - return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); - }; - - // Set the guid of unique handler to the same of original handler, so it can be removed - proxy.guid = fn.guid = fn.guid || jQuery.guid++; - - return proxy; - }, - - now: Date.now, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -}); - -// Populate the class2type map -jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -}); - -function isArraylike( obj ) { - var length = obj.length, - type = jQuery.type( obj ); - - if ( type === "function" || jQuery.isWindow( obj ) ) { - return false; - } - - if ( obj.nodeType === 1 && length ) { - return true; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v1.10.19 - * http://sizzlejs.com/ - * - * Copyright 2013 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2014-04-18 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + -(new Date()), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // General-purpose constants - strundefined = typeof undefined, - MAX_NEGATIVE = 1 << 31, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { - var i = 0, - len = this.length; - for ( ; i < len; i++ ) { - if ( this[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/css3-syntax/#characters - characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", - - // Loosely modeled on CSS identifier characters - // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors - // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = characterEncoding.replace( "w", "w#" ), - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + characterEncoding + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + characterEncoding + ")" ), - "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), - "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - rescape = /'|\\/g, - - // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }; - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var match, elem, m, nodeType, - // QSA vars - i, groups, old, nid, newContext, newSelector; - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - - context = context || document; - results = results || []; - - if ( !selector || typeof selector !== "string" ) { - return results; - } - - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; - } - - if ( documentIsHTML && !seed ) { - - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { - // Speed-up: Sizzle("#ID") - if ( (m = match[1]) ) { - if ( nodeType === 9 ) { - elem = context.getElementById( m ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document (jQuery #6963) - if ( elem && elem.parentNode ) { - // Handle the case where IE, Opera, and Webkit return items - // by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - } else { - // Context is not a document - if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && - contains( context, elem ) && elem.id === m ) { - results.push( elem ); - return results; - } - } - - // Speed-up: Sizzle("TAG") - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // QSA path - if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - nid = old = expando; - newContext = context; - newSelector = nodeType === 9 && selector; - - // qSA works strangely on Element-rooted queries - // We can work around this by specifying an extra ID on the root - // and working up from there (Thanks to Andrew Dupont for the technique) - // IE 8 doesn't work on object elements - if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { - groups = tokenize( selector ); - - if ( (old = context.getAttribute("id")) ) { - nid = old.replace( rescape, "\\$&" ); - } else { - context.setAttribute( "id", nid ); - } - nid = "[id='" + nid + "'] "; - - i = groups.length; - while ( i-- ) { - groups[i] = nid + toSelector( groups[i] ); - } - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; - newSelector = groups.join(","); - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch(qsaError) { - } finally { - if ( !old ) { - context.removeAttribute("id"); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return !!fn( div ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( div.parentNode ) { - div.parentNode.removeChild( div ); - } - // release memory in IE - div = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = attrs.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - ( ~b.sourceIndex || MAX_NEGATIVE ) - - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== strundefined && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, - doc = node ? node.ownerDocument || node : preferredDoc, - parent = doc.defaultView; - - // If no document and documentElement is available, return - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Set our document - document = doc; - docElem = doc.documentElement; - - // Support tests - documentIsHTML = !isXML( doc ); - - // Support: IE>8 - // If iframe document is assigned to "document" variable and if iframe has been reloaded, - // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 - // IE6-8 do not support the defaultView property so parent will be undefined - if ( parent && parent !== parent.top ) { - // IE11 does not have attachEvent, so all must suffer - if ( parent.addEventListener ) { - parent.addEventListener( "unload", function() { - setDocument(); - }, false ); - } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", function() { - setDocument(); - }); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) - support.attributes = assert(function( div ) { - div.className = "i"; - return !div.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); - - // Check if getElementsByClassName can be trusted - support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { - div.innerHTML = "
        "; - - // Support: Safari<4 - // Catch class over-caching - div.firstChild.className = "i"; - // Support: Opera<10 - // Catch gEBCN failure to find non-leading classes - return div.getElementsByClassName("i").length === 2; - }); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( div ) { - docElem.appendChild( div ).id = expando; - return !doc.getElementsByName || !doc.getElementsByName( expando ).length; - }); - - // ID find and filter - if ( support.getById ) { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { - var m = context.getElementById( id ); - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - return m && m.parentNode ? [ m ] : []; - } - }; - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - } else { - // Support: IE6/7 - // getElementById is not reliable as a find shortcut - delete Expr.find["ID"]; - - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { - return context.getElementsByTagName( tag ); - } - } : - function( tag, context ) { - var elem, - tmp = [], - i = 0, - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See http://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( div ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( div.querySelectorAll("[msallowclip^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !div.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - }); - - assert(function( div ) { - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = doc.createElement("input"); - input.setAttribute( "type", "hidden" ); - div.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( div.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( !div.querySelectorAll(":enabled").length ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - div.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( div ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( div, "div" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( div, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully does not implement inclusive descendent - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === doc ? -1 : - b === doc ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return doc; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch(e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, outerCache, node, diff, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - // Seek `elem` from a previously-cached index - outerCache = parent[ expando ] || (parent[ expando ] = {}); - cache = outerCache[ type ] || []; - nodeIndex = cache[0] === dirruns && cache[1]; - diff = cache[0] === dirruns && cache[2]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - outerCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - // Use previously-cached element index if available - } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { - diff = cache[1]; - - // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) - } else { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { - // Cache the index of each encountered element - if ( useCache ) { - (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": function( elem ) { - return elem.disabled === false; - }, - - "disabled": function( elem ) { - return elem.disabled === true; - }, - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - checkNonElements = base && dir === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - if ( (oldCache = outerCache[ dir ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - outerCache[ dir ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context !== document && context; - } - - // Add elements passing elementMatchers directly to results - // Keep `i` a string if there are no elements so `matchedCount` will be "00" below - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // Apply set filters to unmatched elements - matchedCount += i; - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is no seed and only one group - if ( match.length === 1 ) { - - // Take a shortcut and set the context if the root selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - support.getById && context.nodeType === 9 && documentIsHTML && - Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome<14 -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( div1 ) { - // Should return 1, but returns 4 (following) - return div1.compareDocumentPosition( document.createElement("div") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( div ) { - div.innerHTML = ""; - return div.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( div ) { - div.innerHTML = ""; - div.firstChild.setAttribute( "value", "" ); - return div.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( div ) { - return div.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; -jQuery.expr[":"] = jQuery.expr.pseudos; -jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; - - - -var rneedsContext = jQuery.expr.match.needsContext; - -var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); - - - -var risSimple = /^.[^:#\[\.,]*$/; - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( jQuery.isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - /* jshint -W018 */ - return !!qualifier.call( elem, i, elem ) !== not; - }); - - } - - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - }); - - } - - if ( typeof qualifier === "string" ) { - if ( risSimple.test( qualifier ) ) { - return jQuery.filter( qualifier, elements, not ); - } - - qualifier = jQuery.filter( qualifier, elements ); - } - - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; - }); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - return elems.length === 1 && elem.nodeType === 1 ? - jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : - jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - })); -}; - -jQuery.fn.extend({ - find: function( selector ) { - var i, - len = this.length, - ret = [], - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - }) ); - } - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - // Needed because $( selector, context ) becomes $( context ).find( selector ) - ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); - ret.selector = this.selector ? this.selector + " " + selector : selector; - return ret; - }, - filter: function( selector ) { - return this.pushStack( winnow(this, selector || [], false) ); - }, - not: function( selector ) { - return this.pushStack( winnow(this, selector || [], true) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -}); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, - - init = jQuery.fn.init = function( selector, context ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && (match[1] || !context) ) { - - // HANDLE: $(html) -> $(array) - if ( match[1] ) { - context = context instanceof jQuery ? context[0] : context; - - // scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[1], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - // Properties of context are called as methods if possible - if ( jQuery.isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[2] ); - - // Check parentNode to catch when Blackberry 4.6 returns - // nodes that are no longer in the document #6963 - if ( elem && elem.parentNode ) { - // Inject the element directly into the jQuery object - this.length = 1; - this[0] = elem; - } - - this.context = document; - this.selector = selector; - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || rootjQuery ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this.context = this[0] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( jQuery.isFunction( selector ) ) { - return typeof rootjQuery.ready !== "undefined" ? - rootjQuery.ready( selector ) : - // Execute immediately if ready is not present - selector( jQuery ); - } - - if ( selector.selector !== undefined ) { - this.selector = selector.selector; - this.context = selector.context; - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - // methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.extend({ - dir: function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; - }, - - sibling: function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; - } -}); - -jQuery.fn.extend({ - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter(function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[i] ) ) { - return true; - } - } - }); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? - jQuery( selectors, context || this.context ) : - 0; - - for ( ; i < l; i++ ) { - for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { - // Always skip document fragments - if ( cur.nodeType < 11 && (pos ? - pos.index(cur) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector(cur, selectors)) ) { - - matched.push( cur ); - break; - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); - }, - - // Determine the position of an element within - // the matched set of elements - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.unique( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter(selector) - ); - } -}); - -function sibling( cur, dir ) { - while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each({ - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return jQuery.dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return jQuery.dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return jQuery.dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return jQuery.dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return jQuery.dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return jQuery.dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return jQuery.sibling( elem.firstChild ); - }, - contents: function( elem ) { - return elem.contentDocument || jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.unique( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -}); -var rnotwhite = (/\S+/g); - - - -// String to Object options format cache -var optionsCache = {}; - -// Convert String-formatted options into Object-formatted ones and store in cache -function createOptions( options ) { - var object = optionsCache[ options ] = {}; - jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { - object[ flag ] = true; - }); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - ( optionsCache[ options ] || createOptions( options ) ) : - jQuery.extend( {}, options ); - - var // Last fire value (for non-forgettable lists) - memory, - // Flag to know if list was already fired - fired, - // Flag to know if list is currently firing - firing, - // First callback to fire (used internally by add and fireWith) - firingStart, - // End of the loop when firing - firingLength, - // Index of currently firing callback (modified by remove if needed) - firingIndex, - // Actual callback list - list = [], - // Stack of fire calls for repeatable lists - stack = !options.once && [], - // Fire callbacks - fire = function( data ) { - memory = options.memory && data; - fired = true; - firingIndex = firingStart || 0; - firingStart = 0; - firingLength = list.length; - firing = true; - for ( ; list && firingIndex < firingLength; firingIndex++ ) { - if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { - memory = false; // To prevent further calls using add - break; - } - } - firing = false; - if ( list ) { - if ( stack ) { - if ( stack.length ) { - fire( stack.shift() ); - } - } else if ( memory ) { - list = []; - } else { - self.disable(); - } - } - }, - // Actual Callbacks object - self = { - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - // First, we save the current length - var start = list.length; - (function add( args ) { - jQuery.each( args, function( _, arg ) { - var type = jQuery.type( arg ); - if ( type === "function" ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && type !== "string" ) { - // Inspect recursively - add( arg ); - } - }); - })( arguments ); - // Do we need to add the callbacks to the - // current firing batch? - if ( firing ) { - firingLength = list.length; - // With memory, if we're not firing then - // we should call right away - } else if ( memory ) { - firingStart = start; - fire( memory ); - } - } - return this; - }, - // Remove a callback from the list - remove: function() { - if ( list ) { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - // Handle firing indexes - if ( firing ) { - if ( index <= firingLength ) { - firingLength--; - } - if ( index <= firingIndex ) { - firingIndex--; - } - } - } - }); - } - return this; - }, - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); - }, - // Remove all callbacks from the list - empty: function() { - list = []; - firingLength = 0; - return this; - }, - // Have the list do nothing anymore - disable: function() { - list = stack = memory = undefined; - return this; - }, - // Is it disabled? - disabled: function() { - return !list; - }, - // Lock the list in its current state - lock: function() { - stack = undefined; - if ( !memory ) { - self.disable(); - } - return this; - }, - // Is it locked? - locked: function() { - return !stack; - }, - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( list && ( !fired || stack ) ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - if ( firing ) { - stack.push( args ); - } else { - fire( args ); - } - } - return this; - }, - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -jQuery.extend({ - - Deferred: function( func ) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], - [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], - [ "notify", "progress", jQuery.Callbacks("memory") ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - then: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - return jQuery.Deferred(function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; - // deferred[ done | fail | progress ] for forwarding actions to newDefer - deferred[ tuple[1] ](function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && jQuery.isFunction( returned.promise ) ) { - returned.promise() - .done( newDefer.resolve ) - .fail( newDefer.reject ) - .progress( newDefer.notify ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); - } - }); - }); - fns = null; - }).promise(); - }, - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Keep pipe for back-compat - promise.pipe = promise.then; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 3 ]; - - // promise[ done | fail | progress ] = list.add - promise[ tuple[1] ] = list.add; - - // Handle state - if ( stateString ) { - list.add(function() { - // state = [ resolved | rejected ] - state = stateString; - - // [ reject_list | resolve_list ].disable; progress_list.lock - }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); - } - - // deferred[ resolve | reject | notify ] - deferred[ tuple[0] ] = function() { - deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); - return this; - }; - deferred[ tuple[0] + "With" ] = list.fireWith; - }); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( subordinate /* , ..., subordinateN */ ) { - var i = 0, - resolveValues = slice.call( arguments ), - length = resolveValues.length, - - // the count of uncompleted subordinates - remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, - - // the master Deferred. If resolveValues consist of only a single Deferred, just use that. - deferred = remaining === 1 ? subordinate : jQuery.Deferred(), - - // Update function for both resolve and progress values - updateFunc = function( i, contexts, values ) { - return function( value ) { - contexts[ i ] = this; - values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( values === progressValues ) { - deferred.notifyWith( contexts, values ); - } else if ( !( --remaining ) ) { - deferred.resolveWith( contexts, values ); - } - }; - }, - - progressValues, progressContexts, resolveContexts; - - // add listeners to Deferred subordinates; treat others as resolved - if ( length > 1 ) { - progressValues = new Array( length ); - progressContexts = new Array( length ); - resolveContexts = new Array( length ); - for ( ; i < length; i++ ) { - if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { - resolveValues[ i ].promise() - .done( updateFunc( i, resolveContexts, resolveValues ) ) - .fail( deferred.reject ) - .progress( updateFunc( i, progressContexts, progressValues ) ); - } else { - --remaining; - } - } - } - - // if we're not waiting on anything, resolve the master - if ( !remaining ) { - deferred.resolveWith( resolveContexts, resolveValues ); - } - - return deferred.promise(); - } -}); - - -// The deferred used on DOM ready -var readyList; - -jQuery.fn.ready = function( fn ) { - // Add the callback - jQuery.ready.promise().done( fn ); - - return this; -}; - -jQuery.extend({ - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Hold (or release) the ready event - holdReady: function( hold ) { - if ( hold ) { - jQuery.readyWait++; - } else { - jQuery.ready( true ); - } - }, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - - // Trigger any bound ready events - if ( jQuery.fn.triggerHandler ) { - jQuery( document ).triggerHandler( "ready" ); - jQuery( document ).off( "ready" ); - } - } -}); - -/** - * The ready event handler and self cleanup method - */ -function completed() { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); - jQuery.ready(); -} - -jQuery.ready.promise = function( obj ) { - if ( !readyList ) { - - readyList = jQuery.Deferred(); - - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // we once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { - // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); - - } else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); - } - } - return readyList.promise( obj ); -}; - -// Kick off the DOM ready check even if the user does not -jQuery.ready.promise(); - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( jQuery.type( key ) === "object" ) { - chainable = true; - for ( i in key ) { - jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !jQuery.isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); - } - } - } - - return chainable ? - elems : - - // Gets - bulk ? - fn.call( elems ) : - len ? fn( elems[0], key ) : emptyGet; -}; - - -/** - * Determines whether an object can have data - */ -jQuery.acceptData = function( owner ) { - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - /* jshint -W018 */ - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - -function Data() { - // Support: Android < 4, - // Old WebKit does not have Object.preventExtensions/freeze method, - // return new empty object instead with no [[set]] accessor - Object.defineProperty( this.cache = {}, 0, { - get: function() { - return {}; - } - }); - - this.expando = jQuery.expando + Math.random(); -} - -Data.uid = 1; -Data.accepts = jQuery.acceptData; - -Data.prototype = { - key: function( owner ) { - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return the key for a frozen object. - if ( !Data.accepts( owner ) ) { - return 0; - } - - var descriptor = {}, - // Check if the owner object already has a cache key - unlock = owner[ this.expando ]; - - // If not, create one - if ( !unlock ) { - unlock = Data.uid++; - - // Secure it in a non-enumerable, non-writable property - try { - descriptor[ this.expando ] = { value: unlock }; - Object.defineProperties( owner, descriptor ); - - // Support: Android < 4 - // Fallback to a less secure definition - } catch ( e ) { - descriptor[ this.expando ] = unlock; - jQuery.extend( owner, descriptor ); - } - } - - // Ensure the cache object - if ( !this.cache[ unlock ] ) { - this.cache[ unlock ] = {}; - } - - return unlock; - }, - set: function( owner, data, value ) { - var prop, - // There may be an unlock assigned to this node, - // if there is no entry for this "owner", create one inline - // and set the unlock as though an owner entry had always existed - unlock = this.key( owner ), - cache = this.cache[ unlock ]; - - // Handle: [ owner, key, value ] args - if ( typeof data === "string" ) { - cache[ data ] = value; - - // Handle: [ owner, { properties } ] args - } else { - // Fresh assignments by object are shallow copied - if ( jQuery.isEmptyObject( cache ) ) { - jQuery.extend( this.cache[ unlock ], data ); - // Otherwise, copy the properties one-by-one to the cache object - } else { - for ( prop in data ) { - cache[ prop ] = data[ prop ]; - } - } - } - return cache; - }, - get: function( owner, key ) { - // Either a valid cache is found, or will be created. - // New caches will be created and the unlock returned, - // allowing direct access to the newly created - // empty data object. A valid owner object must be provided. - var cache = this.cache[ this.key( owner ) ]; - - return key === undefined ? - cache : cache[ key ]; - }, - access: function( owner, key, value ) { - var stored; - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ((key && typeof key === "string") && value === undefined) ) { - - stored = this.get( owner, key ); - - return stored !== undefined ? - stored : this.get( owner, jQuery.camelCase(key) ); - } - - // [*]When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, name, camel, - unlock = this.key( owner ), - cache = this.cache[ unlock ]; - - if ( key === undefined ) { - this.cache[ unlock ] = {}; - - } else { - // Support array or space separated string of keys - if ( jQuery.isArray( key ) ) { - // If "name" is an array of keys... - // When data is initially created, via ("key", "val") signature, - // keys will be converted to camelCase. - // Since there is no way to tell _how_ a key was added, remove - // both plain key and camelCase key. #12786 - // This will only penalize the array argument path. - name = key.concat( key.map( jQuery.camelCase ) ); - } else { - camel = jQuery.camelCase( key ); - // Try the string as a key before any manipulation - if ( key in cache ) { - name = [ key, camel ]; - } else { - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - name = camel; - name = name in cache ? - [ name ] : ( name.match( rnotwhite ) || [] ); - } - } - - i = name.length; - while ( i-- ) { - delete cache[ name[ i ] ]; - } - } - }, - hasData: function( owner ) { - return !jQuery.isEmptyObject( - this.cache[ owner[ this.expando ] ] || {} - ); - }, - discard: function( owner ) { - if ( owner[ this.expando ] ) { - delete this.cache[ owner[ this.expando ] ]; - } - } -}; -var data_priv = new Data(); - -var data_user = new Data(); - - - -/* - Implementation Summary - - 1. Enforce API surface and semantic compatibility with 1.9.x branch - 2. Improve the module's maintainability by reducing the storage - paths to a single mechanism. - 3. Use the same single mechanism to support "private" and "user" data. - 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) - 5. Avoid exposing implementation details on user objects (eg. expando properties) - 6. Provide a clear path for implementation upgrade to WeakMap in 2014 -*/ -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /([A-Z])/g; - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = data === "true" ? true : - data === "false" ? false : - data === "null" ? null : - // Only convert to a number if it doesn't change the string - +data + "" === data ? +data : - rbrace.test( data ) ? jQuery.parseJSON( data ) : - data; - } catch( e ) {} - - // Make sure we set the data so it isn't changed later - data_user.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend({ - hasData: function( elem ) { - return data_user.hasData( elem ) || data_priv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return data_user.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - data_user.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to data_priv methods, these can be deprecated. - _data: function( elem, name, data ) { - return data_priv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - data_priv.remove( elem, name ); - } -}); - -jQuery.fn.extend({ - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = data_user.get( elem ); - - if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE11+ - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.slice(5) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - data_priv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each(function() { - data_user.set( this, key ); - }); - } - - return access( this, function( value ) { - var data, - camelKey = jQuery.camelCase( key ); - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - // Attempt to get data from the cache - // with the key as-is - data = data_user.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to get data from the cache - // with the key camelized - data = data_user.get( elem, camelKey ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, camelKey, undefined ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each(function() { - // First, attempt to store a copy or reference of any - // data that might've been store with a camelCased key. - var data = data_user.get( this, camelKey ); - - // For HTML5 data-* attribute interop, we have to - // store property names with dashes in a camelCase form. - // This might not apply to all properties...* - data_user.set( this, camelKey, value ); - - // *... In the case of properties that might _actually_ - // have dashes, we need to also store a copy of that - // unchanged property. - if ( key.indexOf("-") !== -1 && data !== undefined ) { - data_user.set( this, key, value ); - } - }); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each(function() { - data_user.remove( this, key ); - }); - } -}); - - -jQuery.extend({ - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = data_priv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || jQuery.isArray( data ) ) { - queue = data_priv.access( elem, type, jQuery.makeArray(data) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // not intended for public consumption - generates a queueHooks object, or returns the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return data_priv.get( elem, key ) || data_priv.access( elem, key, { - empty: jQuery.Callbacks("once memory").add(function() { - data_priv.remove( elem, [ type + "queue", key ] ); - }) - }); - } -}); - -jQuery.fn.extend({ - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[0], type ); - } - - return data === undefined ? - this : - this.each(function() { - var queue = jQuery.queue( this, type, data ); - - // ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[0] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - }); - }, - dequeue: function( type ) { - return this.each(function() { - jQuery.dequeue( this, type ); - }); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = data_priv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -}); -var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var isHidden = function( elem, el ) { - // isHidden might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); - }; - -var rcheckableType = (/^(?:checkbox|radio)$/i); - - - -(function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // #11217 - WebKit loses check when the name is after the checked attribute - // Support: Windows Web Apps (WWA) - // `name` and `type` need .setAttribute for WWA - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3 - // old WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Make sure textarea (and checkbox) defaultValue is properly cloned - // Support: IE9-IE11+ - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -})(); -var strundefined = typeof undefined; - - - -support.focusinBubbles = "onfocusin" in window; - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, - rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = data_priv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !(events = elemData.events) ) { - events = elemData.events = {}; - } - if ( !(eventHandle = elemData.handle) ) { - eventHandle = elemData.handle = function( e ) { - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend({ - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join(".") - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !(handlers = events[ type ]) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle, false ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = data_priv.hasData( elem ) && data_priv.get( elem ); - - if ( !elemData || !(events = elemData.events) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnotwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[t] ) || []; - type = origType = tmp[1]; - namespaces = ( tmp[2] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - delete elemData.handle; - data_priv.remove( elem, "events" ); - } - }, - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; - - cur = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf(".") >= 0 ) { - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split("."); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf(":") < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join("."); - event.namespace_re = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === (elem.ownerDocument || document) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { - - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && jQuery.acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && - jQuery.acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - elem[ type ](); - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - dispatch: function( event ) { - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( event ); - - var i, j, ret, matched, handleObj, - handlerQueue = [], - args = slice.call( arguments ), - handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[0] = event; - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or - // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). - if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) - .apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( (event.result = ret) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, matches, sel, handleObj, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - // Black-hole SVG instance trees (#13180) - // Avoid non-left-click bubbling in Firefox (#3861) - if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.disabled !== true || event.type !== "click" ) { - matches = []; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matches[ sel ] === undefined ) { - matches[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) >= 0 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matches[ sel ] ) { - matches.push( handleObj ); - } - } - if ( matches.length ) { - handlerQueue.push({ elem: cur, handlers: matches }); - } - } - } - } - - // Add the remaining (directly-bound) handlers - if ( delegateCount < handlers.length ) { - handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); - } - - return handlerQueue; - }, - - // Includes some event props shared by KeyEvent and MouseEvent - props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), - - fixHooks: {}, - - keyHooks: { - props: "char charCode key keyCode".split(" "), - filter: function( event, original ) { - - // Add which for key events - if ( event.which == null ) { - event.which = original.charCode != null ? original.charCode : original.keyCode; - } - - return event; - } - }, - - mouseHooks: { - props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), - filter: function( event, original ) { - var eventDoc, doc, body, - button = original.button; - - // Calculate pageX/Y if missing and clientX/Y available - if ( event.pageX == null && original.clientX != null ) { - eventDoc = event.target.ownerDocument || document; - doc = eventDoc.documentElement; - body = eventDoc.body; - - event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); - event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - // Note: button is not normalized, so don't use it - if ( !event.which && button !== undefined ) { - event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); - } - - return event; - } - }, - - fix: function( event ) { - if ( event[ jQuery.expando ] ) { - return event; - } - - // Create a writable copy of the event object and normalize some properties - var i, prop, copy, - type = event.type, - originalEvent = event, - fixHook = this.fixHooks[ type ]; - - if ( !fixHook ) { - this.fixHooks[ type ] = fixHook = - rmouseEvent.test( type ) ? this.mouseHooks : - rkeyEvent.test( type ) ? this.keyHooks : - {}; - } - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; - - event = new jQuery.Event( originalEvent ); - - i = copy.length; - while ( i-- ) { - prop = copy[ i ]; - event[ prop ] = originalEvent[ prop ]; - } - - // Support: Cordova 2.5 (WebKit) (#13255) - // All events should have a target; Cordova deviceready doesn't - if ( !event.target ) { - event.target = document; - } - - // Support: Safari 6.0+, Chrome < 28 - // Target should not be a text node (#504, #13143) - if ( event.target.nodeType === 3 ) { - event.target = event.target.parentNode; - } - - return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; - }, - - special: { - load: { - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return jQuery.nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - }, - - simulate: function( type, elem, event, bubble ) { - // Piggyback on a donor event to simulate a different one. - // Fake originalEvent to avoid donor's stopPropagation, but if the - // simulated event prevents default then we do the same on the donor. - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true, - originalEvent: {} - } - ); - if ( bubble ) { - jQuery.event.trigger( e, null, elem ); - } else { - jQuery.event.dispatch.call( elem, e ); - } - if ( e.isDefaultPrevented() ) { - event.preventDefault(); - } - } -}; - -jQuery.removeEvent = function( elem, type, handle ) { - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle, false ); - } -}; - -jQuery.Event = function( src, props ) { - // Allow instantiation without the 'new' keyword - if ( !(this instanceof jQuery.Event) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - // Support: Android < 4.0 - src.returnValue === false ? - returnTrue : - returnFalse; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || jQuery.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && e.preventDefault ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && e.stopPropagation ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && e.stopImmediatePropagation ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Create mouseenter/leave events using mouseover/out and event-time checks -// Support: Chrome 15+ -jQuery.each({ - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mousenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || (related !== target && !jQuery.contains( target, related )) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -}); - -// Create "bubbling" focus and blur events -// Support: Firefox, Chrome, Safari -if ( !support.focusinBubbles ) { - jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - data_priv.remove( doc, fix ); - - } else { - data_priv.access( doc, fix, attaches ); - } - } - }; - }); -} - -jQuery.fn.extend({ - - on: function( types, selector, data, fn, /*INTERNAL*/ one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - this.on( type, selector, data, types[ type ], one ); - } - return this; - } - - if ( data == null && fn == null ) { - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return this; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return this.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - }); - }, - one: function( types, selector, data, fn ) { - return this.on( types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each(function() { - jQuery.event.remove( this, types, fn, selector ); - }); - }, - - trigger: function( type, data ) { - return this.each(function() { - jQuery.event.trigger( type, data, this ); - }); - }, - triggerHandler: function( type, data ) { - var elem = this[0]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -}); - - -var - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, - rtagName = /<([\w:]+)/, - rhtml = /<|&#?\w+;/, - rnoInnerhtml = /<(?:script|style|link)/i, - // checked="checked" or checked - rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, - rscriptType = /^$|\/(?:java|ecma)script/i, - rscriptTypeMasked = /^true\/(.*)/, - rcleanScript = /^\s*\s*$/g, - - // We have to close these tags to support XHTML (#13200) - wrapMap = { - - // Support: IE 9 - option: [ 1, "" ], - - thead: [ 1, "", "
        " ], - col: [ 2, "", "
        " ], - tr: [ 2, "", "
        " ], - td: [ 3, "", "
        " ], - - _default: [ 0, "", "" ] - }; - -// Support: IE 9 -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: 1.x compatibility -// Manipulating tables requires a tbody -function manipulationTarget( elem, content ) { - return jQuery.nodeName( elem, "table" ) && - jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? - - elem.getElementsByTagName("tbody")[0] || - elem.appendChild( elem.ownerDocument.createElement("tbody") ) : - elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - var match = rscriptTypeMasked.exec( elem.type ); - - if ( match ) { - elem.type = match[ 1 ]; - } else { - elem.removeAttribute("type"); - } - - return elem; -} - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - data_priv.set( - elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) - ); - } -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( data_priv.hasData( src ) ) { - pdataOld = data_priv.access( src ); - pdataCur = data_priv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( data_user.hasData( src ) ) { - udataOld = data_user.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - data_user.set( dest, udataCur ); - } -} - -function getAll( context, tag ) { - var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : - context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : - []; - - return tag === undefined || tag && jQuery.nodeName( context, tag ) ? - jQuery.merge( [ context ], ret ) : - ret; -} - -// Support: IE >= 9 -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -jQuery.extend({ - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); - - // Support: IE >= 9 - // Fix Cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - buildFragment: function( elems, context, scripts, selection ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( jQuery.type( elem ) === "object" ) { - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement("div") ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Fixes #12346 - // Support: Webkit, IE - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( (elem = nodes[ i++ ]) ) { - - // #4087 - If origin and destination elements are the same, and this is - // that element, do not do anything - if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( (elem = tmp[ j++ ]) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; - }, - - cleanData: function( elems ) { - var data, elem, type, key, - special = jQuery.event.special, - i = 0; - - for ( ; (elem = elems[ i ]) !== undefined; i++ ) { - if ( jQuery.acceptData( elem ) ) { - key = elem[ data_priv.expando ]; - - if ( key && (data = data_priv.cache[ key ]) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - if ( data_priv.cache[ key ] ) { - // Discard any remaining `private` data - delete data_priv.cache[ key ]; - } - } - } - // Discard any remaining `user` data - delete data_user.cache[ elem[ data_user.expando ] ]; - } - } -}); - -jQuery.fn.extend({ - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each(function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - }); - }, null, value, arguments.length ); - }, - - append: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - }); - }, - - prepend: function() { - return this.domManip( arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - }); - }, - - before: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - }); - }, - - after: function() { - return this.domManip( arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - }); - }, - - remove: function( selector, keepData /* Internal Use Only */ ) { - var elem, - elems = selector ? jQuery.filter( selector, this ) : this, - i = 0; - - for ( ; (elem = elems[i]) != null; i++ ) { - if ( !keepData && elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem ) ); - } - - if ( elem.parentNode ) { - if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { - setGlobalEval( getAll( elem, "script" ) ); - } - elem.parentNode.removeChild( elem ); - } - } - - return this; - }, - - empty: function() { - var elem, - i = 0; - - for ( ; (elem = this[i]) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map(function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - }); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = value.replace( rxhtmlTag, "<$1>" ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var arg = arguments[ 0 ]; - - // Make the changes, replacing each context element with the new content - this.domManip( arguments, function( elem ) { - arg = this.parentNode; - - jQuery.cleanData( getAll( this ) ); - - if ( arg ) { - arg.replaceChild( elem, this ); - } - }); - - // Force removal if there was no new content (e.g., from empty arguments) - return arg && (arg.length || arg.nodeType) ? this : this.remove(); - }, - - detach: function( selector ) { - return this.remove( selector, true ); - }, - - domManip: function( args, callback ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = this.length, - set = this, - iNoClone = l - 1, - value = args[ 0 ], - isFunction = jQuery.isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( isFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return this.each(function( index ) { - var self = set.eq( index ); - if ( isFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - self.domManip( args, callback ); - }); - } - - if ( l ) { - fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - if ( first ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - // Support: QtWebKit - // jQuery.merge because push.apply(_, arraylike) throws - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( this[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { - - if ( node.src ) { - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); - } - } - } - } - } - } - - return this; - } -}); - -jQuery.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: QtWebKit - // .get() because push.apply(_, arraylike) throws - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -}); - - -var iframe, - elemdisplay = {}; - -/** - * Retrieve the actual display of a element - * @param {String} name nodeName of the element - * @param {Object} doc Document object - */ -// Called only from within defaultDisplay -function actualDisplay( name, doc ) { - var style, - elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - - // getDefaultComputedStyle might be reliably used only on attached element - display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? - - // Use of this method is a temporary fix (more like optmization) until something better comes along, - // since it was removed from specification and supported only in FF - style.display : jQuery.css( elem[ 0 ], "display" ); - - // We don't have any data stored on the element, - // so use "detach" method as fast way to get rid of the element - elem.detach(); - - return display; -} - -/** - * Try to determine the default display value of an element - * @param {String} nodeName - */ -function defaultDisplay( nodeName ) { - var doc = document, - display = elemdisplay[ nodeName ]; - - if ( !display ) { - display = actualDisplay( nodeName, doc ); - - // If the simple way fails, read from inside an iframe - if ( display === "none" || !display ) { - - // Use the already-created iframe if possible - iframe = (iframe || jQuery( " - - -
        - - -
        -

        - They are Team Cable -

        - - - - -

        - Cable companies are famous for high prices and poor service. Several rank as the most hated companies in America. Now, they're attacking the Internet–their one competitor and our only refuge–with plans to charge websites arbitrary fees and slow (to a crawl) any sites that won't pay up. If they win, the Internet dies. -

        -
        - -
        -

        - We are Team Internet -

        -

        - We believe in the free and open Internet, with no arbitrary fees or slow lanes for sites that can't pay. Each of us has taken taken a stand for "Title II reclassification," the only option that lets the FCC stop Team Cable from breaking the key principles of the Internet we love. Will you join us? Take Action. -

        - Load more - - -
        - - - -
        - -
        -
        -
        - -
        -
        Companies
        -
          -
          -
          -
          Organizations
          -
            -
            -
            -
            People
            -
              -
              - -
              -
              -
              - -
              -

              - Understand the battle -

              -

              - Leave it to comedians. If you're looking to understand Team Cable's plans for the Internet, watch this video. Nobody explains it better than John Oliver. -

              -
              - -
              -
              - -
              - -
              -
              -
              - -
              -

              What is net neutrality?

              -

              Net Neutrality is the Internet’s guiding principle: It preserves our right to communicate freely online.

              -

              Net Neutrality means that the cable/telecom companies must provide us with open networks — and should not block or discriminate against any applications or content that ride over those networks. Just as your phone company cannot decide who you could call and what you say on that call, your ISP should not be concerned with what content you view or post online.

              -

              Net Neutrality is what enables the Internet to be such a hotbed for innovation. If you bring a new service online, the cable/telecom companies should deliver it just like they’d deliver content from a corporate behemoth like Google or NBC.

              -

              Net Neutrality is what gives every startup the same chance to reach customers and users as any existing company. Simply, without Net Neutrality, startups and small business will be subject to discrimination based on a pay-to-play Internet, and the open Internet and the economic growth it has represented will be at risk.

              - -

              What are we fighting against?

              -

              On May 15, 2014, the Federal Communications Commission proposed rules that would permit rampant discrimination online, undermining Net Neutrality. The FCC’s proposal would be a huge boon for the cable companies and would undermine the Internet as we know it.

              -

              Under the proposed rules, cable giants like AT&T, Comcast, and Verizon would be able to create a two-tiered Internet, with slow lanes (for most of us) and fast lanes (for wealthy corporations that are willing pay fees in exchange for fast service).

              -

              Cable companies would have the power to discriminate against online content and applications — they could pick winners and losers, shake sites down for fees, block content for political reasons, and make it easier for Internet users to view cable content. (For instance, Comcast owns NBC, and so has incentives to make it easier to view NBC content than that of other providers.)

              - -

              What are we fighting for?

              -

              After public outcry, the FCC left the door open for the only proposal that can preserve Net Neutrality: reclassifying Internet access as a "common carrier" under Title II of the Communications Act.

              -

              Anything other than Title II is an attack on our rights to connect and communicate.

              -

              The FCC has opened up a comment period for us to weigh in on its proposal, but it ends on Sept. 15. After that, the FCC will deliberate and decide what, if any, new rules to issue — likely before the end of the year.

              - -

              What does the other side say?

              -

              The other side — mostly, the cable companies — wants the right to control how you access content, and they’ll say and do just about anything to try to make sure they can pick and choose which sites will get preferential treatment.

              -

              To enforce their will, they’re employing every trick in the book: They’ve bought armies of lobbyists, set up fake grassroots groups, and donated millions of dollars to politicians. And they make things up.

              -

              First, they wrongly claim that Title II will reduce investment in infrastructure, but they have no evidence. They also claim that the FCC can ensure Net Neutrality without using Title II. That’s also false. In fact, Title II is the only way to ensure real net neutrality. -

              - -

              How will we win?

              -

              We’ll win by making sure that those in power understand that the American people overwhelmingly support Net Neutrality and that America’s growing Internet economy requires Net Neutrality to thrive.

              -

              More than 4 million people have already spoken out in support of Net Neutrality — more than have ever weighed in on an issue in front of the FCC — and upwards of 99% of us are on the same side!

              -

              While more elected officials are taking up our cause, including President Obama, we need to keep up the pressure through the fall if we’re going to win.

              -

              The cable companies are powerful and vicious and they won’t back down. Neither can we. Join the Internet Slowdown on Sept. 10 and click here for more things you can do to fight back.

              -

              *Adapted in part from posts by Free Press Action Fund and others. Please click here for more comprehensive information:
              http://www.savetheinternet.com/net-neutrality-what-you-need-know-now

              - -
              -
              -
              -
              - -
              -

              - Get the t-shirt -

              -

              - Are you on Team Internet? Show it off with a t-shirt or hoodie. Proceeds will let us distribute these shirts en masse to the members of Congress, staffers and FCC employees who are fighting from the inside. -

              -
              - BUY -
              - -
              -

              - Political scoreboard -

              -

              - Team Cable has the money, so they have the power. They've been lobbying Congress and the FCC for years, and now they're calling in their favors. Here's where our leaders stand. We're losing. But public pressure works. -

              -
              - -
              -

              - Team Cable -

              - Unknown -

              - Team Internet -

              -
              - -
              - - Show All › - -
              -
              -
              $
              -
              5x
              -
              -
              -
              $
              -
              1x
              -
              -
              -

              - Over the past ten years, Team Cable has out-lobbyied Team Internet 5 to 1. Source: Sunlight Foundation -

              - - Contact them! -
              - - - - - - -
            • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/package.json b/package.json deleted file mode 100644 index 9b9dc166c..000000000 --- a/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "battleforthenet-www", - "version": "0.0.1", - "description": "frontend site for battleforthenet", - "main": "demo.html", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "battleforthenet-www" - }, - "author": "Jeff Lyon", - "license": "GPLv3", - "devDependencies": { - "grunt": "~0.4.5", - "grunt-contrib-less": "~0.11.4", - "grunt-contrib-watch": "~0.6.1" - } -} diff --git a/package.json.backup b/package.json.backup deleted file mode 100755 index 9b9dc166c..000000000 --- a/package.json.backup +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "battleforthenet-www", - "version": "0.0.1", - "description": "frontend site for battleforthenet", - "main": "demo.html", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "battleforthenet-www" - }, - "author": "Jeff Lyon", - "license": "GPLv3", - "devDependencies": { - "grunt": "~0.4.5", - "grunt-contrib-less": "~0.11.4", - "grunt-contrib-watch": "~0.6.1" - } -} diff --git a/privacy/index.html b/privacy/index.html deleted file mode 100755 index 54aad8c72..000000000 --- a/privacy/index.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - Privacy Policy - Battle For The Net - - - - - - - - - - -
              -
              -

              Privacy Policy

              -
              - -
              - -

              - Fight for the Future is committed to protecting your privacy. If you sign onto one of our various mailing lists, petitions, or use our contact tools, we retain the information you provided to primarily manage our mailing lists, and secondarily to transmit only the information that is required to service providers and public officials when required to submit your communications with them. -

              -

              - We do not sell our email list. We do not share or distribute your contact information unless specifically stated so. -

              -

              - For petitions, open letters, or similar public communications that you've signed or completed, we treat your name, city, state, and comments as public information. We will not make your street address publicly available, but we may transmit it to public officials as part of a petition or open letter. -

              -

              - We may have joint campaigns with cooperating organizations and in those cases will explicitly state that we are doing so. In those cases, if your information will be shared with another organization in order to facilitate email delivery, list management, and other stated purposes, we will explicitly make notice on any campaign or website that this organization owns before you submit any of your information. If you are submitting your information to one of these campaigns or websites, you are opting into the sharing of your information for the stated purposes and will be treated as so. We will only share information which you submit at the time of notice and will not share any person's information obtained from other past or future campaigns, knowingly or on purpose. -

              -

              - We sometimes carry out our business or operate our website using third party tools. Information may be shared with the operators of those tools in connection with our use of those tools to operate our website. -

              -

              - Date changed: 10/14/2014 -

              -
              - -
              - -

              - Demand Progress/Demand Progress Action takes your privacy very seriously. We do not share your email address or other personal information with unauthorized entities without your permission. -

              -

              - We use the information we collect to inform you of news that relates to Demand Progress, and to deliver petition signatures, emails/letters, and similar communications to designated targets. -

              -

              - For petitions, emails/letters, or similar public communications that you’ve signed or completed, we treat your name, city, state, and comments as public information. We will not make your street or email address address publicly available, but we may transmit it to public officials/petition targets as part of a petition or open letter. (For instance, this information must be included to enable delivery of emails to members of Congress.) Demand Progress may also use cookies from third parties such as Google Adwords to served ads based on usage of this site. -

              -

              - DP (our 527 arm) and DPA (our 501(c)4 arm) have a resource sharing agreement that enables each to contact activists whose contact information was gathered by the other. DP/DPA also owns and administers the WatchDog.net site. And as of the summer of 2013, DP/DPA owns and administers Rootstrikers.org. DP/DPA may contact subscribers to the Watchdog.net and Rootstrikers.org sublists. You may unsubscribe from email alerts from any or all of DP/DPA, Rootstrikers.org, or Watchdog.net at any time. -

              -

              - If you enter your information as part of a clearly-labeled "joint action" with another organization, we may share your name, email, and other information you have entered with the partner organization(s) for that particular action. -

              -

              - If you have any questions about our privacy policy, don’t hesitate to contact us. -

              -
              - -
              - -

              -

              Free Press and the Free Press Action Fund are committed to protecting the privacy of visitors to our website, as well as that of our members and activists. In fact, we support enhanced protections for everyone’s electronic and Internet privacy.
              - In this policy, “Free Press” refers to both Free Press and Free Press Action Fund staff, board members, cooperating attorneys, interns, volunteers and consultants. -

              -

              In general, Free Press and our software partners treat your contact information as private and confidential. Free Press will not give, sell, rent, exchange or otherwise share your information with anyone else without your prior consent except as compelled by law (see below). -

              -

              We will notify users of updates to this policy by noting the date of new changes directly below this statement.

              -

              This policy was last amended on June 5, 2014. -

              -

              Policy effective May 1, 2003. -

              -

              Website Policies -

              -

              Free Press and third-party vendor servers may record the IP address of your computer; the browser software you use and your operating system; the date and time you access our site; and the Internet address of the website from which you linked to our site. -

              -

              We use this information to measure the number of visitors to different sections of the site, to diagnose and correct system errors and to improve the site. We do not connect this information to your name or identity, and we do not retain this information permanently. -

              -

              Information that is not provided with the express intent of subscription, ordering, membership or donation will not be captured for use in other communications unless otherwise noted. We (and our vendors) restrict the use of “cookies” on this site primarily to convenience features such as auto login, surveys and polls. We typically delete these cookies as soon as is reasonably possible. We’re committed to respecting your desire to opt out of online-tracking schemes, and therefore we include no third-party tracking buttons or beacons on our sites. -

              -

              External Links -

              -

              Free Press has not reviewed all of the sites linked to this site and is not responsible for the privacy practices or the content of any off-site pages or any other sites linked to this site, whether or not they are affiliated with Free Press or the Free Press Action Fund. Such linked sites are for your convenience only and you access them at your own risk. Free Press makes no representations or warranties as to the accuracy or functioning of any such link. That another website is linked to our site does not constitute endorsement from Free Press or the Free Press Action Fund of the owner of the other site, the content of its site or its products or services. -

              -

              Electronic Mailing List Policies -

              -

              Free Press offers several electronic mailing lists. If you choose to subscribe to any of these lists, we may ask for personal information such as your name, ZIP code and email address. We use this information solely to manage our lists (for example, we may use your ZIP code for a targeted mailing on an issue affecting your area). We do not sell, rent or share any information from our electronic mailing lists. -

              -

              There are a number of ways to subscribe to Free Press’ electronic mailing lists, including submitting a form on our website, opting in when you engage in online or offline activism, or mailing or completing a sign-up form from a paper petition, brochure or flier. When you subscribe, you will typically receive a confirmation message welcoming you. -

              -

              You may unsubscribe from any of our lists at any time. If you wish to update your information, delete or otherwise make changes to your relationship with us, or remove yourself entirely from our list(s), click here. -

              -

              Lists Free Press maintains for electronic mailings are exclusively “opt-in” lists. We do not purchase information from third-party sources or gather personal data from the Web (known as spidering) for inclusion in our email lists. -

              -

              Online Activism -

              -

              Our website offers many ways to engage in online activism. Many of these tools are hosted and administered by a third party (currently ActionKit). When you provide personal information by signing a petition or engaging in other actions, that personal information may be stored on our server(s) and/or ActionKit’s server(s). If you choose to join a mailing list or become a member at the same time that you participate in an online action, your relevant information will be kept and used for those other purposes.

              -

              We may deliver petitions and surveys you’ve completed to the president, federal and state legislators, agencies like the Federal Communications Commission, other elected and appointed officials, or other entities such as companies whose policies we seek to change. We ask for your address so we can deliver your message to the appropriate legislative offices, and may include information such as your name, town or city and state in these deliveries. -

              -

              ActionKit strictly adheres to policies preventing unauthorized access to your personal information and will not make such information available to anyone outside of Free Press or ActionKit (unless legally compelled to do so). -

              -

              Financial Support -

              -

              Free Press and the Free Press Action Fund are committed to maintaining the trust and security of all financial supporters. We collect personal information including the email and mailing addresses that members and donors provide. We might use this information for online and print mailings to keep you informed about our programs and occasionally to ask for additional financial support. You may opt out of these communications at any time. -

              -

              To opt out of email communication, click here. -

              -

              To opt out of print mailings, please call us at 413-585-1533 or email Rachel Courtney. -

              -

              On occasion, Free Press or the Free Press Action Fund sends messages on behalf of other reputable organizations when we believe such messages may be of value to our members and supporters. Our ability to send you these messages on behalf of other entities helps us build our membership base and further the movement for your rights to connect and communicate. If you do not wish to receive such messages from our allied or aligned organizations, please call us at 413-585-1533 or email Rachel Courtney. Free Press is not responsible for the privacy practices or the content produced or provided by any of these other entities. -

              -

              All financial data is collected via a secure Web connection, and is stored or transmitted using appropriate security measures at all times. -

              -

              Online and Phone Orders for Materials -

              -

              Information provided to us in the course of placing an order for educational materials, activist toolkits, promotional materials or other materials offered by Free Press (whether or not the materials are offered at a cost) may be retained for use in future communications, such as membership drives, or when we unveil similar offerings we believe may be of interest to you. This information will not be given, sold, rented, shared or otherwise provided to anyone else without your prior consent (except when compelled by law — see below). -

              -

              All financial data is collected via a secure Web connection, and is stored or transmitted using appropriate security measures at all times. -

              -

              Compelled Disclosure

              -

              If we are required by law to disclose any information that you have provided us, we will attempt to give you notice (unless we are prohibited from doing so) that a request for your information has been made, in order to give you an opportunity to object. We will attempt to provide this notice by email, if you have given us an email address, or by postal mail if you have entered a postal address. If you do not challenge the disclosure request, we may be legally required to turn over your information. In addition, we may independently object to any disclosures we believe to be improper. -

              -

              Questions? -

              -

              If you would like additional information about our privacy practices and/or our policies, please contact info(AT)freepress.net. -

              -

              Copyright Policies -

              -

              All original text, images and other materials hosted on freepress.net servers are copyright 2009–2014 Free Press, unless otherwise noted (e.g., news articles and licensed photos). -

              -

              We encourage reproduction and distribution of original materials on this site for educational and personal use. All Free Press-created content on this site (unless otherwise noted) is available to you under a Creative Commons Attribution-NonCommercial-ShareAlike license. -

              -

              In short, this license allows you to copy, distribute, display or make derivative works provided that you a) credit Free Press, b) do not use it for commercial purposes and c) release any derivative works under this same license. -

              -

              Copyright-Infringement Notification -

              -

              If you have a copyright complaint, please follow the procedures set forth in the Digital Millennium Copyright Act. Our agent for notice is Kimberly Longey, chief operating officer. She may be reached by phone at 413.585.1533, by fax at 413.585.8904 or by email at copyright@freepress.net. Please direct your written correspondence to her at: -

              -

              Free Press
              - 40 Main St., Suite 301
              - Florence, MA 01062
              -

              -
              -
              -

              Back to Battle for the Net

              -
              -
              - - - - - diff --git a/scoreboard/index.html b/scoreboard/index.html deleted file mode 100755 index 880ee14e5..000000000 --- a/scoreboard/index.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Battle For The Net - - - - - - - - - - - - - - ‹ Back to Battle for the Net - -
              - -
              -

              - Political scoreboard -

              -

              - Team Cable has the money, so they have the power. They've been lobbying Congress and the FCC for years, and now they're calling in their favors. Use this page to see where your elected officials stand. Click on each one to send them a tweet.
              - -

              -

              Choose your state:

              - - - -
              -

              - Team Cable -

              - Unknown -

              - Team Internet -

              -
              - -
              - - Take action! -
              - -
              -

              Back to Battle for the Net

              -
              - -
              - - - - - - - - - - - - - - - - - - - - diff --git a/sept10th/construction1.gif b/sept10th/construction1.gif deleted file mode 100755 index 981531571..000000000 Binary files a/sept10th/construction1.gif and /dev/null differ diff --git a/sept10th/construction2.gif b/sept10th/construction2.gif deleted file mode 100755 index 09bf635a0..000000000 Binary files a/sept10th/construction2.gif and /dev/null differ diff --git a/sept10th/construction3.gif b/sept10th/construction3.gif deleted file mode 100755 index 3f7f67298..000000000 Binary files a/sept10th/construction3.gif and /dev/null differ diff --git a/sept10th/construction4.gif b/sept10th/construction4.gif deleted file mode 100755 index 1f58a97e9..000000000 Binary files a/sept10th/construction4.gif and /dev/null differ diff --git a/sept10th/index.html b/sept10th/index.html deleted file mode 100755 index 16ddcf6b8..000000000 --- a/sept10th/index.html +++ /dev/null @@ -1,605 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - Join the Battle for Net Neutrality - - - - - - - - - - Fork me on GitHub - - - -
              -
              - -
              - - -

              - Sept. 10th is the Internet Slowdown -

              -

              - Cable companies want to slow down (and break!) your favorite sites, for profit. To fight back, let's cover the web with symbolic "loading" icons, to remind everyone what an Internet without net neutrality would look like, and drive record numbers of emails and calls to lawmakers.
              - Look what we just did together. Are you in? -

              - - - -
              - -
              - - - -
              - -
              -
              -
              - -
              - Participants -
              - - - - - - -
              - -
              - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
              -
              -
              - - - - - - -
              - - - - -

              How to participate

              - - - -

              On September 10th, sites across the web will display an alert with a symbolic "loading" symbol (the proverbial “spinning wheel of death”) and promote a call to action for users to push comments to the FCC, Congress, and the White House, in support of an Internet Freedom Letter circulated by Senator Angus King and others. Note: none of these tools actually slow your site down; they tell your visitors about the issue and ask them to contact lawmakers.

              -

              -

              -

              -

              Be creative! Grab peoples' attention with a loading symbol, and link to tools for emailing and calling lawmakers (e.g. battleforthenet.com). Whatever you decide, tell us you're participating, announce it publicly, and commit to getting *one* person or company with a *bigger* reach than you to join in as well. Got a question? Contact us.

              - - - -
              - - -
              -

              What we can do, together.

              - -

              - These stats are only as of the time of posting, and are still growing a lot!
              - Please also note, these stats don't include hundreds of thousands of actions taken on other sites. -

              - -



              - -
              - - - -
              -

              - Sites: Get the code -

              - -

              - There’s a bunch of different ways for sites to participate. - The best way? - Run this modal. - The runner up? - This alert. - You can also change your site’s logo (or one of its letters) to a - spinning wheel of death or embed this action tool in a high traffic - page. We’ve also got widgets for - Wordpress.com, - and - Wordpress (self hosted). - -

              -

              - NOTE: none of these tools will slow down your site; they just show a - symbolic loading symbol. By default they link to battleforthenet.com, - but you can change the URL if you like. -

              -

              Modal:

              - -
              - -

              To show the modal on September 10th, paste this code into the <HEAD> of your site. More info.

              -
              <script src="//widget.battleforthenet.com/widget.min.js" async></script>
              -
              - -
              -
              -
              -

              Light banner:

              - - ( Note: this will only show up on Sept 10th, and only once per user ) -
              -
              -

              Dark banner:

              -
              - -

              Paste this code into the <HEAD> of your site. More info.

              -
              <script type="text/javascript">
              -    var _bftn_options = { animation: 'banner', theme: 'dark' }
              -</script>
              -<script src="//widget.battleforthenet.com/widget.min.js" async></script>
              -
              - ( Note: this will only show up on Sept 10th, and only once per user ) -
              -
              -
              - - - - -
              - - - -
              - -
              -

              - Apps: do a push notification -

              -

              - If you have a mobile app, can you send just one push notification to - your users? Tell them that ISPs are threatening to slow your app, and - link them to https://www.battleforthenet.com. -

              - -
              - -
              -

              - Change your Twitter photo -

              -

              - Protest Internet slow lanes on Twitter, by changing your profile photo to the dreaded spinning wheel of death (in your favorite color). Then you can try out these tweets. -

              -
              -
              -
              -
              -
              -
              -
              -
              - -
              - -
              - - - - - -
              -
              -

              - Say you're in. -

              -

              - Are you participating? Tell us so we can list you, announce it to the - world, and invite others to join. Starting on 9/2 we’ll be announcing - which sites are in. Help us spread the word about the campaign by - tweeting something like - this - or - this. - Want to show your support in real life? - Get the Team Internet shirt (then post a photo, obv.) -

              -
              - -
              -

              You're our only hope.

              -

              - This is the time to go big, visible, and strong - that's the only way - we can actually win this fight. We all need to get as many people in - our respective audiences motivated to do something. We can make this - epic, but only if you help. We need companies to be frontrunners, - leaders, and heroes on this, that’s the key ingredient to raising the - bar and making sure everyone goes big. -

              -

              - We realize it's a big ask, but this is the kind of bad internet - legislation that comes along (or gets this close to passing) once a - decade or so. If it passes we'll be kicking ourselves for - decades—every time a favorite site gets relegated to the slow - lane, and every time we have to rework or abandon a project because of - the uncertain costs paid prioritization creates. Doing the most we can - right now seems like the only rational step. -

              -

              - Let us know if you're interested in principle, and if there's - something you need from us to join: - evan@fightforthefuture.org - -

              -
              - -
              -

              ‹ Back to Battle for the Net

              -
              - -
              - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sept10th/mockup.png b/sept10th/mockup.png deleted file mode 100755 index 46a0dd2b5..000000000 Binary files a/sept10th/mockup.png and /dev/null differ diff --git a/tools/index.html b/tools/index.html deleted file mode 100755 index ced93244b..000000000 --- a/tools/index.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file