From f91b4a16bd454d85a6e346e82a33bb1a1e084e77 Mon Sep 17 00:00:00 2001 From: Tim Stamp Date: Sat, 26 Mar 2016 12:16:19 +0000 Subject: [PATCH 001/276] Cmd-Shift-J should be Cmd-Option-J to open console also added kbd tags --- js/lesson1/tutorial.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/js/lesson1/tutorial.md b/js/lesson1/tutorial.md index 59c8da0d..e9a74068 100644 --- a/js/lesson1/tutorial.md +++ b/js/lesson1/tutorial.md @@ -39,10 +39,11 @@ browser. This is a very short file that just tells your browser to run the code in `script.js`. For this tutorial, you will also need to open the console. In -chrome, use Ctrl-Shift-J or Cmd-Shift-J to open the console. The -console should look something like this: +Google Chrome, use Ctrl+Shift+J +or Cmd+Option+J to open the console. +The console should look something like this: - + ## Writing your first line of JavaScript From 79e76776ebd86677b7e566413a9cc37ae94cc6e8 Mon Sep 17 00:00:00 2001 From: Tim Stamp Date: Sat, 26 Mar 2016 12:44:52 +0000 Subject: [PATCH 002/276] adding Windows/Linux/Mac shortcut identifier --- js/lesson1/tutorial.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/lesson1/tutorial.md b/js/lesson1/tutorial.md index e9a74068..86748dc6 100644 --- a/js/lesson1/tutorial.md +++ b/js/lesson1/tutorial.md @@ -39,8 +39,8 @@ browser. This is a very short file that just tells your browser to run the code in `script.js`. For this tutorial, you will also need to open the console. In -Google Chrome, use Ctrl+Shift+J -or Cmd+Option+J to open the console. +Google Chrome, use Ctrl+Shift+J (on Windows/Linux) +or Cmd+Option+J (on Mac) to open the console. The console should look something like this: From 7b4b7c3074924701620deda20961e0103468f127 Mon Sep 17 00:00:00 2001 From: niffinity Date: Wed, 30 Mar 2016 20:03:54 +0100 Subject: [PATCH 003/276] Change exercise 2 gist download link to new version Change html code in exercise 2 to make `input` element self closing. This is because unnecessary closing tag was causing a bug in the jQuery. I have changed the url for the gist as I was unable to edit the gist directly. Please feel free to edit despo's gist yourself instead if you prefer. --- js/lesson3/tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/lesson3/tutorial.md b/js/lesson3/tutorial.md index ae842f1b..83d569f9 100644 --- a/js/lesson3/tutorial.md +++ b/js/lesson3/tutorial.md @@ -299,7 +299,7 @@ Before you start, close any windows you still have open from the last exercise. This one also has files called `index.html` and `script.js`, and you don't want to edit the wrong one by accident. -[Download the files](https://gist.github.com/despo/ab21d29aa1ea8fbbbb0e/download) required to begin working through the example. +[Download the files](https://gist.github.com/niffinity/4edf3c21f0107a1099cc237dc6c8d66b/download) required to begin working through the example. If you're using git, you can clone this repo instead, and move the files under your Github page folder, in a directory called From 60d296e2a98bd206b7c5cc7bccef2431704476b9 Mon Sep 17 00:00:00 2001 From: Daniel Steele Date: Tue, 5 Apr 2016 13:33:47 +0100 Subject: [PATCH 004/276] Removing trailing bracket. --- _layouts/default.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_layouts/default.html b/_layouts/default.html index 122784d2..6cc3e3eb 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -5,7 +5,7 @@ - +
{{ content | expand_urls: root_url }} From 1f2b5738908fa01274259da9fe6365834219975d Mon Sep 17 00:00:00 2001 From: Sam Phillips Date: Thu, 7 Apr 2016 10:31:53 +0100 Subject: [PATCH 005/276] Fix bug in JS lesson 4 and remove confusing bash $ syntax --- js/lesson4/tutorial.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index 17ca7f92..4a4b6c00 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -37,7 +37,7 @@ You can access an API in your web browser. Just pop the following into the addre If you are on a mac or a linux/unix machine, you can access the API using curl: - $ curl https://status.github.com/api.json + curl https://status.github.com/api.json > Paste the following command into Terminal, which you can find in Finder - first go into the Applications folder, then Utilities. @@ -104,7 +104,7 @@ The following code allows you to listen for a keypress on the input field, and t ```js $(document).ready(function(){ - $(document).on('keypress', '#username', function(e){ + $(document).on('keypress', '#username', function(){ if (event.which === 13) { // check the key was // do something } @@ -116,7 +116,7 @@ We will need to pass the username to GitHub, so we need to extract it from the i ```js $(document).ready(function(){ - $(document).on('keypress', '#username', function(e){ + $(document).on('keypress', '#username', function(){ if (event.which === 13) { // check the key was var input = $(this) var username = input.val() @@ -215,7 +215,7 @@ First, let's make sure we handle any requests that have failed. > Have a look in the status codes. There is only one response code for a successfully request, anything else should be classed as a failure. -When we have a failing request, we want to change the `html` of `$("#profile h2")` to `No such user: ` +When we have a failing request, we want to change the `html` of `$("#profile h2")` to `No such user!` Try this out using username: `iamcodebar` (or if someone registered this, make up a random string) From 753ab528bc6fb4fbe85fccf100d8d5650436414f Mon Sep 17 00:00:00 2001 From: Kriszta Date: Wed, 13 Apr 2016 19:59:15 +0100 Subject: [PATCH 006/276] fixing the broken table in JS lesson 5 --- js/lesson5/tutorial.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/js/lesson5/tutorial.md b/js/lesson5/tutorial.md index 6df7ba4f..097e802e 100644 --- a/js/lesson5/tutorial.md +++ b/js/lesson5/tutorial.md @@ -42,7 +42,8 @@ $.ajax({ [Download](https://gist.github.com/despo/c76a7bd0bef66713a9ac/download) the exercise files or clone them directly from Github `git clone https://gist.github.com/c76a7bd0bef66713a9ac.git` ### API -| type | resource | parameters | description | + +| Type | Resource | Parameters | Description | | ---- | -------- | ---------- | ----------- | | **POST** | `http://hangman-api.herokuapp.com/hangman` | - | Create a new game | | **PUT** | `http://hangman-api.herokuapp.com/hangman` | `{ token: game token, letter: guess }` | Guess a letter | From 2be157b09552634d68213ae03a462f4563c5faad Mon Sep 17 00:00:00 2001 From: Mike Street Date: Wed, 20 Apr 2016 09:15:21 +0100 Subject: [PATCH 007/276] HTML Lesson 4: Move Image divs outside of P tags --- html/lesson4/tutorial.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/html/lesson4/tutorial.md b/html/lesson4/tutorial.md index 01976a0f..112dc608 100644 --- a/html/lesson4/tutorial.md +++ b/html/lesson4/tutorial.md @@ -6,10 +6,10 @@ footer: true ## HTML AND CSS - layouts and formatting -### Objective - +### Objective + Today we will be building a website and learning more about CSS layouts and formatting. We will also be explaining in more detail elements that we mentioned in the previous two lessons. - + ### Goal The page we will build will look similar to this [example page]( http://codebar.github.io/tutorials/html/lesson4/example.html "Grace Hopper") @@ -236,11 +236,11 @@ Let's add the main content. Paste underneath the header. We will tweak things as ```html
-

Mark Mark I
+

Grace Hopper was born in 1906. Her parents, noticing her interest in math, made special arrangements for her to take classes reserved for boys in school. She received a Bachelors deegree in Mathematics and physics from Vassar college and then moved onto Yale, where she did her Masters deegree in Math. She continued her education and begun a teaching career at Vassar. When she received her PhD she joined the navy, where she was assigned to work in the Bureau of Ordinance computation project at Harvard university. There, she became part of the programming team, who works on the Mark I; the first computer ever made.

@@ -250,11 +250,11 @@ Let's add the main content. Paste underneath the header. We will tweak things as Throughout her childhood, she had a fascination with both math and the navy. She was able to join the navy after acquiring waivers for the weight and age requirements, and rapidly climbed the ranks. By the time she started working on the Mark I, she was already a lieutenant. The demanding environment and high expectations of her at the navy, helped her thrive. This was for her the perfect work environment. She was also the one who wrote the operating manual for the Mark I. In 1949, she left the navy to continue working with computers, and returned back in 1967 to teach young people about them. She loved teaching about computers as much as she loved working with them. Young people for her were the future.

-

Cobol Working with COBOL
+

Grace loved the Navy, and was reluctant to retire, even at the age of 79. At her retirement ceremony she was recognized for all she contributed, and received the Distinguished Service Medal of the Defense Department, the department's highest honor, and a citation which stated

Rear Admiral Hopper's personal dedication, technical expertise,and broad-based knowledge of the computers were a cornerstone of the navy's continuing development of Information Systems technology. She is one of the Navy's most effective public speakers and a sought-after adviser on the subject of automatic data processing. @@ -516,7 +516,6 @@ line-height: 23px; ----- This ends our fourth lesson, we hope you enjoyed it and learnt something. If you have some spare time how about going back through this tutorial and, by yourself, make some amendments. If there is something you did not understand or want to give us some feedback please [send us an email.](mailto:feedback@codebar.io) -## Further reading +## Further reading * [Learn layout](http://learnlayout.com/) - From 9654deea3ca6a82700a232908381862b296b9d99 Mon Sep 17 00:00:00 2001 From: Mike Street Date: Wed, 20 Apr 2016 09:15:58 +0100 Subject: [PATCH 008/276] HTML Lesson 4: Make padding top match example --- html/lesson4/tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/lesson4/tutorial.md b/html/lesson4/tutorial.md index 112dc608..9a6fd84b 100644 --- a/html/lesson4/tutorial.md +++ b/html/lesson4/tutorial.md @@ -478,7 +478,7 @@ width: 100%; And reposition the `#content` so it doesn't hide underneath the header. Change the padding property to have a padding-top ```css -padding: 150px 30px 40px; +padding: 160px 30px 40px; ``` > Do you remember the padding shortcuts we discussed in the previous lesson? What does the above describe? Can you explain that to your coach? From 5c5253493b85c1f9c6e6a882f3b76fac4376a46c Mon Sep 17 00:00:00 2001 From: Mike Street Date: Wed, 20 Apr 2016 09:17:25 +0100 Subject: [PATCH 009/276] HTML Lesson 4: Add text between blocks and correct text to match example --- html/lesson4/tutorial.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/html/lesson4/tutorial.md b/html/lesson4/tutorial.md index 9a6fd84b..d1fd1272 100644 --- a/html/lesson4/tutorial.md +++ b/html/lesson4/tutorial.md @@ -369,11 +369,13 @@ The container is not necessarily the element it is wrapped in (its parent). To f ### Using absolute and relative positioning -Add a CSS class `caption` to the description of each of the images +Add a CSS class `caption` to the description of each of the images. The first one: ```html - The Mark I - ``` + Mark I +``` + +And the second: ```html Working with COBOL From ba7519f3d0ad7dff88ab89cf31c3dd3e2ac64d82 Mon Sep 17 00:00:00 2001 From: Mike Street Date: Wed, 20 Apr 2016 09:18:17 +0100 Subject: [PATCH 010/276] HTML Lesson 5: Remove random (and incorrect) "arc" --- html/lesson5/tutorial.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/html/lesson5/tutorial.md b/html/lesson5/tutorial.md index e137dd27..94c84359 100644 --- a/html/lesson5/tutorial.md +++ b/html/lesson5/tutorial.md @@ -6,10 +6,10 @@ footer: true ## HTML AND CSS - Diving into HTML5 and CSS3 -### Objective - +### Objective + Today we will be building a website and will focus more on HTML5 and CSS3 specific elements. - + ### Goal The page we will build will look similar to this [example page](http://codebar.github.io/tutorials/html/lesson5/example.html "Anita Borg") @@ -158,8 +158,6 @@ Great! Now our images and links are on the left, and the main content on the rig [Border radius](https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius) enables us to create rounded corners for our elements. In the past, multiple divs and the use of images was required to achieve that effect. -`border-radius: arc` - Now that we know what border radius is, let's use it to add a nice frame to the first image. Wrap the first image in a `div` with the class `frame` @@ -438,5 +436,3 @@ You can find both the rgb and hex values of a color through [http://0to255.com]( ----- This ends our fifth lesson, we hope you enjoyed it and learnt something. If you have some spare time how about going back through this tutorial and, by yourself, make some amendments. If there is something you did not understand or want to give us some feedback please [send us an email.](mailto:feedback@codebar.io) - - From 832f3ce1baba51cc400c735f46fcd260911adfc3 Mon Sep 17 00:00:00 2001 From: Mike Street Date: Wed, 20 Apr 2016 09:53:24 +0100 Subject: [PATCH 011/276] HTML Lesson 5: Add border radius example and note --- html/lesson5/tutorial.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/html/lesson5/tutorial.md b/html/lesson5/tutorial.md index 94c84359..8d90d225 100644 --- a/html/lesson5/tutorial.md +++ b/html/lesson5/tutorial.md @@ -158,6 +158,10 @@ Great! Now our images and links are on the left, and the main content on the rig [Border radius](https://developer.mozilla.org/en-US/docs/Web/CSS/border-radius) enables us to create rounded corners for our elements. In the past, multiple divs and the use of images was required to achieve that effect. +Border radius can be defined in many different units - the higher the number, the bigger the curve. An example of border-radius in your code would be: + +`border-radius: 10px;` + Now that we know what border radius is, let's use it to add a nice frame to the first image. Wrap the first image in a `div` with the class `frame` From 85ab6a131f84555a20877a83e1a5705547d4ee28 Mon Sep 17 00:00:00 2001 From: Octopus in vitro Date: Tue, 26 Apr 2016 15:14:23 +0100 Subject: [PATCH 012/276] Fix the link to the jQuery tutorial files --- js/lesson3/tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/lesson3/tutorial.md b/js/lesson3/tutorial.md index 83d569f9..cdbeb04a 100644 --- a/js/lesson3/tutorial.md +++ b/js/lesson3/tutorial.md @@ -41,7 +41,7 @@ Using jQuery and JavaScript functions, we are going to build a small todo list. Download the files that you will need to work through the example -[here](https://gist.github.com/despo/309f684b7a6e002aaf1f). +[here](https://gist.github.com/despo/309f684b7a6e002aaf1f/download). Alternatively, if you've already learned how to use git and would like to use it here, you can clone this repo: From f928884b86cd61b91c5c61127690d9f6d54e271c Mon Sep 17 00:00:00 2001 From: Octopus in vitro Date: Tue, 3 May 2016 18:01:45 +0100 Subject: [PATCH 013/276] Add missing argument to the keypress callback --- js/lesson4/tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index 775b0dd2..662d888a 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -116,7 +116,7 @@ We will need to pass the username to GitHub, so we need to extract it from the i ```js $(document).ready(function(){ - $(document).on('keypress', '#username', function(){ + $(document).on('keypress', '#username', function(event){ if (event.which === 13) { // check the key was var input = $(this) var username = input.val() From 43c3440e08af515bbe2c74d95eb0bc89b142efe1 Mon Sep 17 00:00:00 2001 From: Octopus in vitro Date: Tue, 3 May 2016 18:09:47 +0100 Subject: [PATCH 014/276] Add semicolons to all lines for consistency --- js/lesson4/tutorial.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index 662d888a..b3a699ee 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -118,10 +118,10 @@ We will need to pass the username to GitHub, so we need to extract it from the i $(document).ready(function(){ $(document).on('keypress', '#username', function(event){ if (event.which === 13) { // check the key was - var input = $(this) - var username = input.val() + var input = $(this); + var username = input.val(); - console.log("username was: " + username) + console.log("username was: " + username); } }) @@ -132,7 +132,7 @@ Now we're ready to pass this through to GitHub. Let's make another function, som ```js function getGithubInfo(username) { - var url = "https://api.github.com/users/" + username + var url = "https://api.github.com/users/" + username; var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", url, false); @@ -140,7 +140,7 @@ function getGithubInfo(username) { var data = xmlhttp.responseText; - console.log(data) + console.log(data); } ``` @@ -160,7 +160,7 @@ You can now call `getGithubInfo`, passing the username, from the `keypress` bloc ```js function getGithubInfo(username) { - var url = "https://api.github.com/users/" + username + var url = "https://api.github.com/users/" + username; var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", url, false); @@ -194,7 +194,7 @@ function showUser(xmlhttp) { if(xmlhttp.status === 200){ // show the user details var json = xmlhttp.responseText; - var user = JSON.parse(json) + var user = JSON.parse(json); } else { // show an error } @@ -377,7 +377,7 @@ Also, to make your code easier to read, try constructing the html in a method th ```javascript function processEpisode(episode) { - var item_html = "
  • " + var item_html = "
  • "; item_html += "

    " + episode.programme.display_titles.title + "

    "; // display image // display date and time From cb09d3efe1354ed0f44365631c02c55f6b55921b Mon Sep 17 00:00:00 2001 From: Octopus in vitro Date: Wed, 4 May 2016 11:50:48 +0100 Subject: [PATCH 015/276] Move js snippet to next section and improve readability --- js/lesson4/tutorial.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index b3a699ee..76d53e6e 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -158,6 +158,11 @@ In this case, we'll specify synchronously by passing `false`. This means the bro You can now call `getGithubInfo`, passing the username, from the `keypress` block above. That will log the data to the console. Next, we need to pass this back to the web page via the DOM. + +### Handling a successful request + +Our `getGithubInfo` method will return the response from the server, including the HTTP status: + ```js function getGithubInfo(username) { var url = "https://api.github.com/users/" + username; @@ -171,11 +176,9 @@ function getGithubInfo(username) { } ``` -### Handling a successful request - -Our `getGithubInfo` method will return the response from the server, including the HTTP status. If the request was successful, the status code will be 200. If we check that this code is 200, we know we can proceed to reading the data. +If the request was successful, the status code will be 200. If we check that this code is 200, we know we can proceed to reading the data. -Create a new method called `showUser()` that handles the response from the API, and performs this check on the passed `xmlhttp` variable. Once the `keypress` block has called `getGithubInfo`, it should pass the result to `showUser`. +Create a new method called `showUser()` that handles the response from the API, and performs this check on the `xmlhttp` variable we just returned from our `getGithubInfo` method. Once the `keypress` block has called `getGithubInfo`, it should pass the result to `showUser`. ```js function showUser(xmlhttp) { From e9a1b08ad50d0de926e140d6448383e9ced588b6 Mon Sep 17 00:00:00 2001 From: Octopus in vitro Date: Wed, 4 May 2016 11:57:34 +0100 Subject: [PATCH 016/276] Correct wrong link to the sync/async MDN page --- js/lesson4/tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index 76d53e6e..26ca166c 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -227,7 +227,7 @@ Try this out using username: `iamcodebar` (or if someone registered this, make u Well done, you've finished! For a bonus, switch your `getGithubInfo` method to run asynchronously - your coach can help you. -> Coach... explain the difference between synchronous and asynchronous requests. There's a good explanation on [Mozilla Developer Network (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/onreadystatechange) +> Coach... explain the difference between synchronous and asynchronous requests. There's a good explanation on [Mozilla Developer Network (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests) ## Exercise 2 - BBC's tomorrow's TV schedule From ecab52580265ee79be1368f2348d88f4978349d4 Mon Sep 17 00:00:00 2001 From: Octopus in vitro Date: Wed, 4 May 2016 11:59:02 +0100 Subject: [PATCH 017/276] Correct wrong link to the gist's download page in exercise 2 --- js/lesson4/tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index 26ca166c..217db23e 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -231,7 +231,7 @@ Well done, you've finished! For a bonus, switch your `getGithubInfo` method to r ## Exercise 2 - BBC's tomorrow's TV schedule -[Download](https://gist.github.com/despo/05cab2f0b38bc02318e7) the exercise files or clone them directly from github `git clone https://gist.github.com/05cab2f0b38bc02318e7.git` +[Download](https://gist.github.com/despo/05cab2f0b38bc02318e7/download) the exercise files or clone them directly from github `git clone https://gist.github.com/05cab2f0b38bc02318e7.git` For the second exercise, we will build an application that retrieves tomorrow's TV schedule for each genre using BBC's API. From 8cc09d0417b30906fe00600a8c95b56a9a55c8e7 Mon Sep 17 00:00:00 2001 From: Octopus in vitro Date: Wed, 4 May 2016 12:25:17 +0100 Subject: [PATCH 018/276] Fix minor styling issues --- js/lesson4/tutorial.md | 150 ++++++++++++++++++++--------------------- 1 file changed, 74 insertions(+), 76 deletions(-) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index 217db23e..2930f8a8 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -3,7 +3,7 @@ layout: page title: HTTP Requests, AJAX and APIs --- -### Objectives +### Objectives In this tutorial we are going to look at: @@ -29,7 +29,7 @@ Every time the browser fetches data from a server (which could be a page, an ima GitHub offers a [simple API](https://status.github.com/api) for viewing its current and historical server availability. -> Availability means whether or not the GitHub website was accessible to users and accepting traffic. If your website is down, it is not available. +> Availability means whether or not the GitHub website was accessible to users and accepting traffic. If your website is down, it is not available. You can access an API in your web browser. Just pop the following into the address bar: @@ -103,28 +103,27 @@ First, open the HTML page supplied in the download. As you can see, there is a b The following code allows you to listen for a keypress on the input field, and to see if it was the key that was pressed. ```js -$(document).ready(function(){ - $(document).on('keypress', '#username', function(){ +$(document).ready(function() { + $(document).on('keypress', '#username', function() { if (event.which === 13) { // check the key was // do something } - }) + }); }); ``` We will need to pass the username to GitHub, so we need to extract it from the input text box. To show that we can do this - let's first extract the data using jQuery's `val()`, and log it to the console. Something like this should work: ```js -$(document).ready(function(){ - $(document).on('keypress', '#username', function(event){ +$(document).ready(function() { + $(document).on('keypress', '#username', function(event) { if (event.which === 13) { // check the key was var input = $(this); var username = input.val(); console.log("username was: " + username); - } - }) + }); }); ``` @@ -146,7 +145,7 @@ function getGithubInfo(username) { `XMLHttpRequest` is the object we use in JavaScript to perform an HTTP or API request. Although it has `XML` in the name (XML is a data format), it can be used for other formats such as JSON, which is what we're using here. -We create an `XMLHttpRequest` object and then call the `open` method, passing three arguments to the GitHub API. +We create an `XMLHttpRequest` object and then call the `open` method, passing three arguments to the GitHub API. 1. the `verb` - in this case, `"GET"` 2. the `url` - in this case the url eg https://api.github.com/users/codebar @@ -172,7 +171,6 @@ function getGithubInfo(username) { xmlhttp.send(); return xmlhttp; - } ``` @@ -182,7 +180,7 @@ Create a new method called `showUser()` that handles the response from the API, ```js function showUser(xmlhttp) { - if(xmlhttp.status === 200){ + if(xmlhttp.status === 200) { // show the user details } else { // show an error @@ -194,7 +192,7 @@ Once we've checked the status, we need to decode the data which is stored in `xm ```js function showUser(xmlhttp) { - if(xmlhttp.status === 200){ + if(xmlhttp.status === 200) { // show the user details var json = xmlhttp.responseText; var user = JSON.parse(json); @@ -299,7 +297,7 @@ Now, let's create a function that retrieves films using genre. ```javascript function getTomorrowsSchedule(genre) { - // call to retrieve TV schedule + // call to retrieve TV schedule } ``` @@ -307,61 +305,61 @@ The response you get back should look similar to this, with multiple objects in ```json { - "broadcasts":[ - { - "is_repeat":false, - "is_blanked":false, - "schedule_date":"2014-01-15", - "start":"2014-01-15T00:10:00Z", - "end":"2014-01-15T01:50:00Z", - "duration":6000, - "service":{ - "type":"tv", - "id":"bbc_one", - "key":"bbcone", - "title":"BBC One", - "outlets":[ - { - "id":"bbc_one_wales", - "key":"wales", - "title":"Wales" - }, - { - "id":"bbc_one_wales_hd", - "key":"wales_hd", - "title":"Wales HD" - } - ] - }, - "programme":{ - "type":"episode", - "pid":"b00sbk03", - "position":null, - "title":"Disturbia", - "short_synopsis":"Thriller about a high school student convinced that his neighbour is a serial killer.", - "media_type":"audio_video", - "duration":6000, - "image":{ - "pid":"p01gqbj3" - }, - "display_titles":{ - "title":"Disturbia", - "subtitle":"" - }, - "first_broadcast_date":"2010-05-03T22:30:00+01:00", - "ownership":{ - "service":{ - "type":"tv", - "id":"bbc_three", - "key":"bbcthree", - "title":"BBC Three" - } - }, - "is_available_mediaset_pc_sd":false, - "is_legacy_media":false - } + "broadcasts": [ + { + "is_repeat": false, + "is_blanked": false, + "schedule_date": "2014-01-15", + "start": "2014-01-15T00:10:00Z", + "end": "2014-01-15T01:50:00Z", + "duration": 6000, + "service": { + "type": "tv", + "id": "bbc_one", + "key": "bbcone", + "title": "BBC One", + "outlets": [ + { + "id": "bbc_one_wales", + "key": "wales", + "title": "Wales" + }, + { + "id": "bbc_one_wales_hd", + "key": "wales_hd", + "title": "Wales HD" + } + ] + }, + "programme": { + "type": "episode", + "pid": "b00sbk03", + "position": null, + "title": "Disturbia", + "short_synopsis": "Thriller about a high school student convinced that his neighbour is a serial killer.", + "media_type": "audio_video", + "duration": 6000, + "image": { + "pid": "p01gqbj3" + }, + "display_titles": { + "title": "Disturbia", + "subtitle": "" + }, + "first_broadcast_date": "2010-05-03T22:30:00+01:00", + "ownership": { + "service": { + "type": "tv", + "id": "bbc_three", + "key": "bbcthree", + "title": "BBC Three" + } + }, + "is_available_mediaset_pc_sd": false, + "is_legacy_media": false + } }] -} + } ``` To process the response, we want to iterate over the `response.broadcasts` array and add each item, to `#programmes` as a list item. @@ -380,13 +378,13 @@ Also, to make your code easier to read, try constructing the html in a method th ```javascript function processEpisode(episode) { - var item_html = "
  • "; - item_html += "

    " + episode.programme.display_titles.title + "

    "; - // display image - // display date and time - // display duration (HINT: the duration is in seconds, convert that to minutes) - // display the channel (or service, as its called by the API) - add this in a span with the class `service` - ... + var item_html = "
  • "; + item_html += "

    " + episode.programme.display_titles.title + "

    "; + // display image + // display date and time + // display duration (HINT: the duration is in seconds, convert that to minutes) + // display the channel (or service, as its called by the API) - add this in a span with the class `service` + ... } ``` @@ -420,7 +418,7 @@ To get back all the upcoming shows for an episode, we need to utilise the progra ```javascript function getUpcomingEpisodes(pid) { - // AJAX call to retrieve upcoming episodes + // AJAX call to retrieve upcoming episodes } ``` Since the response structure is similar to the one for retrieving tomorrow's schedule, we should be able to re-use the `processEpisode( )` function to display each item from the broadcasts array. From dde0901115f916b504553794ff0e5e1df5fc612f Mon Sep 17 00:00:00 2001 From: Octopus in vitro Date: Wed, 4 May 2016 12:33:20 +0100 Subject: [PATCH 019/276] Add small comment on why would one use jQuery for AJAX --- js/lesson4/tutorial.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index 2930f8a8..bc7d876e 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -247,6 +247,8 @@ For the second exercise, we will build an application that retrieves tomorrow's This time, let's use jQuery's `ajax()` method. Things are a bit easier when using jQuery as we can create different code blocks that handle successful or failed requests. +Also, jQuery isolates us from the differences between browser implementations of AJAX calls (for example, if we wanted to make the previous AJAX call work in Internet Explorer, we will have to write [a much longer method](http://www.tutorialspoint.com/ajax/ajax_browser_support.htm)!) + ```js $.ajax({ url: request_url, From 4e654adef2cc56fe6c74c847cba5f997bd1e6f77 Mon Sep 17 00:00:00 2001 From: Octopus in vitro Date: Wed, 4 May 2016 12:36:55 +0100 Subject: [PATCH 020/276] Add missing comment in Exercise 2 --- js/lesson4/tutorial.md | 1 + 1 file changed, 1 insertion(+) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index bc7d876e..8192d66d 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -382,6 +382,7 @@ Also, to make your code easier to read, try constructing the html in a method th function processEpisode(episode) { var item_html = "
  • "; item_html += "

    " + episode.programme.display_titles.title + "

    "; + // display short short synopsis // display image // display date and time // display duration (HINT: the duration is in seconds, convert that to minutes) From 02094f25a2cfbee9ae83f94cb76572c0cc9e601f Mon Sep 17 00:00:00 2001 From: MarckK Date: Wed, 4 May 2016 19:44:18 +0100 Subject: [PATCH 021/276] Changed avatar_field to avatar_url to match JSON --- js/lesson4/tutorial.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index 8192d66d..5aec39a1 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -94,7 +94,7 @@ The response will look something like the JSON data below, which we have shorten ``` -This data is what's called key value pairs, meaning that the name of the field is displayed immediately before the value. As you can see, the URL for the avatar (user's icon) is in the `avatar_field` field, and is `https://avatars.githubusercontent.com/u/9906?v=2`. +This data is what's called key value pairs, meaning that the name of the field is displayed immediately before the value. As you can see, the URL for the avatar (user's icon) is in the `avatar_url` field, and is `https://avatars.githubusercontent.com/u/9906?v=2`. ### Getting started From a38ed4caff95b3111b7eaf7ce1398b2f87bc6800 Mon Sep 17 00:00:00 2001 From: MarckK Date: Wed, 4 May 2016 19:50:54 +0100 Subject: [PATCH 022/276] Escaped out the angle brackets around enter --- js/lesson4/tutorial.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/lesson4/tutorial.md b/js/lesson4/tutorial.md index 8192d66d..30bd4b51 100644 --- a/js/lesson4/tutorial.md +++ b/js/lesson4/tutorial.md @@ -98,9 +98,9 @@ This data is what's called key value pairs, meaning that the name of the field i ### Getting started -First, open the HTML page supplied in the download. As you can see, there is a box to type in a username. When the user has typed in the username, they should be able to trigger the API call to GitHub by pressing . +First, open the HTML page supplied in the download. As you can see, there is a box to type in a username. When the user has typed in the username, they should be able to trigger the API call to GitHub by pressing \. -The following code allows you to listen for a keypress on the input field, and to see if it was the key that was pressed. +The following code allows you to listen for a keypress on the input field, and to see if it was the \ key that was pressed. ```js $(document).ready(function() { From c8259797487dc8470a39c00ba8ffee1ec634af6e Mon Sep 17 00:00:00 2001 From: Kimberley Cook Date: Thu, 5 May 2016 17:04:52 +0100 Subject: [PATCH 023/276] edited tutorials readme --- README.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 45c93346..2dfc4bc5 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ This is a [GitHub Pages](https://pages.github.com/) repo, so you can render the ## Getting in Touch -You can go to [the Slack channel here](https://codebar.slack.com/messages/general/). Use it to get in touch and chat to other codebar students/coaches, or if you need help. +You can go to the general [codebar Slack channel here](https://codebar.slack.com/messages/general/) or the dedicated [tutorials channel here](https://codebar.slack.com/messages/tutorials/). Use it to get in touch and chat to other codebar students/coaches, or if you need help. If you are not on Slack use [this link](http://codebar-slack.herokuapp.com/) to get an invite. @@ -18,6 +18,24 @@ If you are not on Slack use [this link](http://codebar-slack.herokuapp.com/) to We encourage you to contribute with your suggestions and corrections. Head to our [issues page](https://github.com/codebar/tutorials/issues) and open a new issue or help on the existing ones. + +##### General tutorial rule + +1. All tutorials get the students to build something that they are able to show around at the end of the workshop. + +2. All tutorials follow a structure: + * Objectives - "In this tutorial we are going to look at..." + * Goals - "By the end of this tutorial you will have..." + * Then the exercises. + * Bonus - This is not always required but if you feel there is something that could be added then please include it. + * Further reading - Again this is not always required but if you feel there was something in the tutorials that could be covered in more depth then please include any good reading materials/videos or extra tutorials. + +3. Repetition is good. A tutorial can contain multiple exercises that ask the students to take similar steps (e.g. for HTTP Requests one exercise introduces GET, another has GET and POST etc). + +4. Explaining and getting the students to focus on one new thing at a time, presenting students with lots of new content and usage examples can be confusing. + +5. Before starting to write a new tutorial please speak with someone from codebar to see whether it is of interest to students. + ## License codebar Tutorials are released under the [Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)](http://creativecommons.org/licenses/by-nc-sa/4.0/). From 8c8071bc82aa27f0af4704e40c2e8314bc12ff37 Mon Sep 17 00:00:00 2001 From: Jodi Winters Date: Sun, 15 May 2016 19:11:17 +0100 Subject: [PATCH 024/276] Minor improvements to the PHP tutorial 1 --- php/lesson1/assets/images/helloworld.png | Bin 129791 -> 19611 bytes php/lesson1/tutorial.md | 10 ++++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/php/lesson1/assets/images/helloworld.png b/php/lesson1/assets/images/helloworld.png index 2a86f1b144da633b65dbbc314184cb3e39820467..883e60520a0a4bff42efe070b88e608030a58da5 100644 GIT binary patch literal 19611 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

    yLwcN~fnQ3?$)8xk=p2ppn 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 UX-7cEEv-0rTIUq* Date: Sun, 15 May 2016 19:26:37 +0100 Subject: [PATCH 025/276] Added tutorial --- python/lesson3/tutorial.md | 97 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 python/lesson3/tutorial.md diff --git a/python/lesson3/tutorial.md b/python/lesson3/tutorial.md new file mode 100644 index 00000000..1b5aad86 --- /dev/null +++ b/python/lesson3/tutorial.md @@ -0,0 +1,97 @@ +--- +layout: page +title: Fun with Functions +--- + +In this tutorial we are going to look at what functions are, how we use them and why. + +### Calling a fuction + +A function is a collection of processes grouped together, that can be called later to run these processes. Python comes with plenty of functions already built in that you can use to perform common tasks. One example would be printing to the screen. + + >>> print "This is a function" + This is a function + +It is also possible to store the output of a function in a variable for future use. Let's try this with the built in function range(), which will provide us with a list of numbers. + + >>> list_of_numbers = range(1, 4) + >>> print list_of_numbers + [1, 2, 3] + +You may have noticed that we specified the use of the function range() for our particular situation. We provided the numbers 1 and 4 as parameters to the function, a start number and a stop number. These parameters let the function know where to start the number list, and where to end it (in the case of range, it provides a list of numbers up to, but not including the stop number). + +We can also chain functions to use the output of other functions as parameters. In the earlier example, we stored the list provided by the range function in a variable, and then passed that variable as a parameter for the print function, which then print the list of numbers to the screen. We could also use the range function as a direct parameter for the print function. + + >>> print range(1, 4) + [1, 2, 3] + +This can be very useful in making code more concise, but using it too much could make code harder to read. Knowing when to use variables instead of chaining functions comes with experience; in reading and in writing code. + +Try creating your own lists of numbers using range() with different parameters. Looking at the [documentation](https://docs.python.org/2/library/functions.html#range "Python 2 documentation for range") is always a good idea when learning more about the language. You can also learn more by purposefully trying to break the function. What happens when you don't provide any parameters? + +### Defining your own functions + +Now we are going to create our own function. To do this we use the def keyword, provide a unique (and descriptive) name for the function, and specify any parameters that may be accepted by the function. Then we write the code we want to be run when the function is called. Let's start with a simple function that takes no parameters. + + >>> def print_name(): + ... print "My name is Bart" + + We can then call this function like we would any other. + + >>> print_name() + My name is Bart + +We can change the function to use a parameter. Let's change it so that it allows the user to specify the name they want to print. + + >>> def print_name(name): + ... print "My name is " + name + ... + >>> print_name("Lisa") + My name is Lisa + +You may have noticed that the code inside the function is indented. This is to let the Python interpreter know what is part of the function we are defining, and what is not. That is why when we write print_name("Lisa") directly after, it knows to call the function and not include it in the function definition, it is not indented. + +Now that we have defined a parameter, the function will raise an error if no parameter is provided. Try it yourself, it's good to get used to understanding how Python errors work and what they mean. It's an important skill when debugging more complex code. + +We can enhance the function to run with a default name if one is not provided. Let's do that by specifying a default value. + + >>> def print_name(name='Bart'): + ... print "My name is " + name + ... + >>> print_name("Lisa") + My name is Lisa + >>> print_name() + My name is Bart + + +### Different kinds of functions + +A function can be put into one of two categories. Fruitful functions, and void functions. So far we have only created void functions, these are functions that perform tasks but don't return a value. Fruitful functions return a value, a familiar example is the range function we used earlier that returned a list. Let's change our function from void to fruitful. + + >>> def print_name(name='Bart'): + ... return "My name is " + name + +Now the function returns a value that we can work with. We could store this in a value to be used later. Let's try storing it as a value, and using that value as a parameter in another print_name function call. + + >>> printed_name = print_name("Lisa") + >>> print print_name(printed_name) + My name is My name is Lisa + +Notice that we now need to use the print function to print to the screen. While the REPL will print what the function returns to the console, if run as a script, simply calling the function without a print statement would not print anything to the screen. This is because the function is returning a value, and no longer printing a string. + +A subtle indicator of this is the quote marks around the sentance that denote a string is being output to the screen, rather than something being printed with the print function. + + >>> printed_name = print_name("Lisa") + >>> print_name(printed_name) + 'My name is My name is Lisa' + +### Why use functions + +At first glance it may not seem obvious why it is worth expending the extra effort of defining and calling a function, rather than just writing the code independant of such things. Defining tasks as functions reduces the need to copy and paste the same code multiple times to achieve the same effect. Simply calling the function multiple times makes it much easier to not only write code, but to read it also. + +Using functions also makes it a lot easier to fix and change code. If you are performing the same tasks in mutiple places and discover a bug, without functions you would need to fix the same bug multiple times. However with functions, you simply fix the bug once, and all of the subsequent function calls will now behave accordingly. + + +### Further reading + +Python comes with a lot of built in functions that are worth learning about, as they have been created specifically to perform the most common tasks that developers require. They are listed in the [documentation](https://docs.python.org/2/library/functions.html "Python 2 built in functions documentation"). To begin with, try using a few to see what they do, and how they behave with varying parameters. Once you have grasped how a few of them work, try writing your own functions that call the built in functions within them, like we did when we used the print function in our own custom print_name function. From b111fe7c31fdef82c3ae4f3373aeee4c5935067d Mon Sep 17 00:00:00 2001 From: Octopus in vitro Date: Sat, 21 May 2016 01:18:43 +0100 Subject: [PATCH 026/276] Move files of JS tutorial 3 from gist to this repo --- js/lesson3/files/index.html | 27 +++++++++++ js/lesson3/files/jquery.js | 6 +++ js/lesson3/files/script.js | 1 + js/lesson3/files/style.css | 94 +++++++++++++++++++++++++++++++++++++ 4 files changed, 128 insertions(+) create mode 100644 js/lesson3/files/index.html create mode 100644 js/lesson3/files/jquery.js create mode 100644 js/lesson3/files/script.js create mode 100644 js/lesson3/files/style.css diff --git a/js/lesson3/files/index.html b/js/lesson3/files/index.html new file mode 100644 index 00000000..84133e7b --- /dev/null +++ b/js/lesson3/files/index.html @@ -0,0 +1,27 @@ + + + codebar.io - Exercise 1: Wish List + + + + + + +

    + +
    +
    +

    Wish List

    +
      + +
    + +
    + + +
    + + + diff --git a/js/lesson3/files/jquery.js b/js/lesson3/files/jquery.js new file mode 100644 index 00000000..2a40d4c0 --- /dev/null +++ b/js/lesson3/files/jquery.js @@ -0,0 +1,6 @@ +/*! jQuery v2.0.3 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-2.0.3.min.map +*/ +(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.3",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=st(),k=st(),N=st(),E=!1,S=function(e,t){return e===t?(E=!0,0):0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],q=L.pop,H=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){H.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=gt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+mt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,r,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function at(e){return e[v]=!0,e}function ut(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function lt(e,t){var n=e.split("|"),r=e.length;while(r--)i.attrHandle[n[r]]=t}function ct(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function pt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return at(function(t){return t=+t,at(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.defaultView;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.attachEvent&&r!==r.top&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ut(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=ut(function(e){return e.innerHTML="
    ",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=ut(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=Q.test(t.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),ut(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=Q.test(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ut(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=Q.test(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return ct(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?ct(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:at,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ot.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=gt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?at(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:at(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?at(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:at(function(e){return function(t){return ot(e,t).length>0}}),contains:at(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:at(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},i.pseudos.nth=i.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=pt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=ft(t);function dt(){}dt.prototype=i.filters=i.pseudos,i.setFilters=new dt;function gt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function mt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function yt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function vt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function bt(e,t,n,r,i,o){return r&&!r[v]&&(r=bt(r)),i&&!i[v]&&(i=bt(i,o)),at(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Ct(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:xt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=xt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=xt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function wt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=yt(function(e){return e===t},a,!0),p=yt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[yt(vt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return bt(l>1&&vt(f),l>1&&mt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&wt(e.slice(l,r)),o>r&&wt(e=e.slice(r)),o>r&&mt(e))}f.push(n)}return vt(f)}function Tt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=q.call(f));y=xt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?at(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=gt(e)),n=t.length;while(n--)o=wt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Tt(i,r))}return o};function Ct(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function kt(e,t,r,o){var s,u,l,c,p,f=gt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&mt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}n.sortStable=v.split("").sort(S).join("")===v,n.detectDuplicates=E,c(),n.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(p.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||lt("type|href|height|width",function(e,t,n){return n?undefined:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||lt("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?undefined:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||lt(R,function(e,t,n){var r;return n?undefined:(r=e.getAttributeNode(t))&&r.specified?r.value:e[t]===!0?t.toLowerCase():null}),x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!a||n&&!u||(t=t||[],t=[e,t.slice?t.slice():t],r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,q,H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){var r;return t===undefined||t&&"string"==typeof t&&n===undefined?(r=this.get(e,t),r!==undefined?r:this.get(e,x.camelCase(t))):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,q=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||q.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return q.access(e,t,n)},_removeData:function(e,t){q.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!q.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));q.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:H.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=q.get(e,t),n&&(!r||x.isArray(n)?r=q.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t) +};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return q.get(e,n)||q.access(e,n,{empty:x.Callbacks("once memory").add(function(){q.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=q.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,i=0,o=x(this),s=e.match(w)||[];while(t=s[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===r||"boolean"===n)&&(this.className&&q.set(this,"__className__",this.className),this.className=this.className||e===!1?"":q.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=q.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=q.hasData(e)&&q.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,q.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(q.get(a,"events")||{})[t.type]&&q.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(q.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},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(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*\s*$/g,ct={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!q.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1>")+a[2],l=a[0];while(l--)o=o.lastChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[q.expando],o&&(t=q.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);q.cache[o]&&delete q.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)q.set(e[r],"globalEval",!t||q.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(q.hasData(e)&&(o=q.access(e),s=q.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function qt(t){return e.getComputedStyle(t,null)}function Ht(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=q.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=q.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&q.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=qt(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return Ht(this,!0)},hide:function(){return Ht(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Lt(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||qt(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=qt(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("