diff --git a/cordova-react/.gitignore b/cordova-react/.gitignore
new file mode 100644
index 0000000..0a31c80
--- /dev/null
+++ b/cordova-react/.gitignore
@@ -0,0 +1,14 @@
+typings
+node_modules
+
+
+plugins/
+platforms/
+.vs/
+.vscode/
+bin/
+bld/
+app/*.js
+app/*.map
+www/scripts/
+*.user
\ No newline at end of file
diff --git a/cordova-react/README.md b/cordova-react/README.md
new file mode 100644
index 0000000..6f7d3d8
--- /dev/null
+++ b/cordova-react/README.md
@@ -0,0 +1,28 @@
+# Cordova React Sample
+
+This sample shows how to use [React](http://facebook.github.io/react) with [Apache Cordova](http://cordova.io).
+
+## Installation Steps
+
+The sample has been tested with Visual Studio 2015, and Visual Studio Code 1.0. Below you can find installation instructions for each tool.
+
+### Visual Studio 2015
+- Install [Visual Studio 2015](http://visualstudio.com)
+- Install the [Visual Studio Tools for Apache Cordova](http://taco.visualstudio.com/en-us/docs/install-vs-tools-apache-cordova/)
+- Open the project _cordova-react.jsproj_
+- Restore packages (right click in the dependencies node)
+- Run it !! (using F5 or Ctrl+F5)
+
+### Visual Studio Code
+*(you will need node and npm installed before)*
+- Install [VSCode](https://code.visualstudio.com/)
+- (Optional: Install the VSCode [Cordova Extension](https://marketplace.visualstudio.com/items?itemName=vsmobile.cordova-tools) )
+- From the command line run `npm install`
+- From the command line run `npm run bundle`
+- Add the cordova platform and run `cordova platform add browser && cordova run`
+
+
+
+
+
+
diff --git a/cordova-react/app/RedditSubmission.tsx b/cordova-react/app/RedditSubmission.tsx
new file mode 100644
index 0000000..751995a
--- /dev/null
+++ b/cordova-react/app/RedditSubmission.tsx
@@ -0,0 +1,25 @@
+import * as React from "react";
+import { Submission } from "./reddit"
+
+export interface SubmissionProps extends Submission {
+ elementPosition: number;
+}
+
+let imageStyle = {
+ maxWidth: "600px",
+ maxHeight: "600px",
+};
+
+export const SubmissionComp = (submission: SubmissionProps) =>
+
+ { submission.elementPosition ?
: "" }
+
+ { submission.elementPosition + 1 }.
+ {submission.title}
+
+
({ submission.domain })
+
+ Submitted at { new Date(submission.created_utc).toLocaleTimeString() }.
+
+
+
;
\ No newline at end of file
diff --git a/cordova-react/app/index.tsx b/cordova-react/app/index.tsx
new file mode 100644
index 0000000..9b839bd
--- /dev/null
+++ b/cordova-react/app/index.tsx
@@ -0,0 +1,23 @@
+import * as $ from "jquery";
+import * as React from "react";
+import * as ReactDOM from "react-dom";
+
+import { ApiResponse } from "./reddit";
+import { SubmissionComp } from "./RedditSubmission"
+
+function displaySubreddit(subreddit: string) {
+ let settings = {
+ url: `https://www.reddit.com/r/${subreddit}.json`
+ };
+ $.ajax(settings).done(response => {
+ let submissions = (response as ApiResponse).data.children;
+ // TODO: filter on images
+ submissions = submissions.filter(({ data }) => /(png|jpg)$/.test(data.url));
+ let components = submissions.map((value, index) =>
+
+ );
+ ReactDOM.render({ components }
, document.getElementById("content"));
+ });
+}
+
+displaySubreddit("aww");
diff --git a/cordova-react/app/reddit.ts b/cordova-react/app/reddit.ts
new file mode 100644
index 0000000..0bc3e3f
--- /dev/null
+++ b/cordova-react/app/reddit.ts
@@ -0,0 +1,16 @@
+export interface ApiResponse {
+ data: {
+ children: {
+ data: Submission
+ }[];
+ };
+}
+
+export interface Submission {
+ author: string;
+ domain: string;
+ title: string;
+ subreddit: string;
+ url: string;
+ created_utc: string;
+}
\ No newline at end of file
diff --git a/cordova-react/config.xml b/cordova-react/config.xml
new file mode 100644
index 0000000..883cc2e
--- /dev/null
+++ b/cordova-react/config.xml
@@ -0,0 +1,26 @@
+
+
+ React Cordova Demo
+ A blank project that uses Apache Cordova to help you build an app that targets multiple mobile platforms: Android, iOS, Windows, and Windows Phone.
+ Apache Cordova Team
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cordova-react/cordova-react.jsproj b/cordova-react/cordova-react.jsproj
new file mode 100644
index 0000000..246cef6
--- /dev/null
+++ b/cordova-react/cordova-react.jsproj
@@ -0,0 +1,116 @@
+
+
+
+
+ Debug
+ Android
+
+
+ Debug
+ iOS
+
+
+ Debug
+ Windows-AnyCPU
+
+
+ Debug
+ Windows-x64
+
+
+ Debug
+ Windows-x86
+
+
+ Debug
+ Windows-ARM
+
+
+ Debug
+ Windows Phone 8
+
+
+ Debug
+ Windows Phone (Universal)
+
+
+ Release
+ Android
+
+
+ Release
+ iOS
+
+
+ Release
+ Windows-AnyCPU
+
+
+ Release
+ Windows-x64
+
+
+ Release
+ Windows-x86
+
+
+ Release
+ Windows-ARM
+
+
+ Release
+ Windows Phone 8
+
+
+ Release
+ Windows Phone (Universal)
+
+
+
+
+
+
+ true
+ f191e5cb-ce9f-474d-98b3-ea1c47943727
+
+
+
+ 14.0
+
+
+ false
+
+
+
+
+ Tools for Apache Cordova
+
+
+ MDD
+ True
+ Always
+ x86|x64|arm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cordova-react/cordova-react.sln b/cordova-react/cordova-react.sln
new file mode 100644
index 0000000..aaea7ba
--- /dev/null
+++ b/cordova-react/cordova-react.sln
@@ -0,0 +1,80 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25123.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{262852C6-CD72-467D-83FE-5EEB1973A190}") = "cordova-react", "cordova-react.jsproj", "{F191E5CB-CE9F-474D-98B3-EA1C47943727}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Android = Debug|Android
+ Debug|iOS = Debug|iOS
+ Debug|Windows Phone (Universal) = Debug|Windows Phone (Universal)
+ Debug|Windows Phone 8 = Debug|Windows Phone 8
+ Debug|Windows-AnyCPU = Debug|Windows-AnyCPU
+ Debug|Windows-ARM = Debug|Windows-ARM
+ Debug|Windows-x64 = Debug|Windows-x64
+ Debug|Windows-x86 = Debug|Windows-x86
+ Release|Android = Release|Android
+ Release|iOS = Release|iOS
+ Release|Windows Phone (Universal) = Release|Windows Phone (Universal)
+ Release|Windows Phone 8 = Release|Windows Phone 8
+ Release|Windows-AnyCPU = Release|Windows-AnyCPU
+ Release|Windows-ARM = Release|Windows-ARM
+ Release|Windows-x64 = Release|Windows-x64
+ Release|Windows-x86 = Release|Windows-x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Android.ActiveCfg = Debug|Android
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Android.Build.0 = Debug|Android
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Android.Deploy.0 = Debug|Android
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|iOS.ActiveCfg = Debug|iOS
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|iOS.Build.0 = Debug|iOS
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|iOS.Deploy.0 = Debug|iOS
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows Phone (Universal).ActiveCfg = Debug|Windows Phone (Universal)
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows Phone (Universal).Build.0 = Debug|Windows Phone (Universal)
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows Phone (Universal).Deploy.0 = Debug|Windows Phone (Universal)
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows Phone 8.ActiveCfg = Debug|Windows Phone 8
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows Phone 8.Build.0 = Debug|Windows Phone 8
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows Phone 8.Deploy.0 = Debug|Windows Phone 8
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-AnyCPU.ActiveCfg = Debug|Windows-AnyCPU
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-AnyCPU.Build.0 = Debug|Windows-AnyCPU
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-AnyCPU.Deploy.0 = Debug|Windows-AnyCPU
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-ARM.ActiveCfg = Debug|Windows-ARM
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-ARM.Build.0 = Debug|Windows-ARM
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-ARM.Deploy.0 = Debug|Windows-ARM
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-x64.ActiveCfg = Debug|Windows-x64
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-x64.Build.0 = Debug|Windows-x64
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-x64.Deploy.0 = Debug|Windows-x64
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-x86.ActiveCfg = Debug|Windows-x86
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-x86.Build.0 = Debug|Windows-x86
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Debug|Windows-x86.Deploy.0 = Debug|Windows-x86
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Android.ActiveCfg = Release|Android
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Android.Build.0 = Release|Android
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Android.Deploy.0 = Release|Android
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|iOS.ActiveCfg = Release|iOS
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|iOS.Build.0 = Release|iOS
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|iOS.Deploy.0 = Release|iOS
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows Phone (Universal).ActiveCfg = Release|Windows Phone (Universal)
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows Phone (Universal).Build.0 = Release|Windows Phone (Universal)
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows Phone (Universal).Deploy.0 = Release|Windows Phone (Universal)
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows Phone 8.ActiveCfg = Release|Windows Phone 8
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows Phone 8.Build.0 = Release|Windows Phone 8
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows Phone 8.Deploy.0 = Release|Windows Phone 8
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-AnyCPU.ActiveCfg = Release|Windows-AnyCPU
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-AnyCPU.Build.0 = Release|Windows-AnyCPU
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-AnyCPU.Deploy.0 = Release|Windows-AnyCPU
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-ARM.ActiveCfg = Release|Windows-ARM
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-ARM.Build.0 = Release|Windows-ARM
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-ARM.Deploy.0 = Release|Windows-ARM
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-x64.ActiveCfg = Release|Windows-x64
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-x64.Build.0 = Release|Windows-x64
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-x64.Deploy.0 = Release|Windows-x64
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-x86.ActiveCfg = Release|Windows-x86
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-x86.Build.0 = Release|Windows-x86
+ {F191E5CB-CE9F-474D-98B3-EA1C47943727}.Release|Windows-x86.Deploy.0 = Release|Windows-x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/cordova-react/hooks/README.md b/cordova-react/hooks/README.md
new file mode 100644
index 0000000..574ad4c
--- /dev/null
+++ b/cordova-react/hooks/README.md
@@ -0,0 +1,23 @@
+
+# Cordova Hooks
+
+Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. See Hooks Guide for more details: http://cordova.apache.org/docs/en/edge/guide_appdev_hooks_index.md.html#Hooks%20Guide.
diff --git a/cordova-react/merges/android/scripts/android2.3-jscompat.js b/cordova-react/merges/android/scripts/android2.3-jscompat.js
new file mode 100644
index 0000000..e1e359f
--- /dev/null
+++ b/cordova-react/merges/android/scripts/android2.3-jscompat.js
@@ -0,0 +1,30 @@
+// Polyfill for Function.prototype.bind() support on Android 2.3
+(function () {
+ if (!Function.prototype.bind) {
+ Function.prototype.bind = function (thisValue) {
+ if (typeof this !== "function") {
+ throw new TypeError(this + " cannot be bound as it is not a function");
+ }
+
+ // bind() also permits prepending arguments to the call
+ var preArgs = Array.prototype.slice.call(arguments, 1);
+
+ // The actual function to bind the "this" value and arguments to
+ var functionToBind = this;
+ var noOpFunction = function () { };
+
+ // The "this" argument to use
+ var thisArg = this instanceof noOpFunction && thisValue ? this : thisValue;
+
+ // The resulting bound function
+ var boundFunction = function () {
+ return functionToBind.apply(thisArg, preArgs.concat(Array.prototype.slice.call(arguments)));
+ };
+
+ noOpFunction.prototype = this.prototype;
+ boundFunction.prototype = new noOpFunction();
+
+ return boundFunction;
+ };
+ }
+}());
diff --git a/cordova-react/merges/android/scripts/platformOverrides.js b/cordova-react/merges/android/scripts/platformOverrides.js
new file mode 100644
index 0000000..0cccf74
--- /dev/null
+++ b/cordova-react/merges/android/scripts/platformOverrides.js
@@ -0,0 +1,10 @@
+(function () {
+ // Append the bind() polyfill
+ var scriptElem = document.createElement('script');
+ scriptElem.setAttribute('src', 'scripts/android2.3-jscompat.js');
+ if (document.body) {
+ document.body.appendChild(scriptElem);
+ } else {
+ document.head.appendChild(scriptElem);
+ }
+}());
\ No newline at end of file
diff --git a/cordova-react/merges/windows/scripts/platformOverrides.js b/cordova-react/merges/windows/scripts/platformOverrides.js
new file mode 100644
index 0000000..2362808
--- /dev/null
+++ b/cordova-react/merges/windows/scripts/platformOverrides.js
@@ -0,0 +1,10 @@
+(function () {
+ // Append the safeHTML polyfill
+ var scriptElem = document.createElement('script');
+ scriptElem.setAttribute('src', 'scripts/winstore-jscompat.js');
+ if (document.body) {
+ document.body.appendChild(scriptElem);
+ } else {
+ document.head.appendChild(scriptElem);
+ }
+}());
\ No newline at end of file
diff --git a/cordova-react/merges/windows/scripts/winstore-jscompat.js b/cordova-react/merges/windows/scripts/winstore-jscompat.js
new file mode 100644
index 0000000..2b71eeb
--- /dev/null
+++ b/cordova-react/merges/windows/scripts/winstore-jscompat.js
@@ -0,0 +1,149 @@
+/*
+JavaScript Dynamic Content shim for Windows Store apps.
+winstore-jscompat.js
+
+Microsoft grants you the right to use these script files for the sole purpose of either: (i) interacting through your browser with the Microsoft website, subject to the website’s terms of use; or (ii) using the files as included with a Microsoft product subject to that product’s license terms. Microsoft reserves all other rights to the files not expressly granted by Microsoft, whether by implication, estoppel or otherwise. The notices and licenses below are for informational purposes only.
+*/
+// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+// JavaScript Dynamic Content shim for Windows Store apps
+(function () {
+
+ if (window.MSApp && MSApp.execUnsafeLocalFunction) {
+
+ // Some nodes will have an "attributes" property which shadows the Node.prototype.attributes property
+ // and means we don't actually see the attributes of the Node (interestingly the VS debug console
+ // appears to suffer from the same issue).
+ //
+ var Element_setAttribute = Object.getOwnPropertyDescriptor(Element.prototype, "setAttribute").value;
+ var Element_removeAttribute = Object.getOwnPropertyDescriptor(Element.prototype, "removeAttribute").value;
+ var HTMLElement_insertAdjacentHTMLPropertyDescriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, "insertAdjacentHTML");
+ var Node_get_attributes = Object.getOwnPropertyDescriptor(Node.prototype, "attributes").get;
+ var Node_get_childNodes = Object.getOwnPropertyDescriptor(Node.prototype, "childNodes").get;
+
+ function getAttributes(element) {
+ return Node_get_attributes.call(element);
+ }
+
+ function setAttribute(element, attribute, value) {
+ try {
+ Element_setAttribute.call(element, attribute, value);
+ } catch (e) {
+ // ignore
+ }
+ }
+
+ function removeAttribute(element, attribute) {
+ Element_removeAttribute.call(element, attribute);
+ }
+
+ function childNodes(element) {
+ return Node_get_childNodes.call(element);
+ }
+
+ function empty(element) {
+ while (element.childNodes.length) {
+ element.removeChild(element.lastChild);
+ }
+ }
+
+ function insertAdjacentHTML(element, position, html) {
+ HTMLElement_insertAdjacentHTMLPropertyDescriptor.value.call(element, position, html);
+ }
+
+ function cleanse(html) {
+ var cleaner = document.implementation.createHTMLDocument("cleaner");
+ empty(cleaner.documentElement);
+ MSApp.execUnsafeLocalFunction(function () {
+ insertAdjacentHTML(cleaner.documentElement, "afterbegin", html);
+ });
+
+ var scripts = cleaner.documentElement.querySelectorAll("script");
+ Array.prototype.forEach.call(scripts, function (script) {
+ switch (script.type.toLowerCase()) {
+ case "":
+ script.type = "text/inert";
+ break;
+ case "text/javascript":
+ case "text/ecmascript":
+ case "text/x-javascript":
+ case "text/jscript":
+ case "text/livescript":
+ case "text/javascript1.1":
+ case "text/javascript1.2":
+ case "text/javascript1.3":
+ script.type = "text/inert-" + script.type.slice("text/".length);
+ break;
+ case "application/javascript":
+ case "application/ecmascript":
+ case "application/x-javascript":
+ script.type = "application/inert-" + script.type.slice("application/".length);
+ break;
+
+ default:
+ break;
+ }
+ });
+
+ function cleanseAttributes(element) {
+ var attributes = getAttributes(element);
+ if (attributes && attributes.length) {
+ // because the attributes collection is live it is simpler to queue up the renames
+ var events;
+ for (var i = 0, len = attributes.length; i < len; i++) {
+ var attribute = attributes[i];
+ var name = attribute.name;
+ if ((name[0] === "o" || name[0] === "O") &&
+ (name[1] === "n" || name[1] === "N")) {
+ events = events || [];
+ events.push({ name: attribute.name, value: attribute.value });
+ }
+ }
+ if (events) {
+ for (var i = 0, len = events.length; i < len; i++) {
+ var attribute = events[i];
+ removeAttribute(element, attribute.name);
+ setAttribute(element, "x-" + attribute.name, attribute.value);
+ }
+ }
+ }
+ var children = childNodes(element);
+ for (var i = 0, len = children.length; i < len; i++) {
+ cleanseAttributes(children[i]);
+ }
+ }
+ cleanseAttributes(cleaner.documentElement);
+
+ return Array.prototype.slice.call(document.adoptNode(cleaner.documentElement).childNodes);
+ }
+
+ function cleansePropertySetter(property, setter) {
+ var propertyDescriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, property);
+ Object.defineProperty(HTMLElement.prototype, property, {
+ get: propertyDescriptor.get,
+ set: function (value) {
+ var that = this;
+ var nodes = cleanse(value);
+ MSApp.execUnsafeLocalFunction(function () {
+ setter(propertyDescriptor, that, nodes);
+ });
+ },
+ enumerable: propertyDescriptor.enumerable,
+ configurable: propertyDescriptor.configurable,
+ });
+ }
+ cleansePropertySetter("innerHTML", function (propertyDescriptor, target, elements) {
+ empty(target);
+ for (var i = 0, len = elements.length; i < len; i++) {
+ target.appendChild(elements[i]);
+ }
+ });
+ cleansePropertySetter("outerHTML", function (propertyDescriptor, target, elements) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ target.insertAdjacentElement("afterend", elements[i]);
+ }
+ target.parentNode.removeChild(target);
+ });
+
+ }
+
+}());
\ No newline at end of file
diff --git a/cordova-react/package.json b/cordova-react/package.json
new file mode 100644
index 0000000..8ecfce5
--- /dev/null
+++ b/cordova-react/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "react-reddit-reader",
+ "version": "1.0.0",
+ "description": "A small web app in React that queries Reddit for submissions.",
+ "main": "index.js",
+ "dependencies": {
+ "jquery": "^2.2.1",
+ "react": "^0.14.7",
+ "react-dom": "^0.14.7"
+ },
+ "devDependencies": {
+ "source-map-loader": "^0.1.5",
+ "ts-loader": "^0.8.1",
+ "typescript": "^1.8.7",
+ "typings": "^0.8.1",
+ "webpack": "^1.13.0"
+ },
+ "scripts": {
+ "postinstall": "node_modules/.bin/typings install",
+ "bundle": "node_modules/.bin/webpack"
+ },
+ "author": "VSMobile",
+ "license": "Apache-2.0"
+}
\ No newline at end of file
diff --git a/cordova-react/taco.json b/cordova-react/taco.json
new file mode 100644
index 0000000..ceb5a6d
--- /dev/null
+++ b/cordova-react/taco.json
@@ -0,0 +1,3 @@
+{
+"cordova-cli": "6.1.1"
+}
\ No newline at end of file
diff --git a/cordova-react/tsconfig.json b/cordova-react/tsconfig.json
new file mode 100644
index 0000000..c9b9f83
--- /dev/null
+++ b/cordova-react/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "target": "es5",
+ "jsx": "react",
+ "noImplicitAny": true,
+ "sourceMap": true
+
+ },
+ "files": [
+ "./typings/main.d.ts",
+ "./app/reddit.ts",
+ "./app/RedditSubmission.tsx",
+ "./app/index.tsx"
+ ]
+}
\ No newline at end of file
diff --git a/cordova-react/typings.json b/cordova-react/typings.json
new file mode 100644
index 0000000..8ab8ccc
--- /dev/null
+++ b/cordova-react/typings.json
@@ -0,0 +1,7 @@
+{
+ "ambientDependencies": {
+ "jquery": "registry:dt/jquery#2.0.0+20160303223636",
+ "react": "registry:dt/react#0.14.0+20160302224448",
+ "react-dom": "registry:dt/react-dom#0.0.0+20151118193745"
+ }
+}
diff --git a/cordova-react/webpack.config.js b/cordova-react/webpack.config.js
new file mode 100644
index 0000000..d79c3ab
--- /dev/null
+++ b/cordova-react/webpack.config.js
@@ -0,0 +1,36 @@
+module.exports = {
+ entry: "./app/index.tsx",
+ output: {
+ filename: "./www/scripts/bundle.js",
+ },
+
+ // Enable sourcemaps for debugging webpack's output.
+ devtool: "source-map",
+
+ resolve: {
+ // Add '.ts' and '.tsx' as resolvable extensions.
+ extensions: ["", ".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
+ },
+
+ module: {
+ loaders: [
+ // All files with a '.ts' or '.tsx' extension will be handled by 'ts-loader'.
+ { test: /\.tsx?$/, loader: "ts-loader" }
+ ],
+
+ preLoaders: [
+ // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
+ { test: /\.js$/, loader: "source-map-loader" }
+ ]
+ },
+
+ // When importing a module whose path matches one of the following, just
+ // assume a corresponding global variable exists and use that instead.
+ // This is important because it allows us to avoid bundling all of our
+ // dependencies, which allows browsers to cache those libraries between builds.
+ externals: {
+ "jquery": "jQuery",
+ "react": "React",
+ "react-dom": "ReactDOM",
+ },
+};
\ No newline at end of file
diff --git a/cordova-react/www/css/index.css b/cordova-react/www/css/index.css
new file mode 100644
index 0000000..b0bf80d
--- /dev/null
+++ b/cordova-react/www/css/index.css
@@ -0,0 +1,57 @@
+body {
+ -webkit-touch-callout: none; /* prevent callout to copy image, etc when tap to hold */
+ -webkit-text-size-adjust: none; /* prevent webkit from resizing text to fit */
+ -webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */
+ background-color:#32383d;
+ font-family: 'RobotoRegular', 'Droid Sans', 'Segoe UI', Segoe, 'San Francisco', 'Helvetica Neue', Helvetica, Arial, Geneva, sans-serif;
+ font-size:12px;
+}
+
+.app {
+ background: url(../images/cordova.png) no-repeat center top;
+ background-size: contain;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ height: 30px;
+ width: 250px;
+ text-align: center;
+ padding: 200px 0px 0px 0px;
+ margin: -125px;
+}
+
+.event {
+ border-radius: 4px;
+ -webkit-border-radius: 4px;
+ color: #FFFFFF;
+ margin: 27px;
+ padding: 4px 0px;
+ text-transform: uppercase;
+ background-color: #696969;
+ animation: fade 3000ms infinite;
+ -webkit-animation: fade 3000ms infinite;
+}
+
+.ready {
+ background-color: #4B946A;
+}
+
+@keyframes fade {
+ from { opacity: 1.0; }
+ 50% { opacity: 0.4; }
+ to { opacity: 1.0; }
+}
+
+@-webkit-keyframes fade {
+ from { opacity: 1.0; }
+ 50% { opacity: 0.4; }
+ to { opacity: 1.0; }
+}
+
+/* Portrait styles */
+@media screen and (orientation: portrait) {
+}
+
+/* Landscape styles */
+@media screen and (orientation: landscape) {
+}
\ No newline at end of file
diff --git a/cordova-react/www/images/cordova.png b/cordova-react/www/images/cordova.png
new file mode 100644
index 0000000..a71ce80
Binary files /dev/null and b/cordova-react/www/images/cordova.png differ
diff --git a/cordova-react/www/index.html b/cordova-react/www/index.html
new file mode 100644
index 0000000..f7d5415
--- /dev/null
+++ b/cordova-react/www/index.html
@@ -0,0 +1,15 @@
+
+
+
+
+ Hello React!
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cordova-react/www/lib/jquery.min.js b/cordova-react/www/lib/jquery.min.js
new file mode 100644
index 0000000..b8c4187
--- /dev/null
+++ b/cordova-react/www/lib/jquery.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v2.2.3 | (c) jQuery Foundation | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.3",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if("object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype||{},"isPrototypeOf"))return!1;for(b in a);return void 0===b||k.call(a,b)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML=" ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c;
+}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,la=/